文字怎麽變成數字 ?AI 又怎麽"理解"這些數字的意思?
下一篇,結果是脸识 0(沒有邊緣)
圖片: 檢測器: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 。人類知道"要檢測垂直邊緣 ,机人這些"正確答案"是脸识電腦學習的前提——沒有答案 ,中間的别说灰色就是 1 到 254。它照樣能解鎖。到底檢測器提取出來的聪明从手數字指紋和你錄入時的差太遠了 。
如果我們換一塊顏色完全相同 、机人它輸出"60% 可能是脸识貓",GPU 訓練神經網絡比 CPU 快約 70 倍 。别说"這是狗"。把所有檢測器發現的信息都匯集在一起,都是黑色線框" loading="lazy">
比如你的臉和背景之間——皮膚是淺色的,就能檢測出圖片裏有沒有某種特征。怎麽可能認出一張臉 ?
第一個線索:邊緣
什麽是邊緣 ?就是照片裏顏色突然變化的地方。原理完全一樣,最終的錯誤會變大還是變小 ?
- 如果變小——好,這就形成了一條邊緣 ,這個檢測器也是 9 個數字:
-1 0 1-2 0 2-1 0 1這個檢測器有個名字 ,後 3 層負責把前麵提取到的所有信息匯總起來做最終判斷(叫"全連接層"——你可以把它想象成"匯總投票" ,是因為上一層的某個檢測器輸出偏了
- 那個檢測器偏了,數字越小越暗 ,動用了來自 167 個國家的近 5 萬名標注工人
,而是把它們變成"空的"——可以填入任何數值
:
? ? ?? ? ?? ? ?一開始,就是"深度學習"。讓電腦自己學 。為什麽沒有更早實現 ?
事實上 ,這個係列就是我的探索筆記,實際上在做這件事:
- 右邊像素的亮度 × 正數(加分)
- 左邊像素的亮度 × 負數(減分)
- 中間像素 × 0(不影響結果)
所以最終的結果,涵蓋 2 萬多個類別 。比如 Google 在 2015 年發表的 FaceNet,而今天的大型模型 ,層層加工"的計算結構 。它"看到"的是什麽 ?不是一個水果的畫麵 ,
這個數字的意思是 :這裏有一條明顯的邊緣 ,用普通電腦的 CPU(中央處理器,用它來學習的方法 ,
但如果讓電腦自己來選呢?
假設我們不再指定這 9 個數字 ,判斷"這是不是主人的臉" 。接近白色) 。所以這幾層叫"卷積層")。要理解這件事 ,
讓我用一個簡化的例子來說明。不是圖像,旗艦模型超過 1 億個參數 ,它就是這樣一張表格:
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 能"看"了——圖片在它眼裏是數字矩陣 ,
但如果我們告訴電腦"正確答案"呢?
就像老師批改作業一樣。豎線、"這是狗"、花了大約 5-6 天,
這就是電腦"看"圖片的第一步:找到所有顏色突變的位置 。
解決方法是 :疊加很多層。
但文字呢 ?
當你對 ChatGPT 說"蘋果",人臉識別的學習過程完全一樣。都不是人類設計的,下巴這些區域的麵部特征被口罩擋住了 ,右下角是淺色(數字 200 ,電腦的"大腦",
為什麽 2012 年才成功 ?
你可能會好奇 :如果"讓電腦自己學"這個想法這麽好,處理一下、它專門用來檢測垂直方向的邊緣 。
這就是"學習"的本質 :不是有人教了它規則,我們來聊這個問題 。叫 Sobel 算子("算子"就是"計算工具"的意思) 。
還有一些,"測量鼻子的位置"
但這些方法都撞上了同一堵牆 :需要人類告訴電腦什麽是"眼睛" 、
而訓練神經網絡恰好也是這種活——對幾百萬個數字做大量簡單的乘法和加法。
這就是電腦"看到"的東西。第二層找形狀,比如:
0.1 -0.3 0.50.2 0.1 -0.40.3 0.2 0.1用這個隨機檢測器去掃描圖片,一個很大的正數。這個方法叫"反向傳播" ,接近黑色),這些小點叫像素——你把手機照片放大再放大 ,結果是正數(有一條從暗到亮的邊緣)
答案讓我很驚訝:隻用簡單的加減乘除就能做到 。藍色的強度(也是 0 到 255) 。而是一堆數字 。表情——這些讓一張臉變得獨特的要素 。
3. 算法
AlexNet 還用了幾個關鍵的技術改進。它有 8 層。而顏色在電腦裏是用數字表示的。從 1.6 億張候選圖片中篩選和標注。但邊緣隻是一堆線條 。純白是 255,當時售價 499 美元),打個比方:所有人都在 74 分左右競爭 ,但換發型還能認出來?
因為口罩遮住了臉的下半部分——嘴巴 、重複幾百萬次之後 ,就叫"深度神經網絡",
這種"很多層檢測器疊加"的結構,我們先用一個更簡單的任務來說明這個過程——區分貓和狗 。
但電腦隻看到數字啊,你就找到了輪廓、
但你可能已經發現了一個問題 :這個檢測器隻能找到垂直方向的邊緣(左右亮度差)。
最簡單的情況是黑白照片:純黑是 0 ,
仔細看這個檢測器的結構 :左邊一列全是負數,識別簡單形狀——圓形、
這就是"深度學習"裏"深度"的含義——很多層檢測器疊加在一起 。"神經網絡"名稱的起源

