AI到底聰明在哪機人臉從手起識別說
這就是聪明从手"學習"的本質:不是有人教了它規則,訓練出了 AlexNet 。机人下麵一行全是脸识正數 ,李飛飛團隊通過亞馬遜的别说眾包平台(一種把任務拆成小塊、變成幾百萬個數字(說明一下:現代手機的到底人臉解鎖不隻靠普通攝像頭——比如 iPhone 的 Face ID 會用紅外線在你臉上投射上萬個不可見的小點,所以選擇了這樣的聪明从手數字組合 。什麽是机人"眼睛" ,不是脸识咬一口的味道——那它"看到"的是什麽?
文字怎麽變成數字 ?AI 又怎麽"理解"這些數字的意思 ?
下一篇 ,結果是别说負數(有一條從亮到暗的邊緣)
差異越大 ,
整個網絡包含 6000 萬個可調整的到底數字 。如果邊緣是聪明从手水平的(上下亮度差)呢?
很簡單——把檢測器旋轉 90°:
-1 -2 -1 0 0 0 1 2 1看出來了嗎 ?現在上麵一行全是負數,
而訓練神經網絡恰好也是机人這種活——對幾百萬個數字做大量簡單的乘法和加法。就是脸识一組數字組成的小模板——把它疊到圖片上 ,"這是别说狗"。涵蓋 2 萬多個類別。判斷"這是不是主人的臉" 。層數很多的神經網絡,它怎麽找到邊緣 ?
答案讓我很驚訝 :隻用簡單的加減乘除就能做到。檢測器提取出來的數字指紋和你錄入時的差太遠了。第二層找形狀,動輒幾十層、
為什麽 2012 年才成功?
你可能會好奇 :如果"讓電腦自己學"這個想法這麽好,眼睛也是:眼白是淺色的,算法改進——同時到位 ,瞳孔是深色的,
那次突破有多震撼 ?在 ImageNet 圖像識別比賽中,從互聯網上收集的真實場景人臉照片 ,不能告訴你"這是一隻眼睛"。我產生了一個新的疑問:
AI 能"看"了——圖片在它眼裏是數字矩陣,但眼睛、超過 1400 萬張標注圖片
那為什麽到 2012 年才突然成功?
因為三個條件終於同時湊齊了 :
1. 數據
2009 年,側臉怎麽辦 ?戴帽子怎麽辦?隻露出半張臉怎麽辦 ?
你怎麽可能把所有情況都寫成規則 ?
規則越寫越多 ,純白是 255,它照樣能解鎖。汽車
像素 → 邊緣 → 形狀 → 部件 → 整體
每一層都是在上一層的基礎上,訓練這樣一個模型 ,斯坦福大學的李飛飛教授團隊發布了 ImageNet 數據集。結果的數字越大(不管是正還是負) ,它就是這樣一張表格:
0 0 200 0 0 0 0 200 0 0200 200 200 200 200 0 0 200 0 0 0 0 200 0 00 是黑色 ,
一個現代的人臉識別模型可能有幾百萬到上億個參數。為什麽沒有更早實現 ?
事實上,
仔細看這個檢測器的結構
:左邊一列全是負數
,就 9 個像素,別擔心,保持
第一個線索 :邊緣
什麽是邊緣?就是照片裏顏色突然變化的地方。把邊緣變成形狀 ,而發型屬於臉的外圍,它不知道什麽是"臉"、完全不需要知道什麽是"臉" 、
回到手機人臉識別

現在你知道手機是怎麽認出你的了 。
讓我一步一步算給你看:
圖片: 檢測器:10 10 10 -1 0 110 10 200 -2 0 210 200 200 -1 0 1對應位置相乘 ,包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率
。是電腦自己從數據裏學出來的 。你就找到了輪廓
、它"看到"的是什麽?不是一個水果的畫麵 ,其餘全是 0(暗)。
每天早上
,斯坦福的吳恩達(Andrew Ng)團隊就發表了一篇論文 ,200 是亮色(接近白色)。豎線、沒有邊緣。把那個數字調大一點如果變大——反過來
,綜合判斷最終結果)。實際上在做這件事
:
- 右邊像素的亮度 × 正數(加分)
- 左邊像素的亮度 × 負數(減分)
- 中間像素 × 0(不影響結果)
所以最終的結果
,
這個數字的意思是:這裏有一條明顯的邊緣,也就無法調整那些數字。即可訂閱。把兩個結果綜合起來 ,這樣就能得到一張新的"邊緣地圖"——原圖中每個位置的數字,
至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大,於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你 ,
2009 年 ,而今天的大型模型
,幾千萬個參數反複做計算。就能看到一個個小方塊
,本質上就是:右邊的亮度 - 左邊的亮度
。需要對幾百萬張圖片、
這就是電腦"看"圖片的第一步
:找到所有顏色突變的位置。
反向傳播做的事情是
:從最後的錯誤出發
,我們先用一個更簡單的任務來說明這個過程——區分貓和狗。而是一堆數字
。
電腦眼中的照片
要理解手機怎麽"人臉識別" ,
假設電腦要判斷一張圖是貓還是狗。戴上口罩,
2012 年 ,下麵有一條橫線 ,在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild,我一直很好奇 AI 到底是怎麽工作的,
解決方法是 :疊加很多層。
有的變成了顏色變化檢測器。錯了多少
?差了很多——它說 60% 是貓,結果肯定是亂七八糟的。這個係列就是我的探索筆記 ,需要給電腦看幾百萬張人臉照片,同步更新在個人博客和微信公眾號
微信搜索"我沒有三顆心髒"或者掃描二維碼
,最終這個數據集包含了超過 1400 萬張標注好的圖片
,曲線
第二層檢測器:把第一層找到的邊緣組合起來
,想象這樣一個過程:
- 第一層檢測器:從原始像素中找到各種邊緣——橫線 、

比如 Google 在 2015 年發表的 FaceNet,自己找到了有用的規律
。神奇的事情發生了
:那些原本隨機的數字,無數種光線。"這是汽車"
。
這就是"訓練"。

這個類比最早來自 1943 年 McCulloch 和 Pitts 的論文 ,所以還能匹配上。下巴這些區域的麵部特征被口罩擋住了 ,加上"女人" ,打個比方:所有人都在 74 分左右競爭,用它來學習的方法
,

"標注好"的意思是:每張圖片都有人告訴你"這是貓" 、5 次都猜錯才算錯)——領先超過 10 個百分點。鼻子(一個三角形輪廓)、"這是狗"、解鎖
。
而關鍵是:每一層的檢測器裏的數字,那就是像素 。
但如果讓電腦自己來選呢?
假設我們不再指定這 9 個數字 ,
從邊緣到形狀:AI 卡了幾十年
找到邊緣之後呢?
1968 年的 Sobel 算子能找到邊緣
,
電腦用隨機檢測器算出一個結果,
一道簡單的數學題
假設我們有一小塊圖片 ,嘴巴(兩條曲線)
- 第四層檢測器:把部件組合成整體——人臉、這個檢測器會在整張圖片上一格一格地滑動,就無法判斷對錯 ,你會看到一個讓我非常震撼的例子:"國王"減去"男人"
,就是一串能代表你長相特征的數字)
- 比較
:把這個數字指紋和你第一次錄入時存下的數字指紋做比較
- 判斷:如果兩組數字足夠接近——解鎖
整個過程沒有任何"理解"
。越大越亮。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 月發布,不過你不需要把這個類比想得太深——它隻是一種"層層傳遞、而顏色在電腦裏是用數字表示的。原理完全一樣,它輸出"60% 可能是貓"
,就能找到圖片裏顏色變化的地方 。結果是正數(有一條從暗到亮的邊緣) 如果左邊比右邊亮——負數那邊貢獻更大 ,把那個數字調小一點 每次調整的幅度都很小(比如 0.001),這些可調整的數字
,歡迎分享+關注 。遊戲畫麵需要同時計算屏幕上幾百萬個像素的顏色,
三個條件——海量數據、讓檢測結果更穩定。每張都貼好標簽——"這是貓"、什麽是"鼻子"
。"測量鼻子的位置"但這些方法都撞上了同一堵牆:需要人類告訴電腦什麽是"眼睛" 、和正確答案對比:
- 如果猜對了——不錯,最終的錯誤會變大還是變小
?
- 如果變小——好,它通過層層檢測器從數字中提取特征。就是邊緣。
就像考試之後對答案
:
- 最終結果錯了
- 是因為最後一步的某個數字偏了
- 那個數字偏了,
這需要大量的計算。top-5 錯誤率 15.3%
- AlexNet - Wikipedia — AlexNet 架構細節與參數量
- FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型
,之所以叫這個名字,但換發型還能認出來
?
因為口罩遮住了臉的下半部分——嘴巴、不是圖像 ,就要比較左右兩邊的亮度"
,
但如果我們告訴電腦"正確答案"呢 ?
就像老師批改作業一樣 。要理解這件事
,所謂檢測器,
你看,識別簡單形狀——圓形、分給大量網上工人完成的平台),是數字。一張 1000×1000 的照片,但應該是 0%
。神經網絡的概念在 1940 年代就有了,AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容,後續文章也會持續更新 。綠色、至今已經用了半個多世紀。數字越小越暗,分別表示紅色 、你能看出來這是一個十字形嗎?——中間一橫一豎的數字是 200(亮),神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序,排成 3×3:
10 10 1010 10 20010 200 200
左上角是深色(數字 10,AI 為什麽能通過律師考試卻會一本正經地撒謊
。看一眼屏幕,背景可能是深色的,上百層
,
但文字呢?
當你對 ChatGPT 說"蘋果",變成了"這個位置有沒有邊緣"的數字。然後全部加起來。
這種"很多層檢測器疊加"的結構
,是因為上一層的某個檢測器輸出偏了
- 那個檢測器偏了
,隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度"。
2012 年的突破用了一個聰明的辦法:用遊戲顯卡(GPU
,而是有一套精巧的方法能算出每個數字該往大了調還是往小了調。一堆線條還不能告訴我們"這是一張臉" 。直到一個想法改變了一切 :
不要人類來設計檢測器,一個三角形在中間
,發現了很多有意思的東西,所以這幾層叫"卷積層")。把形狀變成部件 ,
邊緣勾勒出了圖片裏"有東西"的地方。我後麵會專門講 。
但你可能已經發現了一個問題:這個檢測器隻能找到垂直方向的邊緣(左右亮度差) 。
這個困境持續了幾十年
,在 AI 領域有一個專門的名稱,中間有一條從左上到右下的分界線——這就是一條邊緣 。
疊加:從線條到人臉
但一層檢測器還不夠
。動用了來自 167 個國家的近 5 萬名標注工人 ,
不過你可能注意過一個奇怪的事:在幾年前,什麽是"眼睛" 。
電腦沒有被告知"要檢測邊緣"。一層一層往回追溯,GPU 訓練神經網絡比 CPU 快約 70 倍。現在你隻需要知道:電腦有辦法算出調整的方向和幅度
。
讓我把完整的過程串起來
:
- 采集麵部數據
功成身退網