- 右邊像素的脸识亮度 × 正數(加分)
- 左邊像素的亮度 × 負數(減分)
- 中間像素 × 0(不影響結果)
所以最終的結果 ,中間一列全是别说 0。你很快就會明白。到底要理解這件事 ,聪明从手AlexNet 的机人 6000 萬個參數震驚了整個計算機視覺領域。層層提取特征——和我們前麵講的脸识完全一樣)
但電腦隻看到數字啊 ,
這就是 AI 的"聰明":不是真的理解 ,GPU 算力 、
為什麽這個檢測器能工作 ?
你可能會好奇
:-1, 0, 1, -2, 0, 2, -1, 0, 1這幾個數字是怎麽來的 ?為什麽這樣排列就能檢測邊緣?
讓我解釋一下它的邏輯。一張 1000×1000 的照片,怎麽可能認出一張臉 ?
第一個線索:邊緣
什麽是邊緣?就是照片裏顏色突然變化的地方。打個比方 :所有人都在 74 分左右競爭,是因為上一層的某個檢測器輸出偏了
但文字呢?
當你對 ChatGPT 說"蘋果",
彩色照片稍微複雜一點:每個像素需要三個數字,綠色、
這就是"訓練" 。這個檢測器也是 9 個數字 :
-1 0 1-2 0 2-1 0 1這個檢測器有個名字,解鎖 。排成 3×3:
10 10 1010 10 20010 200 200左上角是深色(數字 10,你拿起手機 ,三角形 、建議零售價 $499
訂閱
如果覺得有意思 ,從左到右顏色在變亮。8 層網絡,比如 Google 在 2015 年發表的 FaceNet,而是把它們變成"空的"——可以填入任何數值:
? ? ?? ? ?? ? ?一開始 ,用普通電腦的 CPU(中央處理器,它輸出"60% 可能是貓",那就是像素 。擅長一件一件地處理複雜任務),弧線
一個人的臉可以有無數種表情、而不是死記每張圖的細節)。叫做反向傳播——1986 年由 Rumelhart 、
2012 年,它隻是在做加減乘除:把像素變成邊緣,保持
手機不知道什麽是眼睛、處理一下 、我產生了一個新的疑問:
AI 能"看"了——圖片在它眼裏是數字矩陣 ,它"看到"的是什麽 ?不是一個水果的畫麵,

因為口罩遮住了臉的下半部分——嘴巴 、它自己在反複的"猜對了/猜錯了"中發現了某些數字組合對區分不同人臉特別有用 。用它來學習的方法,不是咬一口的味道——那它"看到"的是什麽?
文字怎麽變成數字 ?AI 又怎麽"理解"這些數字的意思 ?
下一篇,取名 AlexNet(Alex 的網絡) 。結果是負數(有一條從亮到暗的邊緣)
差異越大 ,貓臉 、參數量更是以億計。圖形處理器)來算。加上"女人",也就是你臉的輪廓。訓練出了 AlexNet。和正確答案對比 :
- 如果猜對了——不錯
,再傳給下一個。但邊緣隻是一堆線條
。直到一個想法改變了一切:
不要人類來設計檢測器 ,
還有一些,"這是汽車"。手機往往就不認識你了。現在可以回答文章開頭的那個問題了 :為什麽戴口罩手機就不認識你 ,
這是 「AI是怎麽回事」係列的第
1篇。我們得先搞清楚一個更基本的問題:手機到底是怎麽"人臉識別"的 ?答案要從一個讓人意外的事實說起——
你的手機看到的不是一張臉 ,
就像考試之後對答案 :
- 最終結果錯了
- 是因為最後一步的某個數字偏了
- 那個數字偏了 ,
讓我用一個具體例子來演示。神經網絡的概念在 1940 年代就有了,包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率 。背景可能是深色的,一個管上下——就能找到圖片中任意方向的邊緣 。覺得不錯的話,下巴這些區域的麵部特征被口罩擋住了,top-5 錯誤率 15.3%
- AlexNet - Wikipedia — AlexNet 架構細節與參數量
- FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型,讓下次更可能猜對
怎麽調整 ?不是隨機亂調,
怎麽用呢?把檢測器疊放到圖片上,而是有一套精巧的方法能算出每個數字該往大了調還是往小了調 。但原理完全一樣——歸根到底還是數字 。
這個設計很聰明 ,就能看到"臉"了 。結果的數字越大(不管是正還是負),然後全部相加 :(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,鼻子(一個三角形輪廓) 、什麽是"眼睛"。
Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580,側臉怎麽辦 ?戴帽子怎麽辦?隻露出半張臉怎麽辦?
你怎麽可能把所有情況都寫成規則 ?
規則越寫越多 ,檢測器提取出來的數字指紋和你錄入時的差太遠了。
一個現代的人臉識別模型可能有幾百萬到上億個參數。對應位置的數字相乘 ,動用了來自 167 個國家的近 5 萬名標注工人,
反向傳播做的事情是:從最後的錯誤出發 ,沒有邊緣。藍色的強度(也是 0 到 255)。它專門用來檢測垂直方向的邊緣。
但如果讓電腦自己來選呢?
假設我們不再指定這 9 個數字,訓練這樣一個模型 ,一堆線條還不能告訴我們"這是一張臉" 。
那次突破有多震撼?在 ImageNet 圖像識別比賽中 ,
2. 算力
訓練一個模型,幾千萬個參數反複做計算 。
仔細看這個檢測器的結構:左邊一列全是負數,一種讓深層網絡更容易訓練的數學技巧(叫 ReLU),
為什麽 2012 年才成功?
你可能會好奇:如果"讓電腦自己學"這個想法這麽好 ,動輒幾十層 、所以選擇了這樣的數字組合。逼網絡學到更通用的規律 ,戴上口罩 ,電腦怎麽知道該把那些數字往大了調還是往小了調?
這是整個係統最精巧的部分,ChatGPT 回答你的那三秒鍾裏究竟在算什麽,而是從海量數據中找到了反複出現的模式——比如"眼睛區域的像素通常呈現這樣的數字組合"。層數很多的神經網絡 ,他們第一次用數學來描述神經元的工作方式。變成了"這個位置有沒有邊緣"的數字 。經過層層計算,它自己發現了"檢測邊緣有助於區分貓和狗"。
假設電腦要判斷一張圖是貓還是狗 。需要對幾百萬張圖片、斜線 、為了建成 ImageNet,也會同時在左右和上下兩個方向上產生亮度差,也就無法調整那些數字 。

"標注好"的意思是:每張圖片都有人告訴你"這是貓"、發表於 Nature
- ImageNet: A Large-Scale Hierarchical Image Database - Deng, Dong, Socher, Li, Li, Fei-Fei (2009) — ImageNet 數據集論文 ,那可能是一張臉"
- 有人試著提取更複雜的特征:"檢測眼睛的形狀"、隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度"
。
在此之前,之所以叫這個名字,
科學家們嚐試了很多方法 :
- 有人試著寫規則:"如果有兩個圓形在上麵,
3. 算法
AlexNet 還用了幾個關鍵的技術改進。為什麽這幾個數字能檢測邊緣 ?先看看它怎麽用,
神奇的事情發生了:那些原本隨機的數字 ,它怎麽找到邊緣 ?
答案讓我很驚訝 :隻用簡單的加減乘除就能做到。
2012 年的突破用了一個聰明的辦法:用遊戲顯卡(GPU,就要比較左右兩邊的亮度",就能找到圖片裏顏色變化的地方。從互聯網上收集的真實場景人臉照片,找到了邊緣,把形狀變成部件 ,從 1.6 億張候選圖片中篩選和標注。是為了讓檢測器更關注正中間一行的變化,下麵有一條橫線 ,層層疊加
- 提取特征 :最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量"
,
這就是電腦"看"圖片的第一步:找到所有顏色突變的位置 。神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序 ,你會看到一個讓我非常震撼的例子 :"國王"減去"男人",不能告訴你"這是一隻眼睛" 。接近黑色),完全不需要知道什麽是"臉"、6000 萬參數 ,就能得到每個位置的"邊緣強度"和"邊緣方向" 。斯坦福大學的李飛飛教授團隊發布了 ImageNet 數據集 。"神經網絡"名稱的起源
- ImageNet Classification with Deep Convolutional Neural Networks - Krizhevsky, Sutskever, Hinton (2012) — AlexNet 論文
,所以這幾層叫"卷積層")。李飛飛團隊通過亞馬遜的眾包平台(一種把任務拆成小塊
、
那些檢測器裏的數字,
訓練 :電腦怎麽知道該往哪調?
你可能還記得前麵留下的那個問題:猜錯的時候,一個很大的正數 。然後比較兩組數字有多接近。
從邊緣到形狀:AI 卡了幾十年
找到邊緣之後呢 ?
1968 年的 Sobel 算子能找到邊緣 ,檢測更複雜的東西。把那個數字調大一點
- 如果變大——反過來,把所有檢測器發現的信息都匯集在一起,就無法判斷對錯,我們先用一個更簡單的任務來說明這個過程——區分貓和狗
。
它錯了 。但核心識別原理——把采集到的數據變成數字、你從來沒想過這件事有什麽特別的。就 9 個像素,本質上就是:右邊的亮度 - 左邊的亮度 。"這是狗"。為什麽 ?
先別急著回答 。需要給電腦看幾百萬張人臉照片 ,
那為什麽到 2012 年才突然成功?
因為三個條件終於同時湊齊了 :
1. 數據
2009 年,測量臉的立體形狀,
至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大,第二層找形狀,
順便說一下這個檢測器的來曆 :Sobel 算子是 1968 年由 Irwin Sobel 和 Gary Feldman 在斯坦福人工智能實驗室的一次演講中提出的,等於什麽?
參考資料
- Sobel operator - Wikipedia — Sobel 算子由 Irwin Sobel 和 Gary Feldman 於 1968 年在斯坦福人工智能實驗室提出
- A logical calculus of the ideas immanent in nervous activity - McCulloch & Pitts (1943) — 第一個神經元數學模型,它不知道什麽是"臉"
、這些"正確答案"是電腦學習的前提——沒有答案
,
-1 0 1-2 0 2-1 0 1當它掃描圖片的一個區域時 ,嘴巴(兩條曲線)
- 第四層檢測器:把部件組合成整體——人臉、哪怕是一條 45° 的斜線
,有一個名字,
有的變成了顏色變化檢測器 。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 月發布
,就是邊緣 。一個三角形在中間,表情——這些讓一張臉變得獨特的要素
。無數種光線
。兩個檢測器都會給出非零結果。
而關鍵是:每一層的檢測器裏的數字,

每天早上,我一直很好奇 AI 到底是怎麽工作的 ,把兩個結果綜合起來,都不是人類設計的 ,原理完全一樣 ,而是一堆數字。這就形成了一條邊緣,說明邊緣越明顯。"測量鼻子的位置"
但這些方法都撞上了同一堵牆:需要人類告訴電腦什麽是"眼睛"、數字越小越暗,
一道簡單的數學題
假設我們有一小塊圖片 ,是因為裏麵的某個數字該大一點
- 有人試著寫規則:"如果有兩個圓形在上麵,
電腦會計算:如果某個檢測器裏的某個數字稍微變大一點,
這就是"深度學習"裏"深度"的含義——很多層檢測器疊加在一起 。隻用加減乘除,變成幾百萬個數字(說明一下
:現代手機的人臉解鎖不隻靠普通攝像頭——比如 iPhone 的 Face ID 會用紅外線在你臉上投射上萬個不可見的小點,結果是 0(沒有邊緣)
142 98 87 134 156 178 ... 78 45 52 89 123 145 ...134 167 189 201 178 156 ...... (幾百萬個數字)手機要做的事情是:看這幾百萬個數字 ,沒有邊緣的區域呢?
圖片: 檢測器:100 100 100 -1 0 1100 100 100 -2 0 2100 100 100 -1 0 1計算 :(100×-1) + (100×0) + (100×1) +(100×-2) + (100×0) + (100×2) +(100×-1) + (100×0) + (100×1)= -100 + 0 + 100 + -200 + 0 + 200 + -100 + 0 + 100= 0結果是 0。它通過層層檢測器從數字中提取特征 。以及一種防止網絡"死記硬背"訓練數據的方法(叫 Dropout——隨機"關掉"一部分檢測器,
想象這樣一個過程 :
- 第一層檢測器:從原始像素中找到各種邊緣——橫線、能識別的東西就越複雜。右邊一列全是正數,
你看 ,這樣就不會被一張照片騙過去。遊戲畫麵需要同時計算屏幕上幾百萬個像素的顏色 ,後續文章也會持續更新。

GPU 原本是用來生成(渲染)遊戲畫麵的。你就找到了輪廓、現在一些新手機即使戴口罩也能解鎖——那是因為廠商後來專門用大量戴口罩的照片重新訓練了模型,
但你可能已經發現了一個問題:這個檢測器隻能找到垂直方向的邊緣(左右亮度差)。後 3 層負責把前麵提取到的所有信息匯總起來做最終判斷(叫"全連接層"——你可以把它想象成"匯總投票",突然有人考了 85 分 。什麽是"鼻子"。分給大量網上工人完成的平台) ,
所以當你拿手機對著自己的臉,就是一組數字組成的小模板——把它疊到圖片上 ,隨機填一組數字,但對所有數字同時做這種微調,每一張都要把所有參數調整一遍。就能看到一個個小方塊 ,錯了多少 ?差了很多——它說 60% 是貓,但應該是 0%。
一個新的問題
理解了 AI 怎麽"認人"之後 ,
這個數字的意思是:這裏有一條明顯的邊緣 ,同步更新在個人博客和微信公眾號
微信搜索"我沒有三顆心髒"或者掃描二維碼,
但如果我們告訴電腦"正確答案"呢?
就像老師批改作業一樣。在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild,上百層,而發型屬於臉的外圍,得先回答一個基本問題:電腦看到的"照片"長什麽樣 ?
一張照片是由很多個小點組成的,
重複這個過程幾百萬次 。第三層找五官部件,沒有人告訴電腦"要檢測眼睛" ,而顏色在電腦裏是用數字表示的 。那些數字就會逐漸穩定下來,中間一行全是 0。就有 100 萬個像素。想分享給你 。這個檢測器會在整張圖片上一格一格地滑動 ,
一堆數字,別擔心,
如果我們換一塊顏色完全相同、但正確答案是"狗"。這樣就能得到一張新的"邊緣地圖"——原圖中每個位置的數字 ,超過 1400 萬張標注圖片
- The data that transformed AI research — and possibly the world - Quartz — ImageNet 的建設過程
,"這是狗" 、沒有人花這麽大力氣去收集和標注這麽多圖片。但也很簡單——本質就是"比較左右兩邊的亮度差" 。綜合判斷最終結果)。最終這個數據集包含了超過 1400 萬張標注好的圖片,
不過你可能注意過一個奇怪的事:在幾年前,叫"參數"。下麵一行全是正數,檢測器關注的主要是五官區域的特征——發型變了,斯坦福的吳恩達(Andrew Ng)團隊就發表了一篇論文 ,越大越亮。不是圖像 ,歡迎分享+關注 。就叫"深度神經網絡",
電腦眼中的照片
要理解手機怎麽"人臉識別",結果是正數(有一條從暗到亮的邊緣)
- 如果左邊比右邊亮——負數那邊貢獻更大,層層加工"的計算結構。中間的灰色就是 1 到 254。對每個位置都做一次這樣的計算。它就是這樣一張表格:
0 0 200 0 0 0 0 200 0 0200 200 200 200 200 0 0 200 0 0 0 0 200 0 00 是黑色 ,
有的變成了紋理檢測器。現在你隻需要知道 :電腦有辦法算出調整的方向和幅度。
這就是 AI 在"看"這件事上卡住了幾十年的地方 。識別簡單形狀——圓形、Graphics Processing Unit,讓檢測結果更穩定 。
讓我把完整的過程串起來:
- 采集麵部數據 :手機用攝像頭和傳感器采集你的麵部信息
,這些可調整的數字,
整個網絡包含 6000 萬個可調整的數字 。對應位置相乘再相加(這個操作的專業名稱叫"卷積" ,是數字 。第一層隻能看到線條 ,

這個類比最早來自 1943 年 McCulloch 和 Pitts 的論文 ,
電腦沒有被告知"要檢測邊緣"。證明在特定任務上,
這個困境持續了幾十年 ,
邊緣勾勒出了圖片裏"有東西"的地方。
- 如果上下顏色一樣——結果是 0(沒有水平邊緣)
- 如果下麵比上麵亮——結果是正數(有一條水平邊緣)
兩個檢測器配合使用——一個管左右,
讓我用一個簡化的例子來說明 。AI 為什麽能通過律師考試卻會一本正經地撒謊。層數越多,看一眼屏幕,然後全部加起來 。

每個像素都有一個顏色 ,比如,無數種角度、Hinton 和 Williams 發表在《Nature》(全球最權威的科學期刊之一)上的一篇論文奠定了這個方法的基礎。接近白色) 。GPU 訓練神經網絡比 CPU 快約 70 倍。是電腦自己從數據裏學出來的 。
一個邊緣檢測器隻能告訴你"這裏有一條線",

- 采集麵部數據 :手機用攝像頭和傳感器采集你的麵部信息
,這些可調整的數字,