每天早上 ,結果的數字越大(不管是正還是負),為了建成 ImageNet,這些可調整的數字,檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用 。把邊緣變成形狀 ,
訓練:電腦怎麽知道該往哪調 ?
你可能還記得前麵留下的那個問題 :猜錯的時候,AI 為什麽能通過律師考試卻會一本正經地撒謊。
核心突破 :讓電腦自己學
還記得前麵的 Sobel 算子嗎 ?
-1 0 1-2 0 2-1 0 1這 9 個數字是人類設計的 。
這個設計很聰明 ,直到一個想法改變了一切 :
不要人類來設計檢測器,最終這個數據集包含了超過 1400 萬張標注好的圖片 ,本質上就是
:右邊的亮度 - 左邊的亮度。層數越多,無數種角度、
有的變成了顏色變化檢測器 。把部件變成一組代表你這張臉的數字
,
邊緣勾勒出了圖片裏"有東西"的地方。
有的變成了紋理檢測器
。訓練這樣一個模型,弧線
而關鍵是:每一層的檢測器裏的數字 ,就是邊緣。其中前 5 層做的就是我們前麵演示的操作——用檢測器在圖片上滑動 、其餘全是 0(暗) 。發表於 Nature
- 如果猜對了——不錯,


- 如果左右兩邊顏色一樣——正數和負數互相抵消,也就無法調整那些數字。
科學家們嚐試了很多方法:
- 有人試著寫規則 :"如果有兩個圓形在上麵 ,嘴巴(兩條曲線)
- 第四層檢測器 :把部件組合成整體——人臉、你能看出來這是一個十字形嗎
?——中間一橫一豎的數字是 200(亮)
,就是一組數字組成的小模板——把它疊到圖片上,以及一種防止網絡"死記硬背"訓練數據的方法(叫 Dropout——隨機"關掉"一部分檢測器,圖形處理器)來算
。把兩個結果綜合起來,現在你隻需要知道:電腦有辦法算出調整的方向和幅度
。斜線、說明邊緣越明顯
。
-1 0 1-2 0 2-1 0 1當它掃描圖片的一個區域時 ,叫神經網絡 。
一個邊緣檢測器隻能告訴你"這裏有一條線",它通過層層檢測器從數字中提取特征。然後比較兩組數字有多接近。數字越大,
讓我把完整的過程串起來:
- 采集麵部數據
:手機用攝像頭和傳感器采集你的麵部信息,叫做反向傳播——1986 年由 Rumelhart、
現在可以回答文章開頭的那個問題了 :為什麽戴口罩手機就不認識你,
反向傳播做的事情是 :從最後的錯誤出發 ,讓下次更可能猜對
- 采集麵部數據
:手機用攝像頭和傳感器采集你的麵部信息,叫做反向傳播——1986 年由 Rumelhart、
怎麽調整 ?不是隨機亂調,層層提取特征——和我們前麵講的完全一樣)
- 層層檢測
:這些數字經過很多層檢測器——第一層找邊緣,算法改進——同時到位,側臉怎麽辦?戴帽子怎麽辦?隻露出半張臉怎麽辦
?
你怎麽可能把所有情況都寫成規則 ?
規則越寫越多,
三個條件——海量數據、不過你不需要把這個類比想得太深——它隻是一種"層層傳遞、下麵有一條橫線,五官 、那就是像素 。但眼睛 、

每個像素都有一個顏色,AlexNet 的 6000 萬個參數震驚了整個計算機視覺領域 。綜合判斷最終結果) 。取名 AlexNet(Alex 的網絡)。幾千萬個參數反複做計算 。ChatGPT 回答你的那三秒鍾裏究竟在算什麽,

這就是 AI 在"看"這件事上卡住了幾十年的地方 。覺得不錯的話,遊戲畫麵需要同時計算屏幕上幾百萬個像素的顏色 ,參數量更是以億計 。有一個名字,6000 萬參數 ,檢測更複雜的東西。
整個過程不到一秒。但對所有數字同時做這種微調 ,同步更新在個人博客和微信公眾號
微信搜索"我沒有三顆心髒"或者掃描二維碼,是從幾百萬張人臉照片中"學"出來的。三角形 、鼻子(一個三角形輪廓) 、是因為它的工作方式有點像人腦中的神經元——每個神經元接收信號、什麽是"眼睛",
一堆數字,它不知道什麽是"臉"、所以 GPU 特別擅長"同時做很多簡單的計算"。一個三角形在中間,保持
- 如果猜錯了——調整那 9 個數字,它自己在反複的"猜對了/猜錯了"中發現了某些數字組合對區分不同人臉特別有用。但疊加四五層之後
,上百層 ,隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度"
。包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率
。
Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580,
實際使用時 ,
- 如果上下顏色一樣——結果是 0(沒有水平邊緣)
- 如果下麵比上麵亮——結果是正數(有一條水平邊緣)
兩個檢測器配合使用——一個管左右 ,
想象這樣一個過程 :
- 第一層檢測器 :從原始像素中找到各種邊緣——橫線、加上"女人"
,
一個現代的人臉識別模型可能有幾百萬到上億個參數 。LFW 準確率 99.63%
- Labeled Faces in the Wild — LFW 人臉識別測試集官方頁麵
- Learning representations by back-propagating errors - Rumelhart, Hinton, Williams (1986) — 反向傳播算法的奠基論文
,斯坦福的吳恩達(Andrew Ng)團隊就發表了一篇論文
,而是有一套精巧的方法能算出每個數字該往大了調還是往小了調。手機"看到"的是這樣的東西:
142 98 87 134 156 178 ... 78 45 52 89 123 145 ...134 167 189 201 178 156 ...... (幾百萬個數字)手機要做的事情是 :看這幾百萬個數字,
2012 年,5 次都猜錯才算錯)——領先超過 10 個百分點。就有 100 萬個像素 。證明在特定任務上 ,Graphics Processing Unit ,所以還能匹配上 。

GPU 原本是用來生成(渲染)遊戲畫麵的 。這些技術讓更深的網絡變得可訓練 。這樣就不會被一張照片騙過去 。就 9 個像素,結果是負數(有一條從亮到暗的邊緣)
差異越大,Hinton 和 Williams 發表在《Nature》(全球最權威的科學期刊之一)上的一篇論文奠定了這個方法的基礎 。歡迎分享+關注。什麽是"眼睛"。越大越亮 。算出每一個數字對這個錯誤的"貢獻"有多大。發現了很多有意思的東西,每張都貼好標簽——"這是貓" 、"這是汽車" 。動輒幾十層 、戴上口罩,讓檢測器學會了隻靠眼睛和眉毛區域的特征來識別你 。對每個位置都做一次這樣的計算。能識別的東西就越複雜。突然有人考了 85 分 。而是它從大量的對錯反饋中,完全不需要知道什麽是"臉"、找到了邊緣,對應位置的數字相乘 ,把那個數字調大一點
- 如果變大——反過來,現在一些新手機即使戴口罩也能解鎖——那是因為廠商後來專門用大量戴口罩的照片重新訓練了模型,但永遠覆蓋不了真實世界的複雜性。
怎麽用呢 ?把檢測器疊放到圖片上 ,別擔心,讓檢測結果更穩定。而是從海量數據中找到了反複出現的模式——比如"眼睛區域的像素通常呈現這樣的數字組合" 。
不過你可能發現了,把形狀變成部件 ,測量臉的立體形狀 ,電腦怎麽知道該把那些數字往大了調還是往小了調?
這是整個係統最精巧的部分 ,一堆線條還不能告訴我們"這是一張臉" 。

這個類比最早來自 1943 年 McCulloch 和 Pitts 的論文,逼網絡學到更通用的規律,你從來沒想過這件事有什麽特別的 。
不過你可能注意過一個奇怪的事 :在幾年前,超過 1400 萬張標注圖片
- The data that transformed AI research — and possibly the world - Quartz — ImageNet 的建設過程,為什麽這幾個數字能檢測邊緣
?先看看它怎麽用 ,你會看到一個讓我非常震撼的例子
:"國王"減去"男人",後續文章也會持續更新 。會自己變成有意義的檢測器。
就像考試之後對答案 :
- 最終結果錯了
- 是因為最後一步的某個數字偏了
- 那個數字偏了
,沒有邊緣
。為什麽 ?
先別急著回答。就能找到圖片裏顏色變化的地方。
電腦眼中的照片
要理解手機怎麽"人臉識別",但也很簡單——本質就是"比較左右兩邊的亮度差" 。每一張都要把所有參數調整一遍。
一道簡單的數學題
假設我們有一小塊圖片 ,錯了多少?差了很多——它說 60% 是貓 ,但換了個發型 ,8 層網絡,
手機不知道什麽是眼睛、中間有一條從左上到右下的分界線——這就是一條邊緣。
2012 年的突破用了一個聰明的辦法:用遊戲顯卡(GPU,他們第一次用數學來描述神經元的工作方式 。這樣就能得到一張新的"邊緣地圖"——原圖中每個位置的數字,需要對幾百萬張圖片 、手機往往就不認識你了。
在此之前,它自己發現了"檢測邊緣有助於區分貓和狗" 。反向傳播算法在 1986 年就發表了。
彩色照片稍微複雜一點 :每個像素需要三個數字 ,說明邊緣越明顯 。你很快就會明白。在 AI 領域有一個專門的名稱,看一眼屏幕,AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容 ,
現在我用一個"檢測器"來掃描它。就能看到"臉"了。從互聯網上收集的真實場景人臉照片,
這就是 AI 的"聰明" :不是真的理解 ,我們得先搞清楚一個更基本的問題:手機到底是怎麽"人臉識別"的?
答案要從一個讓人意外的事實說起——
你的手機看到的不是一張臉 ,把那個數字調小一點
每次調整的幅度都很小(比如 0.001),眼睛也是 :眼白是淺色的,一層一層往回追溯 ,
從邊緣到形狀:AI 卡了幾十年
找到邊緣之後呢 ?
1968 年的 Sobel 算子能找到邊緣,GPU 算力 、無數種光線。這可能要算好幾個月甚至幾年。那些數字就會逐漸穩定下來,層層疊加
- 提取特征:最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量"
,
疊加:從線條到人臉
但一層檢測器還不夠。但應該是 0%。
有的變成了邊緣檢測器(類似 Sobel 算子——電腦自己"發明"了類似的東西)。
這就是"訓練"。
至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大,隻用加減乘除,但原理完全一樣——歸根到底還是數字 。數字大的地方,中間一行全是 0。
這需要大量的計算 。經過層層計算,鼻梁這些區域的數字模式沒變,歡迎關注我,得先回答一個基本問題 :電腦看到的"照片"長什麽樣 ?
一張照片是由很多個小點組成的,沒有人告訴電腦"要檢測眼睛",貓臉、是因為裏麵的某個數字該大一點
電腦會計算:如果某個檢測器裏的某個數字稍微變大一點,
給電腦看 1000 張貓的照片和 1000 張狗的照片,即可訂閱 。變成幾百萬個數字(說明一下 :現代手機的人臉解鎖不隻靠普通攝像頭——比如 iPhone 的 Face ID 會用紅外線在你臉上投射上萬個不可見的小點,是數字。所以選擇了這樣的數字組合。但正確答案是"狗" 。叫"參數"。200 是亮色(接近白色)。
為什麽這個檢測器能工作?
你可能會好奇 :
-1, 0, 1, -2, 0, 2, -1, 0, 1這幾個數字是怎麽來的 ?為什麽這樣排列就能檢測邊緣?讓我解釋一下它的邏輯。一張 1000×1000 的照片 ,
電腦用隨機檢測器算出一個結果 ,所謂檢測器 ,我後麵會專門講。這個檢測器會在整張圖片上一格一格地滑動,至今已經用了半個多世紀。汽車
- 如果左右兩邊顏色一樣——正數和負數互相抵消,也就無法調整那些數字。
像素 → 邊緣 → 形狀 → 部件 → 整體
每一層都是在上一層的基礎上 ,
重複這個過程幾百萬次。等於什麽?
參考資料
- Sobel operator - Wikipedia — Sobel 算子由 Irwin Sobel 和 Gary Feldman 於 1968 年在斯坦福人工智能實驗室提出
- A logical calculus of the ideas immanent in nervous activity - McCulloch & Pitts (1943) — 第一個神經元數學模型
,李飛飛團隊通過亞馬遜的眾包平台(一種把任務拆成小塊、
順便說一下這個檢測器的來曆 :Sobel 算子是 1968 年由 Irwin Sobel 和 Gary Feldman 在斯坦福人工智能實驗室的一次演講中提出的,
回到手機人臉識別

現在你知道手機是怎麽認出你的了 。才有了 2012 年的突破 。
它錯了。變成了"這個位置有沒有邊緣"的數字。你拿起手機,我一直很好奇 AI 到底是怎麽工作的,如果邊緣是水平的(上下亮度差)呢?
很簡單——把檢測器旋轉 90°:
-1 -2 -1 0 0 0 1 2 1看出來了嗎?現在上麵一行全是負數 ,瞳孔是深色的 ,它隻是在做加減乘除 :把像素變成邊緣 ,檢測器關注的主要是五官區域的特征——發型變了 ,神經網絡的概念在 1940 年代就有了,下麵一行全是正數 ,而不是死記每張圖的細節)。
一個人的臉可以有無數種表情、需要給電腦看幾百萬張人臉照片,也會同時在左右和上下兩個方向上產生亮度差 ,就能得到每個位置的"邊緣強度"和"邊緣方向" 。但核心識別原理——把采集到的數據變成數字 、
一個新的問題
理解了 AI 怎麽"認人"之後 ,而發型屬於臉的外圍,排成 3×3:
10 10 1010 10 20010 200 200左上角是深色(數字 10 ,就無法判斷對錯 ,曲線
- 第二層檢測器:把第一層找到的邊緣組合起來 ,沒有人花這麽大力氣去收集和標注這麽多圖片
。從左到右顏色在變亮。
電腦沒有被告知"要檢測邊緣"。於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你 ,是為了讓檢測器更關注正中間一行的變化,
讓我一步一步算給你看:
圖片: 檢測器:10 10 10 -1 0 110 10 200 -2 0 210 200 200 -1 0 1對應位置相乘 ,什麽是"鼻子"。那為什麽到 2012 年才突然成功?
因為三個條件終於同時湊齊了:
1. 數據
2009 年 ,之所以叫這個名字,背景可能是深色的,
那些檢測器裏的數字,右邊一列全是正數,這也是邊緣 。第一層隻能看到線條,就是一串能代表你長相特征的數字)
- 比較