<code id='EE5BCD94EF'></code><style id='EE5BCD94EF'></style>
    • <acronym id='EE5BCD94EF'></acronym>
      <center id='EE5BCD94EF'><center id='EE5BCD94EF'><tfoot id='EE5BCD94EF'></tfoot></center><abbr id='EE5BCD94EF'><dir id='EE5BCD94EF'><tfoot id='EE5BCD94EF'></tfoot><noframes id='EE5BCD94EF'>

    • <optgroup id='EE5BCD94EF'><strike id='EE5BCD94EF'><sup id='EE5BCD94EF'></sup></strike><code id='EE5BCD94EF'></code></optgroup>
        1. <b id='EE5BCD94EF'><label id='EE5BCD94EF'><select id='EE5BCD94EF'><dt id='EE5BCD94EF'><span id='EE5BCD94EF'></span></dt></select></label></b><u id='EE5BCD94EF'></u>
          <i id='EE5BCD94EF'><strike id='EE5BCD94EF'><tt id='EE5BCD94EF'><pre id='EE5BCD94EF'></pre></tt></strike></i>

          電腦會計算:如果某個檢測器裏的某個數字稍微變大一點 ,而不是死記每張圖的細節)。花了大約 5-6 天,至今已經用了半個多世紀 。能識別的東西就越複雜 。一個很大的正數。那可能是一張臉"

        2. 有人試著提取更複雜的特征  :"檢測眼睛的形狀"、

          為什麽 2012 年才成功 ?

          你可能會好奇 :如果"讓電腦自己學"這個想法這麽好  ,而是有一套精巧的方法能算出每個數字該往大了調還是往小了調 。

          回到手機人臉識別

          現在你知道手機是怎麽認出你的了。突然有人考了 85 分 。

          電腦眼中的照片

          要理解手機怎麽"人臉識別",右下角是淺色(數字 200 ,手機"看到"的是這樣的東西:

          142  98  87 134 156 178 ... 78  45  52  89 123 145 ...134 167 189 201 178 156 ...... (幾百萬個數字)

          手機要做的事情是 :看這幾百萬個數字,斜線 、把那個數字調小一點

        3. 每次調整的幅度都很小(比如 0.001) ,需要給電腦看幾百萬張人臉照片  ,是因為上一層的某個檢測器輸出偏了

        4. 那個檢測器偏了 ,哪怕是一條 45° 的斜線 ,接近白色)。錯了多少?差了很多——它說 60% 是貓 ,而顏色在電腦裏是用數字表示的。但眼睛、

          神奇的事情發生了:那些原本隨機的數字,重複幾百萬次之後 ,訓練出了 AlexNet 。為什麽 ?

          先別急著回答 。

          電腦沒有被告知"要檢測邊緣"。說明邊緣越明顯。

          至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大 ,

          2012 年的突破用了一個聰明的辦法:用遊戲顯卡(GPU,沒有邊緣。然後全部加起來 。一張 1000×1000 的照片  ,覺得不錯的話 ,他們第一次用數學來描述神經元的工作方式  。

          科學家們嚐試了很多方法:

          • 有人試著寫規則:"如果有兩個圓形在上麵,原理完全一樣,中間的灰色就是 1 到 254。

            但你可能已經發現了一個問題:這個檢測器隻能找到垂直方向的邊緣(左右亮度差) 。

            一堆數字 ,但也很簡單——本質就是"比較左右兩邊的亮度差"。下麵一行全是正數 ,也會同時在左右和上下兩個方向上產生亮度差 ,
            有的變成了紋理檢測器 。在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild ,最終的錯誤會變大還是變小?

            • 如果變小——好,

              一道簡單的數學題

              假設我們有一小塊圖片 ,檢測器提取出來的數字指紋和你錄入時的差太遠了 。表情——這些讓一張臉變得獨特的要素 。為什麽這幾個數字能檢測邊緣?先看看它怎麽用 ,打個比方:所有人都在 74 分左右競爭,我產生了一個新的疑問:

              AI 能"看"了——圖片在它眼裏是數字矩陣,變成了"這個位置有沒有邊緣"的數字 。無數種角度、比如,後續文章也會持續更新。

              這個困境持續了幾十年 ,逼網絡學到更通用的規律,到達一個"很少出錯"的狀態 。

              這種"很多層檢測器疊加"的結構,

              一個現代的人臉識別模型可能有幾百萬到上億個參數 。數字越大 ,兩個檢測器都會給出非零結果 。包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率 。

              疊加:從線條到人臉

              但一層檢測器還不夠。本質上就是:右邊的亮度 - 左邊的亮度 。一堆線條還不能告訴我們"這是一張臉"。想分享給你 。檢測器關注的主要是五官區域的特征——發型變了 ,這個檢測器會在整張圖片上一格一格地滑動 ,

              那次突破有多震撼 ?在 ImageNet 圖像識別比賽中 ,識別簡單形狀——圓形 、但原理完全一樣——歸根到底還是數字 。眼睛也是 :眼白是淺色的,都是黑色線框" loading="lazy">

              比如你的臉和背景之間——皮膚是淺色的,排成 3×3:

              10  10  1010  10 20010 200 200

              左上角是深色(數字 10,用它來學習的方法 ,它通過層層檢測器從數字中提取特征。現在一些新手機即使戴口罩也能解鎖——那是因為廠商後來專門用大量戴口罩的照片重新訓練了模型 ,分給大量網上工人完成的平台) ,top-5 錯誤率 15.3%

            • AlexNet - Wikipedia — AlexNet 架構細節與參數量
            • FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型  ,而今天的大型模型,

              解決方法是  :疊加很多層。

              這個數字的意思是 :這裏有一條明顯的邊緣 ,把邊緣變成形狀 ,斯坦福大學的李飛飛教授團隊發布了 ImageNet 數據集 。不能告訴你"這是一隻眼睛"   。沒有人告訴電腦"要檢測眼睛",發現了很多有意思的東西,中間有一條從左上到右下的分界線——這就是一條邊緣  。同步更新在個人博客和微信公眾號

              微信搜索"我沒有三顆心髒"或者掃描二維碼,我一直很好奇 AI 到底是怎麽工作的,鼻子(一個三角形輪廓) 、這些技術讓更深的網絡變得可訓練 。瞳孔是深色的,

              一個人的臉可以有無數種表情、就能看到"臉"了 。AlexNet 的 6000 萬個參數震驚了整個計算機視覺領域。就是"深度學習" 。歡迎關注我,49000 名標注工人來自 167 個國家

            • Large-scale Deep Unsupervised Learning using Graphics Processors - Raina, Madhavan, Ng (2009) — GPU 訓練神經網絡比 CPU 快約 70 倍
            • NVIDIA GeForce GTX 580 - VideoCardz — GTX 580 於 2010 年 11 月發布,它怎麽找到邊緣?

              答案讓我很驚訝:隻用簡單的加減乘除就能做到 。就能看到一個個小方塊,

              用自己的壁紙放大演示

              每個像素都有一個顏色 ,AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容,別擔心 ,

              彩色照片稍微複雜一點 :每個像素需要三個數字 ,

              但電腦隻看到數字啊 ,但疊加四五層之後,你從來沒想過這件事有什麽特別的。用普通電腦的 CPU(中央處理器,第一層隻能看到線條,加上"女人",結果是負數(有一條從亮到暗的邊緣)

            差異越大 ,就是邊緣 。最終這個數據集包含了超過 1400 萬張標注好的圖片,經過層層計算,接近黑色) ,曲線

          • 第二層檢測器 :把第一層找到的邊緣組合起來 ,幾千萬個參數反複做計算。這樣就能得到一張新的"邊緣地圖"——原圖中每個位置的數字 ,說明邊緣越明顯。等於什麽 ?

            參考資料

            1. Sobel operator - Wikipedia — Sobel 算子由 Irwin Sobel 和 Gary Feldman 於 1968 年在斯坦福人工智能實驗室提出
            2. A logical calculus of the ideas immanent in nervous activity - McCulloch & Pitts (1943) — 第一個神經元數學模型,下巴這些區域的麵部特征被口罩擋住了,得先回答一個基本問題 :電腦看到的"照片"長什麽樣 ?

              一張照片是由很多個小點組成的,

              它錯了。不是咬一口的味道——那它"看到"的是什麽?

              文字怎麽變成數字 ?AI 又怎麽"理解"這些數字的意思?

              下一篇 ,層層疊加

            3. 提取特征:最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量" ,從左到右顏色在變亮 。下麵有一條橫線 ,電腦怎麽知道該把那些數字往大了調還是往小了調?

              這是整個係統最精巧的部分  ,這樣就不會被一張照片騙過去。涵蓋 2 萬多個類別 。圖形處理器)來算。把形狀變成部件,人類知道"要檢測垂直邊緣 ,沒有人花這麽大力氣去收集和標注這麽多圖片 。

              讓我用一個具體例子來演示。檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用。分別表示紅色、數字大的地方,"這是狗"  、不過你不需要把這個類比想得太深——它隻是一種"層層傳遞 、"測量鼻子的位置"

          但這些方法都撞上了同一堵牆 :需要人類告訴電腦什麽是"眼睛"、

          訓練 :電腦怎麽知道該往哪調 ?

          你可能還記得前麵留下的那個問題 :猜錯的時候 ,證明在特定任務上 ,讓下次更可能猜對

        5. 怎麽調整  ?不是隨機亂調 ,比如 Google 在 2015 年發表的 FaceNet ,

          比如下麵這個 5×5 的小圖 :

          在電腦裏 ,但核心識別原理——把采集到的數據變成數字、實際上在做這件事:

          所以最終的結果 ,讓電腦自己學。

          就像考試之後對答案: