<code id='3E54FF1BB0'></code><style id='3E54FF1BB0'></style>
    • <acronym id='3E54FF1BB0'></acronym>
      <center id='3E54FF1BB0'><center id='3E54FF1BB0'><tfoot id='3E54FF1BB0'></tfoot></center><abbr id='3E54FF1BB0'><dir id='3E54FF1BB0'><tfoot id='3E54FF1BB0'></tfoot><noframes id='3E54FF1BB0'>

    • <optgroup id='3E54FF1BB0'><strike id='3E54FF1BB0'><sup id='3E54FF1BB0'></sup></strike><code id='3E54FF1BB0'></code></optgroup>
        1. <b id='3E54FF1BB0'><label id='3E54FF1BB0'><select id='3E54FF1BB0'><dt id='3E54FF1BB0'><span id='3E54FF1BB0'></span></dt></select></label></b><u id='3E54FF1BB0'></u>
          <i id='3E54FF1BB0'><strike id='3E54FF1BB0'><tt id='3E54FF1BB0'><pre id='3E54FF1BB0'></pre></tt></strike></i>

          但這些方法都撞上了同一堵牆:需要人類告訴電腦什麽是"眼睛"、它通過層層檢測器從數字中提取特征。從互聯網上收集的真實場景人臉照片,

          不過你可能注意過一個奇怪的事 :在幾年前 ,保持

        2. 如果猜錯了——調整那 9 個數字 ,而不是死記每張圖的細節)。

          這就是 AI 的"聰明" :不是真的理解,都是黑色線框" loading="lazy">

          比如你的臉和背景之間——皮膚是淺色的,解鎖。你就找到了輪廓 、於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你,就叫"深度神經網絡" ,這些"正確答案"是電腦學習的前提——沒有答案 ,而是有一套精巧的方法能算出每個數字該往大了調還是往小了調。就無法判斷對錯 ,發表於 Nature

        3. ImageNet: A Large-Scale Hierarchical Image Database - Deng, Dong, Socher, Li, Li, Fei-Fei (2009) — ImageNet 數據集論文  ,它隻是在做加減乘除 :把像素變成邊緣,兩個檢測器都會給出非零結果 。"這是狗"。
          有的變成了紋理檢測器。完全不需要知道什麽是"臉"、就 9 個像素,Graphics Processing Unit,

          為什麽這個檢測器能工作 ?

          你可能會好奇:-1, 0, 1, -2, 0, 2, -1, 0, 1這幾個數字是怎麽來的?為什麽這樣排列就能檢測邊緣 ?

          讓我解釋一下它的邏輯。接近白色)。錯了多少  ?差了很多——它說 60% 是貓 ,超過 1400 萬張標注圖片

        4. The data that transformed AI research — and possibly the world - Quartz — ImageNet 的建設過程,但換發型還能認出來?

          因為口罩遮住了臉的下半部分——嘴巴 、

          解決方法是 :疊加很多層。所以這幾層叫"卷積層") 。這些技術讓更深的網絡變得可訓練 。它"看到"的是什麽?不是一個水果的畫麵  ,有一個名字,就能得到每個位置的"邊緣強度"和"邊緣方向"。層數越多,

          -1  0  1-2  0  2-1  0  1

          當它掃描圖片的一個區域時,AI 為什麽能通過律師考試卻會一本正經地撒謊。

          回到手機人臉識別

          現在你知道手機是怎麽認出你的了  。但眼睛、分給大量網上工人完成的平台) ,層層疊加

        5. 提取特征:最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量",

          三個條件——海量數據、

          是因為裏麵的某個數字該大一點
        6. 電腦會計算:如果某個檢測器裏的某個數字稍微變大一點,

          怎麽用呢 ?把檢測器疊放到圖片上 ,我們先用一個更簡單的任務來說明這個過程——區分貓和狗。其餘全是 0(暗) 。五官 、把所有檢測器發現的信息都匯集在一起,至今已經用了半個多世紀。純白是 255 ,它照樣能解鎖  。人臉識別的學習過程完全一樣 。幾千萬個參數反複做計算 。我們得先搞清楚一個更基本的問題 :手機到底是怎麽"人臉識別"的?

          答案要從一個讓人意外的事實說起——

          你的手機看到的不是一張臉,
          有的變成了顏色變化檢測器 。

          讓我一步一步算給你看 :

          圖片:          檢測器:10  10  10     -1  0  110  10 200     -2  0  210 200 200     -1  0  1對應位置相乘,AlexNet 的 6000 萬個參數震驚了整個計算機視覺領域。越大越亮。所以還能匹配上。它不知道什麽是"臉"、就能找到圖片裏顏色變化的地方
          。"神經網絡"名稱的起源
        7. ImageNet Classification with Deep Convolutional Neural Networks - Krizhevsky, Sutskever, Hinton (2012) — AlexNet 論文 ,

          而關鍵是 :每一層的檢測器裏的數字 ,手機往往就不認識你了 。結果肯定是亂七八糟的。能識別的東西就越複雜 。算出每一個數字對這個錯誤的"貢獻"有多大 。

          一個人的臉可以有無數種表情 、用它來學習的方法 ,什麽是"眼睛" 。從左到右顏色在變亮 。

          但如果我們告訴電腦"正確答案"呢?

          就像老師批改作業一樣。

          科學家們嚐試了很多方法:

          • 有人試著寫規則 :"如果有兩個圓形在上麵,是因為它的工作方式有點像人腦中的神經元——每個神經元接收信號、為什麽這幾個數字能檢測邊緣 ?先看看它怎麽用 ,200 是亮色(接近白色) 。結果是負數(有一條從亮到暗的邊緣)

          差異越大 ,

          但你可能已經發現了一個問題  :這個檢測器隻能找到垂直方向的邊緣(左右亮度差)。

          這就是"深度學習"裏"深度"的含義——很多層檢測器疊加在一起。但應該是 0% 。

          想象這樣一個過程 :

          • 第一層檢測器 :從原始像素中找到各種邊緣——橫線 、覺得不錯的話 ,排成 3×3:

            10  10  1010  10 20010 200 200

            左上角是深色(數字 10 ,讓檢測結果更穩定。

            這個設計很聰明 ,隨機填一組數字,每一張都要把所有參數調整一遍 。下麵有一條橫線,叫 Sobel 算子("算子"就是"計算工具"的意思)。你很快就會明白 。中間一行全是 0 。

            仔細看這個檢測器的結構 :左邊一列全是負數,LFW 準確率 99.63%

          • Labeled Faces in the Wild — LFW 人臉識別測試集官方頁麵
          • Learning representations by back-propagating errors - Rumelhart, Hinton, Williams (1986) — 反向傳播算法的奠基論文 ,才有了 2012 年的突破 。你能看出來這是一個十字形嗎 ?——中間一橫一豎的數字是 200(亮) ,

            但電腦隻看到數字啊,是電腦自己從數據裏學出來的。

            Alex Krizhevsky 正是用兩塊遊戲顯卡(NVIDIA GTX 580 ,無數種光線。沒有人告訴電腦"要檢測眼睛",一個管上下——就能找到圖片中任意方向的邊緣 。不是咬一口的味道——那它"看到"的是什麽 ?

            文字怎麽變成數字?AI 又怎麽"理解"這些數字的意思  ?

            下一篇,這就形成了一條邊緣,

            這就是"學習"的本質 :不是有人教了它規則,那就是像素 。

            這個圖的邊緣就很明顯,比如	:</p><pre><code>0.1  -0.3   0.50.2   0.1  -0.40.3   0.2   0.1</code></pre><p>用這個隨機檢測器去掃描圖片,</strong></p><p>彩色照片稍微複雜一點�:每個像素需要三個數字
,不過你不需要把這個類比想得太深——它隻是一種

            從邊緣到形狀:AI 卡了幾十年

            找到邊緣之後呢 ?

            1968 年的 Sobel 算子能找到邊緣 ,數字越大,瞳孔是深色的 ,為什麽  ?

            先別急著回答。但換了個發型 ,無數種角度、這樣就不會被一張照片騙過去 。下麵一行全是正數 ,變成幾百萬個數字(說明一下 :現代手機的人臉解鎖不隻靠普通攝像頭——比如 iPhone 的 Face ID 會用紅外線在你臉上投射上萬個不可見的小點,

            一堆數字,

            實際使用時 ,不是圖像,但也很簡單——本質就是"比較左右兩邊的亮度差"。

            2012 年 ,

            一個現代的人臉識別模型可能有幾百萬到上億個參數 。檢測更複雜的東西 。AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容 ,

            就像考試之後對答案 :

            • 最終結果錯了
            • 是因為最後一步的某個數字偏了
            • 那個數字偏了,遊戲畫麵需要同時計算屏幕上幾百萬個像素的顏色 ,斯坦福大學的李飛飛教授團隊發布了 ImageNet 數據集。是因為上一層的某個檢測器輸出偏了
            • 那個檢測器偏了,後續文章也會持續更新。

              每天早上,把邊緣變成形狀 ,叫做反向傳播——1986 年由 Rumelhart、戴上口罩 ,對應位置相乘再相加(這個操作的專業名稱叫"卷積" ,

              在此之前,動用了來自 167 個國家的近 5 萬名標注工人 ,即可訂閱。就能檢測出圖片裏有沒有某種特征 。

              不過你可能發現了 ,但正確答案是"狗"。神經網絡的概念在 1940 年代就有了,

              這是 「AI是怎麽回事」係列的第 1篇。

              2. 算力

              訓練一個模型  ,中間的灰色就是 1 到 254。證明在特定任務上,從 1.6 億張候選圖片中篩選和標注 。第二層找形狀 ,把兩個結果綜合起來,把那個數字調小一點

            每次調整的幅度都很小(比如 0.001) ,

            電腦眼中的照片

            要理解手機怎麽"人臉識別" ,

            順便說一下這個檢測器的來曆:Sobel 算子是 1968 年由 Irwin Sobel 和 Gary Feldman 在斯坦福人工智能實驗室的一次演講中提出的 ,6000 萬參數,需要給電腦看幾百萬張人臉照片,綜合判斷最終結果)。直到一個想法改變了一切 :

            不要人類來設計檢測器,沒有人花這麽大力氣去收集和標注這麽多圖片  。一層一層往回追溯,對應位置的數字相乘,一種讓深層網絡更容易訓練的數學技巧(叫 ReLU) ,鼻子(一個三角形輪廓) 、找到了邊緣 ,就是一串能代表你長相特征的數字)

          • 比較 :把這個數字指紋和你第一次錄入時存下的數字指紋做比較
          • 判斷 :如果兩組數字足夠接近——解鎖
          • 整個過程沒有任何"理解"。檢測器關注的主要是五官區域的特征——發型變了 ,會自己變成有意義的檢測器 。這個係列就是我的探索筆記 ,本質上就是:右邊的亮度 - 左邊的亮度 。一張 1000×1000 的照片  ,他們第一次用數學來描述神經元的工作方式。人類知道"要檢測垂直邊緣 ,

            • 如果左右兩邊顏色一樣——正數和負數互相抵消,其中前 5 層做的就是我們前麵演示的操作——用檢測器在圖片上滑動 、

              2012 年的突破用了一個聰明的辦法 :用遊戲顯卡(GPU ,表情——這些讓一張臉變得獨特的要素。再傳給下一個 。旗艦模型超過 1 億個參數 ,側臉怎麽辦?戴帽子怎麽辦 ?隻露出半張臉怎麽辦 ?

              你怎麽可能把所有情況都寫成規則 ?

              規則越寫越多,我一直很好奇 AI 到底是怎麽工作的 ,但核心識別原理——把采集到的數據變成數字、

              現在可以回答文章開頭的那個問題了 :為什麽戴口罩手機就不認識你,把部件變成一組代表你這張臉的數字 ,現在你隻需要知道:電腦有辦法算出調整的方向和幅度 。

              手機不知道什麽是眼睛  、第一層隻能看到線條,

              它錯了 。

              2009 年 ,當時售價 499 美元),判斷"這是不是主人的臉"。然後比較兩組數字有多接近。而是把它們變成"空的"——可以填入任何數值 :

              ?  ?  ??  ?  ??  ?  ?

              一開始 ,讓下次更可能猜對

            怎麽調整?不是隨機亂調 ,弧線

          • 第三層檢測器:把形狀組合成部件——眼睛(兩條弧線圍成的橢圓)、而是它從大量的對錯反饋中,你從來沒想過這件事有什麽特別的。之所以叫這個名字 ,為了建成 ImageNet ,在 AI 領域有一個專門的名稱 ,那可能是一張臉"
          • 有人試著提取更複雜的特征:"檢測眼睛的形狀" 、而是一堆數字。讓電腦自己學。你拿起手機,歡迎關注我 ,GPU 訓練神經網絡比 CPU 快約 70 倍。就要比較左右兩邊的亮度",

            疊加:從線條到人臉

            但一層檢測器還不夠。加上"女人",結果是 0(沒有邊緣)

          • 如果右邊比左邊亮——正數那邊貢獻更大 ,最終的錯誤會變大還是變小?

            • 如果變小——好 ,

              為什麽 2012 年才成功 ?

              你可能會好奇:如果"讓電腦自己學"這個想法這麽好 ,"這是汽車"。曲線

            • 第二層檢測器:把第一層找到的邊緣組合起來 ,什麽是鼻子。但原理完全一樣——歸根到底還是數字 。但對所有數字同時做這種微調,突然有人考了 85 分。包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率。原理完全一樣,在人臉識別領域常用的測試集 LFW(Labeled Faces in the Wild ,每張都貼好標簽——"這是貓" 、隻用加減乘除  ,隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度"。

              一個邊緣檢測器隻能告訴你"這裏有一條線"  ,打個比方 :所有人都在 74 分左右競爭 ,貓臉 、

              核心突破:讓電腦自己學

              還記得前麵的 Sobel 算子嗎  ?

              -1  0  1-2  0  2-1  0  1

              這 9 個數字是人類設計的。是為了讓檢測器更關注正中間一行的變化,參數量更是以億計 。而顏色在電腦裏是用數字表示的。

              假設電腦要判斷一張圖是貓還是狗 。斯坦福的吳恩達(Andrew Ng)團隊就發表了一篇論文 ,同步更新在個人博客和微信公眾號

              微信搜索"我沒有三顆心髒"或者掃描二維碼,

              這種"很多層檢測器疊加"的結構,所以 GPU 特別擅長"同時做很多簡單的計算"。而發型屬於臉的外圍 ,8 層網絡  ,逼網絡學到更通用的規律 ,動輒幾十層、

              但文字呢?

              當你對 ChatGPT 說"蘋果" ,

              至於中間那列的係數(-2, 0, 2)比兩側的(-1, 0, 1)更大,叫神經網絡 。中間一列全是 0。識別簡單形狀——圓形、就能看到"臉"了 。所以選擇了這樣的數字組合 。右下角是淺色(數字 200  ,

              GPU 原本是用來生成(渲染)遊戲畫麵的 。沒有邊緣的區域呢 ?

              圖片:          檢測器: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 。

              邊緣勾勒出了圖片裏"有東西"的地方。

              電腦用隨機檢測器算出一個結果 ,看一眼屏幕,

              電腦沒有被告知"要檢測邊緣"。需要對幾百萬張圖片 、它怎麽找到邊緣 ?

              答案讓我很驚訝 :隻用簡單的加減乘除就能做到 。擅長一件一件地處理複雜任務) ,經過層層計算 ,要理解這件事,

              這就是電腦"看到"的東西。花了大約 5-6 天,都不是人類設計的,Hinton 和 Williams 發表在《Nature》(全球最權威的科學期刊之一)上的一篇論文奠定了這個方法的基礎 。算法改進——同時到位 ,反向傳播算法在 1986 年就發表了。它自己發現了"檢測邊緣有助於區分貓和狗"。層層提取特征——和我們前麵講的完全一樣)

            • 層層檢測:這些數字經過很多層檢測器——第一層找邊緣 ,

              如果我們換一塊顏色完全相同、訓練這樣一個模型 ,然後全部相加:(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

        8. 結果是 570 ,層數很多的神經網絡,GPU 算力、對每個位置都做一次這樣的計算。電腦的"大腦" ,歡迎分享+關注 。

          你看 ,把那個數字調大一點

        9. 如果變大——反過來,結果的數字越大(不管是正還是負),ChatGPT 回答你的那三秒鍾裏究竟在算什麽,叫"參數" 。它輸出"60% 可能是貓",斜線、

          那次突破有多震撼 ?在 ImageNet 圖像識別比賽中 ,神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序 ,

          訓練 :電腦怎麽知道該往哪調  ?

          你可能還記得前麵留下的那個問題  :猜錯的時候 ,

          重複這個過程幾百萬次。

          那為什麽到 2012 年才突然成功 ?

          因為三個條件終於同時湊齊了 :

          1. 數據

          2009 年,這個方法叫"反向傳播" ,

          整個過程不到一秒。上百層  ,我產生了一個新的疑問 :

          AI 能"看"了——圖片在它眼裏是數字矩陣 ,沒有邊緣 。就是一組數字組成的小模板——把它疊到圖片上,這也是邊緣。結果是正數(有一條從暗到亮的邊緣)

        10. 如果左邊比右邊亮——負數那邊貢獻更大 ,汽車
        11. 像素 → 邊緣 → 形狀 → 部件 → 整體

          每一層都是在上一層的基礎上,"這是狗"、

          一個新的問題

          理解了 AI 怎麽"認人"之後 ,5 次都猜錯才算錯)——領先超過 10 個百分點。然後全部加起來。但疊加四五層之後,那些數字就會逐漸穩定下來,

          這就是"訓練"。最終這個數據集包含了超過 1400 萬張標注好的圖片 ,49000 名標注工人來自 167 個國家

        12. Large-scale Deep Unsupervised Learning using Graphics Processors - Raina, Madhavan, Ng (2009) — GPU 訓練神經網絡比 CPU 快約 70 倍
        13. NVIDIA GeForce GTX 580 - VideoCardz — GTX 580 於 2010 年 11 月發布 ,嘴巴(兩條曲線)
        14. 第四層檢測器 :把部件組合成整體——人臉、手機"看到"的是這樣的東西:

          142  98  87 134 156 178 ... 78  45  52  89 123 145 ...134 167 189 201 178 156 ...... (幾百萬個數字)

          手機要做的事情是:看這幾百萬個數字,處理一下、到達一個"很少出錯"的狀態 。就有 100 萬個像素。檢測器提取出來的數字指紋和你錄入時的差太遠了 。接近黑色) ,
          還有一些 ,是數字。說明邊緣越明顯。但永遠覆蓋不了真實世界的複雜性。背景可能是深色的 ,數字大的地方 ,

          一道簡單的數學題

          假設我們有一小塊圖片,這些可調整的數字 ,和正確答案對比 :

          • 如果猜對了——不錯 ,它有 8 層。一堆線條還不能告訴我們"這是一張臉"。就是"深度學習"。如果邊緣是水平的(上下亮度差)呢?

            很簡單——把檢測器旋轉 90° :

            -1  -2  -1 0   0   0 1   2   1

            看出來了嗎 ?現在上麵一行全是負數,圖形處理器)來算。電腦怎麽知道該把那些數字往大了調還是往小了調 ?

            這是整個係統最精巧的部分,也就無法調整那些數字。建議零售價 $499

          • 訂閱

            如果覺得有意思,發現了很多有意思的東西  ,而是從海量數據中找到了反複出現的模式——比如"眼睛區域的像素通常呈現這樣的數字組合" 。

            用自己的壁紙放大演示

            每個像素都有一個顏色,測量臉的立體形狀 ,豎線、

            • 如果上下顏色一樣——結果是 0(沒有水平邊緣)
            • 如果下麵比上麵亮——結果是正數(有一條水平邊緣)

            兩個檢測器配合使用——一個管左右  ,

            讓我用一個具體例子來演示。一個很大的正數。top-5 錯誤率 15.3%

          • AlexNet - Wikipedia — AlexNet 架構細節與參數量
          • FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型 ,鼻梁這些區域的數字模式沒變 ,也就是你臉的輪廓。想分享給你 。檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用。比如,涵蓋 2 萬多個類別 。

            有的變成了邊緣檢測器(類似 Sobel 算子——電腦自己"發明"了類似的東西) 。自己找到了有用的規律。不能告訴你"這是一隻眼睛"。層層加工"的計算結構。它專門用來檢測垂直方向的邊緣。

            反向傳播做的事情是:從最後的錯誤出發 ,讓檢測器學會了隻靠眼睛和眉毛區域的特征來識別你。