從邊緣到形狀 :AI 卡了幾十年
找到邊緣之後呢?到底
1968 年的 Sobel 算子能找到邊緣 ,
手機不知道什麽是聪明从手眼睛、它通過層層檢測器從數字中提取特征。机人
電腦用隨機檢測器算出一個結果 ,脸识檢測的别说東西連人類都說不清楚——但它們確實對區分貓和狗有用 。最終這個數據集包含了超過 1400 萬張標注好的到底圖片,層層提取特征——和我們前麵講的聪明从手完全一樣)
這就是机人電腦"看"圖片的第一步:找到所有顏色突變的位置 。
它錯了。脸识會自己變成有意義的别说檢測器 。人類知道"要檢測垂直邊緣,到底綜合判斷最終結果)。聪明从手

這個類比最早來自 1943 年 McCulloch 和 Pitts 的机人論文 ,分別表示紅色 、脸识右下角是别说淺色(數字 200 ,為了建成 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 是黑色 ,但原理完全一樣——歸根到底還是數字。那可能是一張臉"
這是整個係統最精巧的部分,
為什麽 2012 年才成功 ?
你可能會好奇:如果"讓電腦自己學"這個想法這麽好 ,

每天早上,右邊一列全是正數,是電腦自己從數據裏學出來的。汽車
像素 → 邊緣 → 形狀 → 部件 → 整體
每一層都是在上一層的基礎上 ,
你看,結果是 0(沒有邊緣)
- 右邊像素的亮度 × 正數(加分)
- 左邊像素的亮度 × 負數(減分)
- 中間像素 × 0(不影響結果)
所以最終的結果 ,弧線
電腦會計算:如果某個檢測器裏的某個數字稍微變大一點 ,中間一列全是 0 。
想象這樣一個過程:
- 第一層檢測器 :從原始像素中找到各種邊緣——橫線、然後全部加起來 。什麽是鼻子。看一眼屏幕
,眼睛也是
:眼白是淺色的,你能看出來這是一個十字形嗎?——中間一橫一豎的數字是 200(亮),不能告訴你"這是一隻眼睛"
。
為什麽這個檢測器能工作 ?
你可能會好奇 :
-1, 0, 1, -2, 0, 2, -1, 0, 1這幾個數字是怎麽來的?為什麽這樣排列就能檢測邊緣?讓我解釋一下它的邏輯。
解決方法是 :疊加很多層 。而是有一套精巧的方法能算出每個數字該往大了調還是往小了調 。中間一行全是 0 。至今已經用了半個多世紀 。手機"看到"的是這樣的東西:
142 98 87 134 156 178 ... 78 45 52 89 123 145 ...134 167 189 201 178 156 ...... (幾百萬個數字)手機要做的事情是 :看這幾百萬個數字 ,"神經網絡"名稱的起源
- ImageNet Classification with Deep Convolutional Neural Networks - Krizhevsky, Sutskever, Hinton (2012) — AlexNet 論文,每一張都要把所有參數調整一遍。這些可調整的數字 ,說明邊緣越明顯。其餘全是 0(暗)
。原理完全一樣,經過層層計算,藍色的強度(也是 0 到 255)。就有 100 萬個像素。
有的變成了紋理檢測器。-1 0 1-2 0 2-1 0 1當它掃描圖片的一個區域時,
有的變成了顏色變化檢測器 。用普通電腦的 CPU(中央處理器 ,讓下次更可能猜對
怎麽調整 ?不是隨機亂調,旗艦模型超過 1 億個參數,說明邊緣越明顯。人臉識別的學習過程完全一樣。然後比較兩組數字有多接近。瞳孔是深色的 ,本質上就是 :右邊的亮度 - 左邊的亮度。
這種"很多層檢測器疊加"的結構,嘴巴(兩條曲線)
這就是"深度學習"裏"深度"的含義——很多層檢測器疊加在一起 。手機往往就不認識你了 。層數越多,無數種光線。它隻是在做加減乘除:把像素變成邊緣 ,但換發型還能認出來?
因為口罩遮住了臉的下半部分——嘴巴 、三角形 、也會同時在左右和上下兩個方向上產生亮度差,都是黑色線框" loading="lazy">
比如你的臉和背景之間——皮膚是淺色的 ,
那為什麽到 2012 年才突然成功 ?
因為三個條件終於同時湊齊了 :
1. 數據
2009 年,
2009 年,

事實上,
而關鍵是 :每一層的檢測器裏的數字,但疊加四五層之後 ,幾千萬個參數反複做計算。

每個像素都有一個顏色 ,就是邊緣 。GPU 訓練神經網絡比 CPU 快約 70 倍。證明在特定任務上,一堆線條還不能告訴我們"這是一張臉" 。在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild ,純白是 255 ,把形狀變成部件,就是一組數字組成的小模板——把它疊到圖片上 ,
Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580,
但文字呢?
當你對 ChatGPT 說"蘋果" ,參數量更是以億計 。對應位置相乘再相加(這個操作的專業名稱叫"卷積" ,什麽是"鼻子"。建議零售價 $499
訂閱
如果覺得有意思 ,背景可能是深色的 ,"測量鼻子的位置"
但這些方法都撞上了同一堵牆 :需要人類告訴電腦什麽是"眼睛" 、自己找到了有用的規律。是從幾百萬張人臉照片中"學"出來的 。表情——這些讓一張臉變得獨特的要素。下巴這些區域的麵部特征被口罩擋住了,
但如果我們告訴電腦"正確答案"呢?
就像老師批改作業一樣 。後 3 層負責把前麵提取到的所有信息匯總起來做最終判斷(叫"全連接層"——你可以把它想象成"匯總投票" ,比如 :
0.1 -0.3 0.50.2 0.1 -0.40.3 0.2 0.1用這個隨機檢測器去掃描圖片 ,把所有檢測器發現的信息都匯集在一起 ,它專門用來檢測垂直方向的邊緣 。
一個新的問題
理解了 AI 怎麽"認人"之後 ,電腦的"大腦",到達一個"很少出錯"的狀態 。
還有一些
,
一堆數字 ,五官、
這就是"學習"的本質 :不是有人教了它規則 ,分給大量網上工人完成的平台) ,
怎麽用呢?把檢測器疊放到圖片上
,檢測更複雜的東西。測量臉的立體形狀,GPU 算力
、49000 名標注工人來自 167 個國家
AI 能"看"了——圖片在它眼裏是數字矩陣,它有 8 層。讓電腦自己學 。而發型屬於臉的外圍,就叫"深度神經網絡",綠色 、第二層找形狀 ,這個檢測器也是 9 個數字:
-1 0 1-2 0 2-1 0 1這個檢測器有個名字,那就是像素。貓臉、但正確答案是"狗"。
不過你可能注意過一個奇怪的事:在幾年前 ,排成 3×3 :
10 10 1010 10 20010 200 200左上角是深色(數字 10 ,重複幾百萬次之後 ,即可訂閱。
仔細看這個檢測器的結構 :左邊一列全是負數,直到一個想法改變了一切:
不要人類來設計檢測器 ,第一層隻能看到線條,
- 如果上下顏色一樣——結果是 0(沒有水平邊緣)
- 如果下麵比上麵亮——結果是正數(有一條水平邊緣)
兩個檢測器配合使用——一個管左右,
2012 年 ,打個比方 :所有人都在 74 分左右競爭,對每個位置都做一次這樣的計算 。逼網絡學到更通用的規律,
讓我用一個具體例子來演示。"這是汽車" 。就能得到每個位置的"邊緣強度"和"邊緣方向"。什麽是"眼睛"。
讓我用一個簡化的例子來說明 。
這個數字的意思是:這裏有一條明顯的邊緣,這些"正確答案"是電腦學習的前提——沒有答案,讓檢測器學會了隻靠眼睛和眉毛區域的特征來識別你。隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度"。"這是狗" 。不是咬一口的味道——那它"看到"的是什麽?
文字怎麽變成數字 ?AI 又怎麽"理解"這些數字的意思?
下一篇,
但你可能已經發現了一個問題 :這個檢測器隻能找到垂直方向的邊緣(左右亮度差)。需要給電腦看幾百萬張人臉照片,這樣就不會被一張照片騙過去。把邊緣變成形狀 ,而是從海量數據中找到了反複出現的模式——比如"眼睛區域的像素通常呈現這樣的數字組合" 。
那些檢測器裏的數字,發表於 Nature
那次突破有多震撼?在 ImageNet 圖像識別比賽中,
現在我用一個"檢測器"來掃描它 。叫做反向傳播——1986 年由 Rumelhart 、能識別的東西就越複雜。於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你 ,完全不需要知道什麽是"臉" 、

"標注好"的意思是:每張圖片都有人告訴你"這是貓" 、識別簡單形狀——圓形、
邊緣勾勒出了圖片裏"有東西"的地方 。你拿起手機 ,越大越亮 。一個三角形在中間,
2012 年的突破用了一個聰明的辦法 :用遊戲顯卡(GPU ,叫"參數"。加上"女人",
給電腦看 1000 張貓的照片和 1000 張狗的照片 ,一張 1000×1000 的照片 ,

- 如果左右兩邊顏色一樣——正數和負數互相抵消,但對所有數字同時做這種微調,中間的灰色就是 1 到 254
。當時售價 499 美元),所以這幾層叫"卷積層")。遊戲畫麵需要同時計算屏幕上幾百萬個像素的顏色
,5 次都猜錯才算錯)——領先超過 10 個百分點
。層層加工"的計算結構。歡迎分享+關注 。它不知道什麽是"臉"、它照樣能解鎖。斜線、沒有人告訴電腦"要檢測眼睛"
,神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序 ,
這就是電腦"看到"的東西 。叫 Sobel 算子("算子"就是"計算工具"的意思) 。圖形處理器)來算。比如 Google 在 2015 年發表的 FaceNet ,8 層網絡 ,動用了來自 167 個國家的近 5 萬名標注工人,
實際使用時,用它來學習的方法,你很快就會明白。你會看到一個讓我非常震撼的例子 :"國王"減去"男人",而是把它們變成"空的"——可以填入任何數值 :
? ? ?? ? ?? ? ?一開始,一種讓深層網絡更容易訓練的數學技巧(叫 ReLU) ,
而訓練神經網絡恰好也是這種活——對幾百萬個數字做大量簡單的乘法和加法。神經網絡的概念在 1940 年代就有了,top-5 錯誤率 15.3%
- AlexNet - Wikipedia — AlexNet 架構細節與參數量
- FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型
,結果肯定是亂七八糟的。斯坦福大學的李飛飛教授團隊發布了 ImageNet 數據集 。側臉怎麽辦?戴帽子怎麽辦?隻露出半張臉怎麽辦?
你怎麽可能把所有情況都寫成規則?
規則越寫越多 ,
整個網絡包含 6000 萬個可調整的數字。
科學家們嚐試了很多方法 :
- 有人試著寫規則:"如果有兩個圓形在上麵 ,這個檢測器會在整張圖片上一格一格地滑動,在 AI 領域有一個專門的名稱,200 是亮色(接近白色)。這些技術讓更深的網絡變得可訓練。LFW 準確率 99.63%
- Labeled Faces in the Wild — LFW 人臉識別測試集官方頁麵
- Learning representations by back-propagating errors - Rumelhart, Hinton, Williams (1986) — 反向傳播算法的奠基論文,這也是邊緣 。層層疊加
- 提取特征
:最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量"
,一個管上下——就能找到圖片中任意方向的邊緣。
一個邊緣檢測器隻能告訴你"這裏有一條線",其中前 5 層做的就是我們前麵演示的操作——用檢測器在圖片上滑動 、而不是死記每張圖的細節)。鼻子(一個三角形輪廓) 、訓練這樣一個模型 ,就是一串能代表你長相特征的數字)
- 比較:把這個數字指紋和你第一次錄入時存下的數字指紋做比較
- 判斷
