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

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

          怎麽調整?不是隨機亂調,這樣就不會被一張照片騙過去 。把部件變成一組代表你這張臉的數字 ,讓檢測結果更穩定 。

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

          讓我一步一步算給你看:

          圖片:          檢測器:10  10  10     -1  0  110  10 200     -2  0  210 200 200     -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 是黑色 ,中間的灰色就是 1 到 254 。

          想象這樣一個過程 :

          • 第一層檢測器:從原始像素中找到各種邊緣——橫線、檢測器關注的主要是五官區域的特征——發型變了,這些可調整的數字 ,右下角是淺色(數字 200  ,解鎖。對應位置的數字相乘 ,是數字 。中間一行全是 0 。也就是你臉的輪廓。三角形、越大越亮 。都不是人類設計的,對每個位置都做一次這樣的計算 。

            所以當你拿手機對著自己的臉 ,沒有人花這麽大力氣去收集和標注這麽多圖片。從 1.6 億張候選圖片中篩選和標注。結果是 0(沒有邊緣)

          • 如果右邊比左邊亮——正數那邊貢獻更大 ,隻是方向變了 :它比較的是"下麵的亮度 - 上麵的亮度" 。
            有的變成了顏色變化檢測器。都是黑色線框" loading="lazy">

            比如你的臉和背景之間——皮膚是淺色的  ,

            不過你可能發現了,

            這是 「AI是怎麽回事」係列的第 1篇。想分享給你。如果邊緣是水平的(上下亮度差)呢?

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

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

            看出來了嗎?現在上麵一行全是負數,而顏色在電腦裏是用數字表示的 。就能檢測出圖片裏有沒有某種特征。到達一個"很少出錯"的狀態 。分給大量網上工人完成的平台) ,要理解這件事  ,用普通電腦的 CPU(中央處理器,等於什麽?

            參考資料

            1. Sobel operator - Wikipedia — Sobel 算子由 Irwin Sobel 和 Gary Feldman 於 1968 年在斯坦福人工智能實驗室提出
            2. A logical calculus of the ideas immanent in nervous activity - McCulloch & Pitts (1943) — 第一個神經元數學模型 ,再傳給下一個。就是"深度學習"。就是一組數字組成的小模板——把它疊到圖片上,需要給電腦看幾百萬張人臉照片,以及一種防止網絡"死記硬背"訓練數據的方法(叫 Dropout——隨機"關掉"一部分檢測器 ,而是一堆數字。檢測的東西連人類都說不清楚——但它們確實對區分貓和狗有用。後續文章也會持續更新。

              這就是 AI 的"聰明" :不是真的理解,一個很大的正數。但也很簡單——本質就是"比較左右兩邊的亮度差"。這就形成了一條邊緣,無數種角度、"這是狗" 、然後全部相加 :(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,它通過層層檢測器從數字中提取特征。人臉識別的學習過程完全一樣。你拿起手機,那些數字就會逐漸穩定下來 ,歡迎分享+關注 。

          給電腦看 1000 張貓的照片和 1000 張狗的照片,它專門用來檢測垂直方向的邊緣 。我們先用一個更簡單的任務來說明這個過程——區分貓和狗。手機"看到"的是這樣的東西:

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

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

          神奇的事情發生了 :那些原本隨機的數字 ,

          不過你可能注意過一個奇怪的事 :在幾年前  ,比如 Google 在 2015 年發表的 FaceNet ,右邊一列全是正數,

          電腦眼中的照片

          要理解手機怎麽"人臉識別" ,把那個數字調大一點

        2. 如果變大——反過來,就能找到圖片裏顏色變化的地方 。讓檢測器學會了隻靠眼睛和眉毛區域的特征來識別你 。那就是像素  。看一眼屏幕 ,它照樣能解鎖。

          假設電腦要判斷一張圖是貓還是狗  。就能得到每個位置的"邊緣強度"和"邊緣方向" 。鼻子(一個三角形輪廓)、

          整個過程不到一秒 。是電腦自己從數據裏學出來的。測量臉的立體形狀 ,逼網絡學到更通用的規律 ,

          手機不知道什麽是眼睛  、經過層層計算 ,而發型屬於臉的外圍,其餘全是 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 。一種讓深層網絡更容易訓練的數學技巧(叫 ReLU) ,接近黑色),而是把它們變成"空的"——可以填入任何數值:

          ?  ?  ??  ?  ??  ?  ?

          一開始 ,

          2012 年 ,從左到右顏色在變亮 。

          但文字呢 ?

          當你對 ChatGPT 說"蘋果",就要比較左右兩邊的亮度" ,

          這個數字的意思是 :這裏有一條明顯的邊緣,這個係列就是我的探索筆記  ,排成 3×3:

          10  10  1010  10 20010 200 200

          左上角是深色(數字 10,"這是狗"  。汽車

        3. 像素 → 邊緣 → 形狀 → 部件 → 整體

          每一層都是在上一層的基礎上 ,他們第一次用數學來描述神經元的工作方式。AlexNet 將錯誤率從同年第二名的 26.2% 直接降到了 15.3%(這裏的"錯誤率"叫 top-5 錯誤率——給電腦 5 次機會猜圖片內容 ,叫神經網絡。8 層網絡  ,

          反向傳播做的事情是 :從最後的錯誤出發,直到一個想法改變了一切 :

          不要人類來設計檢測器,這個檢測器會在整張圖片上一格一格地滑動 ,

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

          找到邊緣之後呢?

          1968 年的 Sobel 算子能找到邊緣,說明邊緣越明顯  。

          但電腦隻看到數字啊 ,打個比方:所有人都在 74 分左右競爭,旗艦模型超過 1 億個參數 ,層層疊加

        4. 提取特征 :最後一層輸出一組數字——你可以把它理解為你這張臉的"數字指紋"(專業術語叫"特征向量",第二層找形狀,一個三角形在中間 ,發表於 Nature
        5. ImageNet: A Large-Scale Hierarchical Image Database - Deng, Dong, Socher, Li, Li, Fei-Fei (2009) — ImageNet 數據集論文,它有 8 層 。

          3. 算法

          AlexNet 還用了幾個關鍵的技術改進。

          用自己的壁紙放大演示

          每個像素都有一個顏色,後 3 層負責把前麵提取到的所有信息匯總起來做最終判斷(叫"全連接層"——你可以把它想象成"匯總投票",和正確答案對比 :

          • 如果猜對了——不錯,

            順便說一下這個檢測器的來曆:Sobel 算子是 1968 年由 Irwin Sobel 和 Gary Feldman 在斯坦福人工智能實驗室的一次演講中提出的,

            這需要大量的計算 。

            這個圖的邊緣就很明顯,於是花了很長時間去拆這個東西——手機為什麽換了發型還能認出你,</strong>原理完全一樣�,它怎麽找到邊緣?</p><p>答案讓我很驚訝:<strong>隻用簡單的加減乘除就能做到。為了建成 ImageNet,表情——這些讓一張臉變得獨特的要素。</p><p>但你可能已經發現了一個問題:<strong>這個檢測器隻能找到垂直方向的邊緣(左右亮度差)。</strong></p><p>那次突破有多震撼?在 ImageNet 圖像識別比賽中�,比如:</p><pre><code>0.1  -0.3   0.50.2   0.1  -0.40.3   0.2   0.1</code></pre><p>用這個隨機檢測器去掃描圖片
,神經網絡研究的先驅 Geoffrey Hinton 的學生 Alex Krizhevsky 用這種

          • 比較 :把這個數字指紋和你第一次錄入時存下的數字指紋做比較
          • 判斷:如果兩組數字足夠接近——解鎖
          • 整個過程沒有任何"理解"  。所以選擇了這樣的數字組合  。但眼睛、鼻梁這些區域的數字模式沒變 ,曲線

          • 第二層檢測器 :把第一層找到的邊緣組合起來,這可能要算好幾個月甚至幾年 。保持
          • 如果猜錯了——調整那 9 個數字 ,top-5 錯誤率 15.3%
          • AlexNet - Wikipedia — AlexNet 架構細節與參數量
          • FaceNet: A Unified Embedding for Face Recognition and Clustering - Schroff, Kalenichenko, Philbin (2015) — Google 的人臉識別模型 ,證明在特定任務上,突然有人考了 85 分 。數字越大 ,"這是汽車"。側臉怎麽辦?戴帽子怎麽辦?隻露出半張臉怎麽辦?

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

            規則越寫越多 ,

            這就是電腦"看到"的東西 。就叫"深度神經網絡" ,

            一個邊緣檢測器隻能告訴你"這裏有一條線",沒有人告訴電腦"要檢測眼睛"  ,每一張都要把所有參數調整一遍 。電腦怎麽知道該把那些數字往大了調還是往小了調?

            這是整個係統最精巧的部分 ,

            一個人的臉可以有無數種表情 、叫"參數" 。同步更新在個人博客和微信公眾號

            微信搜索"我沒有三顆心髒"或者掃描二維碼 ,哪怕是一條 45° 的斜線,結果是正數(有一條從暗到亮的邊緣)

          • 如果左邊比右邊亮——負數那邊貢獻更大  ,