為什麽這個檢測器能工作?机人
你可能會好奇 :-1, 0, 1, -2, 0, 2, -1, 0, 1這幾個數字是怎麽來的
?為什麽這樣排列就能檢測邊緣 ?
讓我解釋一下它的邏輯。
還有一些 ,脸识
順便說一下這個檢測器的别说來曆:Sobel 算子是 1968 年由 Irwin Sobel 和 Gary Feldman 在斯坦福人工智能實驗室的一次演講中提出的,比如 Google 在 2015 年發表的到底 FaceNet ,這個方法叫"反向傳播",聪明从手到達一個"很少出錯"的机人狀態。每張都貼好標簽——"這是脸识貓" 、用普通電腦的别说 CPU(中央處理器 ,證明在特定任務上,到底它自己發現了"檢測邊緣有助於區分貓和狗"。聪明从手它專門用來檢測垂直方向的机人邊緣。鼻子(一個三角形輪廓)、脸识
一個人的别说臉可以有無數種表情 、
電腦用隨機檢測器算出一個結果,就能看到"臉"了 。
讓我用一個簡化的例子來說明 。它怎麽找到邊緣?
答案讓我很驚訝 :隻用簡單的加減乘除就能做到。才有了 2012 年的突破 。下巴這些區域的麵部特征被口罩擋住了,這個檢測器會在整張圖片上一格一格地滑動,叫做反向傳播——1986 年由 Rumelhart 、中間一行全是 0 。這也是邊緣 。最終這個數據集包含了超過 1400 萬張標注好的圖片 ,Graphics Processing Unit ,但眼睛 、
讓我一步一步算給你看 :
圖片: 檢測器:10 10 10 -1 0 110 10 200 -2 0 210 200 200 -1 0 1對應位置相乘,你會看到一個讓我非常震撼的例子:"國王"減去"男人"
,其餘全是 0(暗)。現在可以回答文章開頭的那個問題了:為什麽戴口罩手機就不認識你 ,而顏色在電腦裏是用數字表示的。訓練這樣一個模型,

每個像素都有一個顏色,兩個檢測器都會給出非零結果 。結果是正數(有一條從暗到亮的邊緣)
如果左邊比右邊亮——負數那邊貢獻更大
,算法改進——同時到位,這就是"訓練"。是因為上一層的某個檢測器輸出偏了
那個檢測器偏了,我們得先搞清楚一個更基本的問題 :手機到底是怎麽"人臉識別"的?答案要從一個讓人意外的事實說起——
你的手機看到的不是一張臉
,隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度"。
那為什麽到 2012 年才突然成功
?
因為三個條件終於同時湊齊了:
1. 數據
2009 年,它"看到"的是什麽 ?不是一個水果的畫麵 ,
彩色照片稍微複雜一點:每個像素需要三個數字,自己找到了有用的規律。6000 萬參數 ,瞳孔是深色的,
解決方法是:疊加很多層
。
核心突破:讓電腦自己學
還記得前麵的 Sobel 算子嗎?
-1 0 1-2 0 2-1 0 1
這 9 個數字是人類設計的。五官、這些"正確答案"是電腦學習的前提——沒有答案,
最簡單的情況是黑白照片 :純黑是 0,"這是狗"。
這就是 AI 的"聰明" :不是真的理解,不是咬一口的味道——那它"看到"的是什麽?
文字怎麽變成數字?AI 又怎麽"理解"這些數字的意思
?
下一篇,都不是人類設計的 ,
2009 年,後 3 層負責把前麵提取到的所有信息匯總起來做最終判斷(叫"全連接層"——你可以把它想象成"匯總投票",遊戲畫麵需要同時計算屏幕上幾百萬個像素的顏色,突然有人考了 85 分。
至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大,就能得到每個位置的"邊緣強度"和"邊緣方向" 。
不過你可能發現了
,
整個過程不到一秒。你就找到了輪廓、叫 Sobel 算子("算子"就是"計算工具"的意思)。第三層找五官部件,
這就是"學習"的本質:不是有人教了它規則 ,在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild,
有的變成了邊緣檢測器(類似 Sobel 算子——電腦自己"發明"了類似的東西)。經過層層計算,是因為裏麵的某個數字該大一點
電腦會計算:如果某個檢測器裏的某個數字稍微變大一點,這些可調整的數字
,
一個邊緣檢測器隻能告訴你"這裏有一條線"
,為什麽?
先別急著回答。對應位置相乘再相加(這個操作的專業名稱叫"卷積",
仔細看這個檢測器的結構:左邊一列全是負數 ,電腦怎麽知道該把那些數字往大了調還是往小了調?
這是整個係統最精巧的部分
,但對所有數字同時做這種微調 ,那就是像素。讓檢測結果更穩定
。但邊緣隻是一堆線條。數字越小越暗 ,
不過你可能注意過一個奇怪的事:在幾年前
,沒有邊緣的區域呢
?
圖片: 檢測器: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 。接近黑色),你從來沒想過這件事有什麽特別的。需要對幾百萬張圖片、是電腦自己從數據裏學出來的。我們來聊這個問題。上百層,這個檢測器也是 9 個數字
:
-1 0 1-2 0 2-1 0 1
這個檢測器有個名字
,就叫"深度神經網絡"
,人臉識別的學習過程完全一樣。動輒幾十層 、之所以叫這個名字 ,這些技術讓更深的網絡變得可訓練。能識別的東西就越複雜。
這就是"深度學習"裏"深度"的含義——很多層檢測器疊加在一起。叫"參數"。
那次突破有多震撼
?在 ImageNet 圖像識別比賽中,什麽是"鼻子"
。
一道簡單的數學題
假設我們有一小塊圖片,然後全部加起來。所謂檢測器,花了大約 5-6 天 ,不能告訴你"這是一隻眼睛"。
怎麽用呢?把檢測器疊放到圖片上
,藍色的強度(也是 0 到 255)。變成幾百萬個數字(說明一下:現代手機的人臉解鎖不隻靠普通攝像頭——比如 iPhone 的 Face ID 會用紅外線在你臉上投射上萬個不可見的小點,三角形、在 AI 領域有一個專門的名稱 ,但正確答案是"狗"。對應位置的數字相乘 ,訓練出了 AlexNet。是因為它的工作方式有點像人腦中的神經元——每個神經元接收信號、
一個現代的人臉識別模型可能有幾百萬到上億個參數
。分給大量網上工人完成的平台),檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用
。
實際使用時,斯坦福的吳恩達(Andrew Ng)團隊就發表了一篇論文
,就 9 個像素 ,把那個數字調小一點
每次調整的幅度都很小(比如 0.001)
,直到一個想法改變了一切 :
不要人類來設計檢測器,超過 1400 萬張標注圖片The data that transformed AI research — and possibly the world - Quartz — ImageNet 的建設過程,沒有邊緣 。
反向傳播做的事情是:從最後的錯誤出發 ,一層一層往回追溯,200 是亮色(接近白色) 。"這是狗"、即可訂閱
。發現了很多有意思的東西,有一個名字
,為什麽這幾個數字能檢測邊緣?先看看它怎麽用,排成 3×3:
10 10 1010 10 20010 200 200
左上角是深色(數字 10,
但文字呢
?
當你對 ChatGPT 說"蘋果"
,建議零售價 $499
訂閱
如果覺得有意思
,
科學家們嚐試了很多方法 :
- 有人試著寫規則:"如果有兩個圓形在上麵,再傳給下一個。"測量鼻子的位置"
但這些方法都撞上了同一堵牆:需要人類告訴電腦什麽是"眼睛"
、GPU 算力
、實際上在做這件事:
- 右邊像素的亮度 × 正數(加分)
- 左邊像素的亮度 × 負數(減分)
- 中間像素 × 0(不影響結果)
所以最終的結果 ,汽車
像素 → 邊緣 → 形狀 → 部件 → 整體

每一層都是在上一層的基礎上,
讓我用一個具體例子來演示。8 層網絡
,下麵一行全是正數,ChatGPT 回答你的那三秒鍾裏究竟在算什麽
,這個係列就是我的探索筆記,動用了來自 167 個國家的近 5 萬名標注工人,中間有一條從左上到右下的分界線——這就是一條邊緣
。而是有一套精巧的方法能算出每個數字該往大了調還是往小了調。但核心識別原理——把采集到的數據變成數字、歡迎關注我,
它錯了。神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序 ,"神經網絡"名稱的起源
ImageNet Classification with Deep Convolutional Neural Networks - Krizhevsky, Sutskever, Hinton (2012) — AlexNet 論文,3. 算法
AlexNet 還用了幾個關鍵的技術改進 。會自己變成有意義的檢測器。這些小點叫像素——你把手機照片放大再放大 ,弧線
第三層檢測器 :把形狀組合成部件——眼睛(兩條弧線圍成的橢圓)
、於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你,也就是你臉的輪廓 。重複這個過程幾百萬次。旗艦模型超過 1 億個參數,其中前 5 層做的就是我們前麵演示的操作——用檢測器在圖片上滑動、結果是負數(有一條從亮到暗的邊緣)
差異越大,

每天早上,
但如果讓電腦自己來選呢?
假設我們不再指定這 9 個數字,接近白色)。他們第一次用數學來描述神經元的工作方式
。
就像考試之後對答案:
- 最終結果錯了
- 是因為最後一步的某個數字偏了
- 那個數字偏了,而是一堆數字 。和正確答案對比:
- 如果猜對了——不錯,表情——這些讓一張臉變得獨特的要素。
如果我們換一塊顏色完全相同
、LFW 準確率 99.63%
- Labeled Faces in the Wild — LFW 人臉識別測試集官方頁麵
- Learning representations by back-propagating errors - Rumelhart, Hinton, Williams (1986) — 反向傳播算法的奠基論文,層層提取特征——和我們前麵講的完全一樣)
- 層層檢測:這些數字經過很多層檢測器——第一層找邊緣,把邊緣變成形狀,
Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580,所以選擇了這樣的數字組合 。一堆線條還不能告訴我們"這是一張臉"
。無數種角度
、然後全部相加:(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,處理一下、
邊緣勾勒出了圖片裏"有東西"的地方 。為了建成 ImageNet,覺得不錯的話,我們先用一個更簡單的任務來說明這個過程——區分貓和狗。檢測更複雜的東西。找到了邊緣,要理解這件事,Hinton 和 Williams 發表在《Nature》(全球最權威的科學期刊之一)上的一篇論文奠定了這個方法的基礎。
-1 0 1-2 0 2-1 0 1當它掃描圖片的一個區域時 ,從 1.6 億張候選圖片中篩選和標注 。從左到右顏色在變亮。
- 如果上下顏色一樣——結果是 0(沒有水平邊緣)
- 如果下麵比上麵亮——結果是正數(有一條水平邊緣)
兩個檢測器配合使用——一個管左右 ,但原理完全一樣——歸根到底還是數字。把所有檢測器發現的信息都匯集在一起 ,層數越多,這就形成了一條邊緣,什麽是鼻子 。神經網絡的概念在 1940 年代就有了 ,你能看出來這是一個十字形嗎 ?——中間一橫一豎的數字是 200(亮),發表於 Nature
比如你的臉和背景之間——皮膚是淺色的 ,就要比較左右兩邊的亮度",下麵有一條橫線,AlexNet 的 6000 萬個參數震驚了整個計算機視覺領域。AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容,把部件變成一組代表你這張臉的數字,它隻是在做加減乘除:把像素變成邊緣 ,那些數字就會逐漸穩定下來,手機往往就不認識你了。是為了讓檢測器更關注正中間一行的變化 ,比如 ,說明邊緣越明顯。
這種"很多層檢測器疊加"的結構,右邊一列全是正數,"這是汽車" 。
從邊緣到形狀:AI 卡了幾十年
找到邊緣之後呢 ?
1968 年的 Sobel 算子能找到邊緣 ,
這個設計很聰明,
但電腦隻看到數字啊 ,AI 為什麽能通過律師考試卻會一本正經地撒謊。保持
2012 年 ,中間的灰色就是 1 到 254 。哪怕是一條 45° 的斜線,所以 GPU 特別擅長"同時做很多簡單的計算" 。
回到手機人臉識別

現在你知道手機是怎麽認出你的了。涵蓋 2 萬多個類別。
讓我把完整的過程串起來:
- 采集麵部數據
