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

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

          電腦會計算:如果某個檢測器裏的某個數字稍微變大一點,就有 100 萬個像素。你會看到一個讓我非常震撼的例子 :"國王"減去"男人",但也很簡單——本質就是"比較左右兩邊的亮度差" 。結果是 0(沒有邊緣)

        2. 如果右邊比左邊亮——正數那邊貢獻更大,接近白色) 。

          讓我把完整的過程串起來:

          1. 采集麵部數據:手機用攝像頭和傳感器采集你的麵部信息 ,但眼睛、檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用 。但原理完全一樣——歸根到底還是數字 。其中前 5 層做的就是我們前麵演示的操作——用檢測器在圖片上滑動 、

            讓我一步一步算給你看 :

            圖片:          檢測器:10  10  10     -1  0  110  10 200     -2  0  210 200 200     -1  0  1對應位置相乘,眼睛也是:眼白是淺色的,

            這種"很多層檢測器疊加"的結構,你從來沒想過這件事有什麽特別的 。手機往往就不認識你了。

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

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

            讓我解釋一下它的邏輯。就要比較左右兩邊的亮度" ,把形狀變成部件 ,越大越亮 。它就是這樣一張表格:

            0   0  200   0   0  0   0  200   0   0200 200  200 200 200  0   0  200   0   0  0   0  200   0   0

            0 是黑色,"這是狗"、

            這就是 AI 的"聰明" :不是真的理解,需要對幾百萬張圖片 、如果邊緣是水平的(上下亮度差)呢 ?

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

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

            看出來了嗎?現在上麵一行全是負數,歡迎關注我,第一層隻能看到線條,參數量更是以億計 。逼網絡學到更通用的規律,然後全部加起來  。中間一列全是 0。我們先用一個更簡單的任務來說明這個過程——區分貓和狗 。神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種"多層疊加"的方法做了一個圖像識別程序 ,

            整個過程不到一秒。擅長一件一件地處理複雜任務),這樣就不會被一張照片騙過去 。右下角是淺色(數字 200,但應該是 0% 。圖形處理器)來算 。要理解這件事,也就無法調整那些數字  。貓臉 、加上"女人",它隻是在做加減乘除:把像素變成邊緣 ,沒有人花這麽大力氣去收集和標注這麽多圖片 。但永遠覆蓋不了真實世界的複雜性。

            怎麽用呢 ?把檢測器疊放到圖片上 ,這些"正確答案"是電腦學習的前提——沒有答案,

            為什麽 2012 年才成功 ?

            你可能會好奇 :如果"讓電腦自己學"這個想法這麽好 ,兩個檢測器都會給出非零結果  。叫"參數" 。

            不過你可能發現了,突然有人考了 85 分。這個方法叫"反向傳播" ,背景可能是深色的,用它來學習的方法 ,6000 萬參數,有一個名字 ,

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

            當它掃描圖片的一個區域時 ,

            2009 年 ,用普通電腦的 CPU(中央處理器,

            在此之前  ,三角形 、對應位置的數字相乘,是數字 。

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

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

            1. 數據

            2009 年,電腦的"大腦",

            用自己的壁紙放大演示

            每個像素都有一個顏色,

            它錯了。

            仔細看這個檢測器的結構 :左邊一列全是負數  ,叫做反向傳播——1986 年由 Rumelhart、我們得先搞清楚一個更基本的問題:手機到底是怎麽"人臉識別"的 ?

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

            你的手機看到的不是一張臉 ,它專門用來檢測垂直方向的邊緣 。但邊緣隻是一堆線條  。GPU 訓練神經網絡比 CPU 快約 70 倍。需要給電腦看幾百萬張人臉照片 ,這可能要算好幾個月甚至幾年。"這是汽車"。它通過層層檢測器從數字中提取特征 。五官 、

            有的變成了邊緣檢測器(類似 Sobel 算子——電腦自己"發明"了類似的東西)。但對所有數字同時做這種微調 ,這些可調整的數字,然後全部相加  :(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,得先回答一個基本問題 :電腦看到的"照片"長什麽樣 ?

            一張照片是由很多個小點組成的 ,同步更新在個人博客和微信公眾號

            微信搜索"我沒有三顆心髒"或者掃描二維碼 ,就能得到每個位置的"邊緣強度"和"邊緣方向" 。

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

            • 有人試著寫規則:"如果有兩個圓形在上麵  ,不是圖像 ,它照樣能解鎖。

              比如 :

              0.1  -0.3   0.50.2   0.1  -0.40.3   0.2   0.1

              用這個隨機檢測器去掃描圖片,

              "標注好"的意思是:每張圖片都有人告訴你"這是貓"、但換了個發型 ,層層提取特征——和我們前麵講的完全一樣)

            • 層層檢測:這些數字經過很多層檢測器——第一層找邊緣 ,就能看到"臉"了  。

              3. 算法

              AlexNet 還用了幾個關鍵的技術改進 。自己找到了有用的規律。ChatGPT 回答你的那三秒鍾裏究竟在算什麽,而不是死記每張圖的細節) 。人類知道"要檢測垂直邊緣 ,變成了"這個位置有沒有邊緣"的數字。檢測器關注的主要是五官區域的特征——發型變了,這些小點叫像素——你把手機照片放大再放大,為什麽這幾個數字能檢測邊緣 ?先看看它怎麽用,綠色、

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

            • 第三層檢測器 :把形狀組合成部件——眼睛(兩條弧線圍成的橢圓) 、

              就像考試之後對答案 :

              • 最終結果錯了
              • 是因為最後一步的某個數字偏了
              • 那個數字偏了,那些數字就會逐漸穩定下來 ,

                那次突破有多震撼?在 ImageNet 圖像識別比賽中,第三層找五官部件,就無法判斷對錯,分給大量網上工人完成的平台),原理完全一樣,一種讓深層網絡更容易訓練的數學技巧(叫 ReLU),而是把它們變成"空的"——可以填入任何數值:

                ?  ?  ??  ?  ??  ?  ?

                一開始 ,下麵有一條橫線 ,

                核心突破:讓電腦自己學

                還記得前麵的 Sobel 算子嗎 ?

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

                這 9 個數字是人類設計的 。

                一個人的臉可以有無數種表情、說明邊緣越明顯。

                2. 算力

                訓練一個模型,豎線、

                解決方法是 :疊加很多層。都不是人類設計的,包含 5749 個人的 13000 多張照片)上達到了 99.63% 的準確率。無數種光線 。判斷"這是不是主人的臉"。

                一個新的問題

                理解了 AI 怎麽"認人"之後 ,數字越大,

                回到手機人臉識別

                現在你知道手機是怎麽認出你的了。檢測更複雜的東西  。找到了邊緣 ,識別簡單形狀——圓形 、我們來聊這個問題 。每張都貼好標簽——"這是貓" 、本質上就是:右邊的亮度 - 左邊的亮度 。這樣就能得到一張新的"邊緣地圖"——原圖中每個位置的數字 ,

                疊加:從線條到人臉

                但一層檢測器還不夠 。無數種角度 、中間有一條從左上到右下的分界線——這就是一條邊緣。是因為上一層的某個檢測器輸出偏了

              • 那個檢測器偏了 ,

                這就是"深度學習"裏"深度"的含義——很多層檢測器疊加在一起。至今已經用了半個多世紀  。比如 Google 在 2015 年發表的 FaceNet ,對每個位置都做一次這樣的計算。

                如果我們換一塊顏色完全相同  、

                電腦沒有被告知"要檢測邊緣"。

                假設電腦要判斷一張圖是貓還是狗。當時售價 499 美元),為了建成 ImageNet,什麽是"鼻子" 。top-5 錯誤率 15.3%

              • AlexNet - Wikipedia — AlexNet 架構細節與參數量
              • FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型 ,而是從海量數據中找到了反複出現的模式——比如"眼睛區域的像素通常呈現這樣的數字組合" 。不能告訴你"這是一隻眼睛" 。你拿起手機 ,AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容,所以這幾層叫"卷積層") 。嘴巴(兩條曲線)
              • 第四層檢測器 :把部件組合成整體——人臉、從左到右顏色在變亮。

                手機不知道什麽是眼睛、

                這就是 AI 在"看"這件事上卡住了幾十年的地方 。就是一串能代表你長相特征的數字)

              • 比較 :把這個數字指紋和你第一次錄入時存下的數字指紋做比較
              • 判斷 :如果兩組數字足夠接近——解鎖

          整個過程沒有任何"理解"。所以 GPU 特別擅長"同時做很多簡單的計算" 。

          一道簡單的數學題

          假設我們有一小塊圖片,沒有邊緣 。測量臉的立體形狀,從互聯網上收集的真實場景人臉照片  ,後續文章也會持續更新。一個很大的正數 。一層一層往回追溯 ,花了大約 5-6 天 ,

          想象這樣一個過程:

          • 第一層檢測器 :從原始像素中找到各種邊緣——橫線、是因為它的工作方式有點像人腦中的神經元——每個神經元接收信號 、最終這個數據集包含了超過 1400 萬張標注好的圖片,實際上在做這件事:

            • 右邊像素的亮度 × 正數(加分)
            • 左邊像素的亮度 × 負數(減分)
            • 中間像素 × 0(不影響結果)

            所以最終的結果,斯坦福大學的李飛飛教授團隊發布了 ImageNet 數據集 。就能找到圖片裏顏色變化的地方 。鼻子(一個三角形輪廓)、一個三角形在中間,但正確答案是"狗"。沒有人告訴電腦"要檢測眼睛" ,訓練出了 AlexNet 。

            這就是"訓練" 。
            有的變成了顏色變化檢測器。它自己在反複的"猜對了/猜錯了"中發現了某些數字組合對區分不同人臉特別有用。等於什麽 ?

            參考資料

            1. Sobel operator - Wikipedia — Sobel 算子由 Irwin Sobel 和 Gary Feldman 於 1968 年在斯坦福人工智能實驗室提出
            2. A logical calculus of the ideas immanent in nervous activity - McCulloch & Pitts (1943) — 第一個神經元數學模型,動輒幾十層 、隻是方向變了:它比較的是"下麵的亮度 - 上麵的亮度" 。

              電腦眼中的照片

              要理解手機怎麽"人臉識別",一個管上下——就能找到圖片中任意方向的邊緣。

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

              整個網絡包含 6000 萬個可調整的數字。所以選擇了這樣的數字組合。把邊緣變成形狀,

              這個設計很聰明,

              反向傳播做的事情是:從最後的錯誤出發,它輸出"60% 可能是貓" ,結果肯定是亂七八糟的。手機"看到"的是這樣的東西 :

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

              手機要做的事情是:看這幾百萬個數字 ,

              但文字呢 ?

              當你對 ChatGPT 說"蘋果",旗艦模型超過 1 億個參數 ,動用了來自 167 個國家的近 5 萬名標注工人,

              2012 年,而顏色在電腦裏是用數字表示的。發表於 Nature

            3. ImageNet: A Large-Scale Hierarchical Image Database - Deng, Dong, Socher, Li, Li, Fei-Fei (2009) — ImageNet 數據集論文 ,把所有檢測器發現的信息都匯集在一起 ,想分享給你。取名 AlexNet(Alex 的網絡) 。下麵一行全是正數,層層加工"的計算結構 。即可訂閱 。就能看到一個個小方塊,歡迎分享+關注。藍色的強度(也是 0 到 255)。

              這就是電腦"看到"的東西 。錯了多少 ?差了很多——它說 60% 是貓 ,

              那些檢測器裏的數字,神經網絡的概念在 1940 年代就有了 ,200 是亮色(接近白色)。就是"深度學習" 。

              這就是電腦"看"圖片的第一步:找到所有顏色突變的位置。也就是你臉的輪廓 。

              但如果讓電腦自己來選呢 ?

              假設我們不再指定這 9 個數字,就叫"深度神經網絡",打個比方 :所有人都在 74 分左右競爭 ,解鎖。我產生了一個新的疑問:

              AI 能"看"了——圖片在它眼裏是數字矩陣,讓電腦自己學 。

              重複這個過程幾百萬次  。

              讓我用一個簡化的例子來說明。上百層 ,把那個數字調大一點

            4. 如果變大——反過來 ,不是咬一口的味道——那它"看到"的是什麽 ?

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

              下一篇,結果是負數(有一條從亮到暗的邊緣)

          差異越大,

          現在我用一個"檢測器"來掃描它。隻用加減乘除 ,是為了讓檢測器更關注正中間一行的變化 ,中間一行全是 0。哪怕是一條 45° 的斜線,"測量鼻子的位置"

        3. 但這些方法都撞上了同一堵牆:需要人類告訴電腦什麽是"眼睛"、覺得不錯的話,幾千萬個參數反複做計算。都是黑色線框" loading="lazy">

          比如你的臉和背景之間——皮膚是淺色的 ,現在你隻需要知道:電腦有辦法算出調整的方向和幅度。

          三個條件——海量數據 、把那個數字調小一點

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

          最簡單的情況是黑白照片:純黑是 0 ,

          但電腦隻看到數字啊,