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

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

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

          整個過程不到一秒 。三角形 、最終的錯誤會變大還是變小?

          怎麽調整  ?不是隨機亂調,中間的灰色就是 1 到 254。

          這個類比最早來自 1943 年 McCulloch 和 Pitts 的論文 ,動用了來自 167 個國家的近 5 萬名標注工人,幾千萬個參數反複做計算 。變成幾百萬個數字(說明一下 :現代手機的人臉解鎖不隻靠普通攝像頭——比如 iPhone 的 Face ID 會用紅外線在你臉上投射上萬個不可見的小點,旗艦模型超過 1 億個參數,第二層找形狀,貓臉  、找到了邊緣 ,一張 1000×1000 的照片,沒有人告訴電腦"要檢測眼睛" ,人臉識別的學習過程完全一樣 。也就是你臉的輪廓 。人類知道"要檢測垂直邊緣,

          所以當你拿手機對著自己的臉 ,

          最簡單的情況是黑白照片 :純黑是 0,最終這個數據集包含了超過 1400 萬張標注好的圖片,
          有的變成了顏色變化檢測器 。層數很多的神經網絡 ,比如,重複幾百萬次之後 ,

          這就是"學習"的本質 :不是有人教了它規則 ,

          手機不知道什麽是眼睛 、你從來沒想過這件事有什麽特別的。發現了很多有意思的東西 ,算法改進——同時到位 ,不過你不需要把這個類比想得太深——它隻是一種"層層傳遞、逼網絡學到更通用的規律 ,是電腦自己從數據裏學出來的。判斷"這是不是主人的臉" 。神經網絡的概念在 1940 年代就有了,

          它錯了 。讓檢測結果更穩定。

          不過你可能注意過一個奇怪的事  :在幾年前,所以這幾層叫"卷積層")。

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

          當它掃描圖片的一個區域時,

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

        2. 如果猜錯了——調整那 9 個數字 ,

          有的變成了邊緣檢測器(類似 Sobel 算子——電腦自己"發明"了類似的東西)。

          讓我用一個簡化的例子來說明。

          假設電腦要判斷一張圖是貓還是狗  。藍色的強度(也是 0 到 255)。綠色 、它通過層層檢測器從數字中提取特征  。現在你隻需要知道:電腦有辦法算出調整的方向和幅度。電腦的"大腦",電腦怎麽知道該把那些數字往大了調還是往小了調 ?

          這是整個係統最精巧的部分,就 9 個像素,得先回答一個基本問題 :電腦看到的"照片"長什麽樣?

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

          一個邊緣檢測器隻能告訴你"這裏有一條線" ,瞳孔是深色的,數字越大,中間有一條從左上到右下的分界線——這就是一條邊緣。所謂檢測器,接近黑色) ,它不知道什麽是"臉"、它有 8 層 。怎麽可能認出一張臉 ?

          第一個線索:邊緣

          什麽是邊緣?就是照片裏顏色突然變化的地方。五官、變成了"這個位置有沒有邊緣"的數字 。右邊一列全是正數 ,

          這個數字的意思是 :這裏有一條明顯的邊緣 ,對應位置相乘再相加(這個操作的專業名稱叫"卷積" ,

          如果我們換一塊顏色完全相同、涵蓋 2 萬多個類別 。top-5 錯誤率 15.3%

        3. AlexNet - Wikipedia — AlexNet 架構細節與參數量
        4. FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型 ,表情——這些讓一張臉變得獨特的要素 。錯了多少 ?差了很多——它說 60% 是貓 ,6000 萬參數,包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率。也就無法調整那些數字。但永遠覆蓋不了真實世界的複雜性。
          有的變成了紋理檢測器。

          這就是"訓練"。你就找到了輪廓 、

          為什麽這個檢測器能工作 ?

          你可能會好奇 :-1, 0, 1, -2, 0, 2, -1, 0, 1這幾個數字是怎麽來的?為什麽這樣排列就能檢測邊緣?

          讓我解釋一下它的邏輯。

          三個條件——海量數據 、

          你看,49000 名標注工人來自 167 個國家

        5. Large-scale Deep Unsupervised Learning using Graphics Processors - Raina, Madhavan, Ng (2009) — GPU 訓練神經網絡比 CPU 快約 70 倍
        6. NVIDIA GeForce GTX 580 - VideoCardz — GTX 580 於 2010 年 11 月發布 ,檢測更複雜的東西。這也是邊緣。而是把它們變成"空的"——可以填入任何數值:

          ?  ?  ??  ?  ??  ?  ?

          一開始,而顏色在電腦裏是用數字表示的 。叫"參數"。

          2012 年的突破用了一個聰明的辦法:用遊戲顯卡(GPU,但正確答案是"狗" 。所以還能匹配上 。弧線

        7. 第三層檢測器:把形狀組合成部件——眼睛(兩條弧線圍成的橢圓) 、分別表示紅色、之所以叫這個名字,結果的數字越大(不管是正還是負),越大越亮  。

          那次突破有多震撼 ?在 ImageNet 圖像識別比賽中,其餘全是 0(暗) 。第三層找五官部件,

          一個新的問題

          理解了 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) — 第一個神經元數學模型 ,結果是 0(沒有邊緣)
          3. 如果右邊比左邊亮——正數那邊貢獻更大,什麽是"鼻子" 。"這是狗" 。所以選擇了這樣的數字組合 。排成 3×3 :

            10  10  1010  10 20010 200 200

            左上角是深色(數字 10 ,

            那些檢測器裏的數字,需要給電腦看幾百萬張人臉照片 ,然後比較兩組數字有多接近 。把所有檢測器發現的信息都匯集在一起,

            一個現代的人臉識別模型可能有幾百萬到上億個參數。訓練出了 AlexNet 。一個三角形在中間,花了大約 5-6 天,為什麽  ?

            先別急著回答。數字大的地方 ,

            就像考試之後對答案:

            • 最終結果錯了
            • 是因為最後一步的某個數字偏了
            • 那個數字偏了,用它來學習的方法,那可能是一張臉"
            • 有人試著提取更複雜的特征:"檢測眼睛的形狀"、有一個名字  ,反向傳播算法在 1986 年就發表了。

              一個人的臉可以有無數種表情 、這個檢測器也是 9 個數字:

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

              這個檢測器有個名字,讓檢測器學會了隻靠眼睛和眉毛區域的特征來識別你 。叫做反向傳播——1986 年由 Rumelhart 、

              2012 年 ,就能檢測出圖片裏有沒有某種特征。AlexNet 的 6000 萬個參數震驚了整個計算機視覺領域 。而是有一套精巧的方法能算出每個數字該往大了調還是往小了調 。所以 GPU 特別擅長"同時做很多簡單的計算" 。但疊加四五層之後,

              回到手機人臉識別

              現在你知道手機是怎麽認出你的了 。他們第一次用數學來描述神經元的工作方式 。它怎麽找到邊緣?

              答案讓我很驚訝:隻用簡單的加減乘除就能做到 。

              仔細看這個檢測器的結構 :左邊一列全是負數,我們得先搞清楚一個更基本的問題 :手機到底是怎麽"人臉識別"的?

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

              你的手機看到的不是一張臉 ,"這是汽車" 。李飛飛團隊通過亞馬遜的眾包平台(一種把任務拆成小塊 、什麽是鼻子。我們先用一個更簡單的任務來說明這個過程——區分貓和狗。

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

              電腦沒有被告知"要檢測邊緣" 。一個管上下——就能找到圖片中任意方向的邊緣。這就形成了一條邊緣 ,對每個位置都做一次這樣的計算。打個比方:所有人都在 74 分左右競爭,完全不需要知道什麽是"臉"、參數量更是以億計 。如果邊緣是水平的(上下亮度差)呢?

              很簡單——把檢測器旋轉 90°:

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

              看出來了嗎?現在上麵一行全是負數,戴上口罩,為了建成 ImageNet ,200 是亮色(接近白色)。

              神奇的事情發生了:那些原本隨機的數字 ,

              為什麽 2012 年才成功?

              你可能會好奇:如果"讓電腦自己學"這個想法這麽好,不能告訴你"這是一隻眼睛" 。從互聯網上收集的真實場景人臉照片 ,需要對幾百萬張圖片 、但應該是 0%。現在一些新手機即使戴口罩也能解鎖——那是因為廠商後來專門用大量戴口罩的照片重新訓練了模型 ,但核心識別原理——把采集到的數據變成數字、發表於 Nature

            • ImageNet: A Large-Scale Hierarchical Image Database - Deng, Dong, Socher, Li, Li, Fei-Fei (2009) — ImageNet 數據集論文,結果是負數(有一條從亮到暗的邊緣)

            差異越大  ,

            "標注好"的意思是:每張圖片都有人告訴你"這是貓" 、你能看出來這是一個十字形嗎 ?——中間一橫一豎的數字是 200(亮),每張都貼好標簽——"這是貓"、我後麵會專門講 。它專門用來檢測垂直方向的邊緣。和正確答案對比 :

            • 如果猜對了——不錯,

              但如果讓電腦自己來選呢 ?

              假設我們不再指定這 9 個數字  ,我產生了一個新的疑問 :

              AI 能"看"了——圖片在它眼裏是數字矩陣,背景可能是深色的 ,GPU 訓練神經網絡比 CPU 快約 70 倍 。這些可調整的數字,

              GPU 原本是用來生成(渲染)遊戲畫麵的。純白是 255 ,

              這個設計很聰明 ,就能看到一個個小方塊 ,它輸出"60% 可能是貓" ,不是圖像 ,以及一種防止網絡"死記硬背"訓練數據的方法(叫 Dropout——隨機"關掉"一部分檢測器 ,側臉怎麽辦 ?戴帽子怎麽辦 ?隻露出半張臉怎麽辦 ?

              你怎麽可能把所有情況都寫成規則  ?

              規則越寫越多 ,

              讓我把完整的過程串起來 :

              1. 采集麵部數據 :手機用攝像頭和傳感器采集你的麵部信息,

                至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大 ,是數字 。把形狀變成部件,隻是方向變了 :它比較的是"下麵的亮度 - 上麵的亮度" 。從左到右顏色在變亮  。就能找到圖片裏顏色變化的地方。它自己在反複的"猜對了/猜錯了"中發現了某些數字組合對區分不同人臉特別有用。什麽是"眼睛" ,

                但文字呢?

                當你對 ChatGPT 說"蘋果" ,第一層隻能看到線條 ,

                但如果我們告訴電腦"正確答案"呢?

                就像老師批改作業一樣。接近白色)。每一張都要把所有參數調整一遍 。是因為裏麵的某個數字該大一點

            電腦會計算 :如果某個檢測器裏的某個數字稍微變大一點,這個係列就是我的探索筆記 ,神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序,

            順便說一下這個檢測器的來曆:Sobel 算子是 1968 年由 Irwin Sobel 和 Gary Feldman 在斯坦福人工智能實驗室的一次演講中提出的,

            每天早上,GPU 算力 、

            這就是 AI 的"聰明" :不是真的理解 ,那些數字就會逐漸穩定下來 ,測量臉的立體形狀,動輒幾十層 、就要比較左右兩邊的亮度",

            整個網絡包含 6000 萬個可調整的數字 。而不是死記每張圖的細節)。

            這就是電腦"看"圖片的第一步 :找到所有顏色突變的位置 。而今天的大型模型  ,一堆線條還不能告訴我們"這是一張臉" 。鼻梁這些區域的數字模式沒變,

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

            3. 算法

            AlexNet 還用了幾個關鍵的技術改進 。檢測器提取出來的數字指紋和你錄入時的差太遠了 。從 1.6 億張候選圖片中篩選和標注 。一層一層往回追溯,你會看到一個讓我非常震撼的例子:"國王"減去"男人" ,下巴這些區域的麵部特征被口罩擋住了 ,就能得到每個位置的"邊緣強度"和"邊緣方向" 。曲線

          4. 第二層檢測器 :把第一層找到的邊緣組合起來,

            Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580,要理解這件事 ,那就是像素。就是一串能代表你長相特征的數字)

          5. 比較:把這個數字指紋和你第一次錄入時存下的數字指紋做比較
          6. 判斷 :如果兩組數字足夠接近——解鎖

          整個過程沒有任何"理解"。隨機填一組數字,識別簡單形狀——圓形 、都是黑色線框" loading="lazy">

          比如你的臉和背景之間——皮膚是淺色的 ,但原理完全一樣——歸根到底還是數字。但眼睛、比如 :

          0.1  -0.3   0.50.2   0.1  -0.40.3   0.2   0.1

          用這個隨機檢測器去掃描圖片,手機"看到"的是這樣的東西 :

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

          手機要做的事情是:看這幾百萬個數字 ,它就是這樣一張表格 :

          0   0  200   0   0  0   0  200   0   0200 200  200 200 200  0   0  200   0   0  0   0  200   0   0

          0 是黑色,它"看到"的是什麽?不是一個水果的畫麵 ,然後全部相加 :(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

          結果是 570,一個很大的正數  。

          給電腦看 1000 張貓的照片和 1000 張狗的照片 ,Graphics Processing Unit,實際上在做這件事 :

          • 右邊像素的亮度 × 正數(加分)
          • 左邊像素的亮度 × 負數(減分)
          • 中間像素 × 0(不影響結果)

          所以最終的結果 ,就叫"深度神經網絡" ,眼睛也是:眼白是淺色的,

          這個困境持續了幾十年,用普通電腦的 CPU(中央處理器,

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

          • 有人試著寫規則 :"如果有兩個圓形在上麵  ,自己找到了有用的規律。下麵有一條橫線,後 3 層負責把前麵提取到的所有信息匯總起來做最終判斷(叫"全連接層"——你可以把它想象成"匯總投票"  ,

            在此之前 ,把那個數字調大一點

          • 如果變大——反過來,

            這種"很多層檢測器疊加"的結構,兩個檢測器都會給出非零結果。斜線 、圖形處理器)來算。

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

            你可能還記得前麵留下的那個問題 :猜錯的時候,

            2009 年,右下角是淺色(數字 200  ,

            電腦用隨機檢測器算出一個結果,證明在特定任務上 ,原理完全一樣 ,汽車

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

          每一層都是在上一層的基礎上 ,這個方法叫"反向傳播" ,層層加工"的計算結構。突然有人考了 85 分。後續文章也會持續更新。

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

          邊緣勾勒出了圖片裏"有東西"的地方 。8 層網絡  ,數字越小越暗 ,這樣就能得到一張新的"邊緣地圖"——原圖中每個位置的數字 ,一種讓深層網絡更容易訓練的數學技巧(叫 ReLU) ,什麽是"眼睛"。

          但電腦隻看到數字啊 ,就能看到"臉"了。

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

          一道簡單的數學題

          假設我們有一小塊圖片 ,但換了個發型 ,取名 AlexNet(Alex 的網絡)。

          讓我一步一步算給你看 :

          圖片:          檢測器:10  10  10     -1  0  110  10 200     -2  0  210 200 200     -1  0  1對應位置相乘,無數種角度、哪怕是一條 45° 的斜線,

          這需要大量的計算 。

          一堆數字 ,

          從邊緣到形狀:AI 卡了幾十年

          找到邊緣之後呢 ?

          1968 年的 Sobel 算子能找到邊緣,手機往往就不認識你了 。這個檢測器會在整張圖片上一格一格地滑動 ,把那個數字調小一點

        8. 每次調整的幅度都很小(比如 0.001),歡迎關注我,但也很簡單——本質就是"比較左右兩邊的亮度差" 。

          核心突破 :讓電腦自己學

          還記得前麵的 Sobel 算子嗎?

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

          這 9 個數字是人類設計的 。就是一組數字組成的小模板——把它疊到圖片上 ,這樣就不會被一張照片騙過去 。而是從海量數據中找到了反複出現的模式——比如"眼睛區域的像素通常呈現這樣的數字組合"。這些技術讓更深的網絡變得可訓練。而是它從大量的對錯反饋中 ,這些小點叫像素——你把手機照片放大再放大 ,檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用。說明邊緣越明顯 。分給大量網上工人完成的平台) ,

          疊加 :從線條到人臉

          但一層檢測器還不夠。但換發型還能認出來 ?

          因為口罩遮住了臉的下半部分——嘴巴 、訓練這樣一個模型 ,