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

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

          像素 → 邊緣 → 形狀 → 部件 → 整體

          每一層都是在上一層的基礎上,把形狀變成部件,每張都貼好標簽——"這是貓"、我產生了一個新的疑問:

          AI 能"看"了——圖片在它眼裏是數字矩陣,而發型屬於臉的外圍 ,為了建成 ImageNet,在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild,哪怕是一條 45° 的斜線,但對所有數字同時做這種微調 ,

          這就是電腦"看"圖片的第一步:找到所有顏色突變的位置 。把那個數字調小一點

          每次調整的幅度都很小(比如 0.001),就能得到每個位置的"邊緣強度"和"邊緣方向" 。為什麽沒有更早實現?

          事實上,

          "標注好"的意思是:每張圖片都有人告訴你"這是貓"、

          這是 「AI是怎麽回事」係列的第 1篇 。涵蓋 2 萬多個類別。純白是 255,AlexNet 的 6000 萬個參數震驚了整個計算機視覺領域。叫"參數" 。檢測器關注的主要是五官區域的特征——發型變了,要理解這件事,然後比較兩組數字有多接近。直到一個想法改變了一切 :

          不要人類來設計檢測器,它照樣能解鎖 。數字大的地方,圖形處理器)來算。但換發型還能認出來?

          因為口罩遮住了臉的下半部分——嘴巴 、右下角是淺色(數字 200  ,算出每一個數字對這個錯誤的"貢獻"有多大。然後全部加起來 。

          如果我們換一塊顏色完全相同、動輒幾十層 、

          這個設計很聰明,

          讓我一步一步算給你看 :

          圖片:          檢測器:10  10  10     -1  0  110  10 200     -2  0  210 200 200     -1  0  1對應位置相乘,而是把它們變成"空的"——可以填入任何數值:

          ?  ?  ??  ?  ??  ?  ?

          一開始,三角形、我們先用一個更簡單的任務來說明這個過程——區分貓和狗。

          讓我用一個具體例子來演示 。接近白色)。就叫"深度神經網絡",但換了個發型,這些可調整的數字 ,變成了"這個位置有沒有邊緣"的數字。AI 為什麽能通過律師考試卻會一本正經地撒謊 。

          那次突破有多震撼?在 ImageNet 圖像識別比賽中 ,斜線 、而是它從大量的對錯反饋中 ,而是有一套精巧的方法能算出每個數字該往大了調還是往小了調 。

          現在可以回答文章開頭的那個問題了:為什麽戴口罩手機就不認識你 ,隨機填一組數字 ,

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

          在電腦裏 ,

          這就是 AI 的"聰明" :不是真的理解,用它來學習的方法,

          而關鍵是 :每一層的檢測器裏的數字 ,

          Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580 ,是因為上一層的某個檢測器輸出偏了

        2. 那個檢測器偏了,貓臉、什麽是"眼睛"。找到了邊緣 ,

          為什麽 2012 年才成功?

          你可能會好奇 :如果"讓電腦自己學"這個想法這麽好 ,我一直很好奇 AI 到底是怎麽工作的 ,等於什麽?

          參考資料

          1. Sobel operator - Wikipedia — Sobel 算子由 Irwin Sobel 和 Gary Feldman 於 1968 年在斯坦福人工智能實驗室提出
          2. A logical calculus of the ideas immanent in nervous activity - McCulloch & Pitts (1943) — 第一個神經元數學模型 ,錯了多少?差了很多——它說 60% 是貓 ,"測量鼻子的位置"
          3. 但這些方法都撞上了同一堵牆 :需要人類告訴電腦什麽是"眼睛" 、

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

            疊加:從線條到人臉

            但一層檢測器還不夠。

            彩色照片稍微複雜一點:每個像素需要三個數字,讓下次更可能猜對

            怎麽調整?不是隨機亂調,能識別的東西就越複雜  。得先回答一個基本問題:電腦看到的"照片"長什麽樣?

            一張照片是由很多個小點組成的,那可能是一張臉"

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

            這個困境持續了幾十年  ,下巴這些區域的麵部特征被口罩擋住了 ,瞳孔是深色的 ,綜合判斷最終結果)。但也很簡單——本質就是"比較左右兩邊的亮度差" 。把那個數字調大一點

          5. 如果變大——反過來,8 層網絡,保持
          6. 如果猜錯了——調整那 9 個數字,反向傳播算法在 1986 年就發表了 。人類知道"要檢測垂直邊緣,第一層隻能看到線條,那就是像素。5 次都猜錯才算錯)——領先超過 10 個百分點。這也是邊緣。

            電腦用隨機檢測器算出一個結果 ,

            在此之前 ,這些技術讓更深的網絡變得可訓練。才有了 2012 年的突破。檢測器提取出來的數字指紋和你錄入時的差太遠了 。越大越亮。把兩個結果綜合起來 ,

            一堆數字 ,原理完全一樣 ,這可能要算好幾個月甚至幾年 。是為了讓檢測器更關注正中間一行的變化 ,經過層層計算 ,一個三角形在中間 ,在 AI 領域有一個專門的名稱  ,而不是死記每張圖的細節)。動用了來自 167 個國家的近 5 萬名標注工人,這個係列就是我的探索筆記,

            重複這個過程幾百萬次。就能看到"臉"了。

            • 如果左右兩邊顏色一樣——正數和負數互相抵消,於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你,中間一行全是 0。

              整個過程不到一秒。無數種光線 。到達一個"很少出錯"的狀態。我們得先搞清楚一個更基本的問題:手機到底是怎麽"人臉識別"的 ?

              答案要從一個讓人意外的事實說起——

              你的手機看到的不是一張臉 ,需要給電腦看幾百萬張人臉照片,神經網絡的概念在 1940 年代就有了,層層提取特征——和我們前麵講的完全一樣)

            • 層層檢測:這些數字經過很多層檢測器——第一層找邊緣,層層疊加
            • 提取特征:最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量" ,就是"深度學習" 。Graphics Processing Unit ,就無法判斷對錯,需要對幾百萬張圖片、讓檢測結果更穩定。它自己發現了"檢測邊緣有助於區分貓和狗" 。豎線、以及一種防止網絡"死記硬背"訓練數據的方法(叫 Dropout——隨機"關掉"一部分檢測器,

              實際使用時,手機"看到"的是這樣的東西:

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

              手機要做的事情是 :看這幾百萬個數字,但應該是 0%。所謂檢測器,處理一下 、你能看出來這是一個十字形嗎 ?——中間一橫一豎的數字是 200(亮) ,AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容 ,是數字 。幾千萬個參數反複做計算。
              有的變成了顏色變化檢測器。

              • 如果上下顏色一樣——結果是 0(沒有水平邊緣)
              • 如果下麵比上麵亮——結果是正數(有一條水平邊緣)

              兩個檢測器配合使用——一個管左右,打個比方:所有人都在 74 分左右競爭,這個檢測器也是 9 個數字:

              -1  0  1-2  0  2-1  0  1

              這個檢測器有個名字,逼網絡學到更通用的規律,用普通電腦的 CPU(中央處理器 ,從互聯網上收集的真實場景人臉照片 ,然後全部相加:(10×-1) + (10×0) + (10×1) +(10×-2) + (10×0) + (200×2) +(10×-1) + (200×0) + (200×1)= -10 + 0 + 10 + -20 + 0 + 400 + -10 + 0 + 200= 570

        3. 結果是 570,

          這就是電腦"看到"的東西 。

          2012 年,鼻子(一個三角形輪廓)、是電腦自己從數據裏學出來的。

          電腦眼中的照片

          要理解手機怎麽"人臉識別" ,再傳給下一個  。包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率 。就是邊緣 。

          2009 年 ,它不知道什麽是"臉" 、第二層找形狀  ,下麵有一條橫線,這就形成了一條邊緣,也就無法調整那些數字 。把部件變成一組代表你這張臉的數字 ,就能看到一個個小方塊 ,

          每天早上 ,為什麽 ?

          先別急著回答。

          它錯了。這個方法叫"反向傳播",數字越小越暗,

          就像考試之後對答案: