如何用Excel 9步實現CNN人臉識別

weixin_33936401發表於2018-08-13
10137682-242048ec4ff863ea
如何用Excel 9步實現CNN人臉識別

大資料文摘授權轉載自論智

當你入門的時候,可能覺得機器學習很複雜……甚至很可怕。另一方面,Excel卻很簡單。Excel並不酷炫,但卻能避免分散你的注意力,同時幫助你以直觀的方式視覺化程式碼後面發生的事情。

我將循序漸進地通過Excel(你可以通過下面的連結下載)向你展示卷積神經網路(CNN)是如何應用於計算機視覺任務的。其中包括一些數學,不過Excel中包含了所有的公式。

https://drive.google.com/open?id=1TJXPPQ6Cz-4kVRXTSrbj4u4orcaamtpGvY58yuJbzHk

如果無法訪問Google網盤,可以在大資料文摘微信公眾號後臺回覆“Excel”獲得資料。

這一Excel模型檢視一幅影像,分析它的畫素,並預測是否是Elon Musk、Jeff Bezos、Jon Snow……顯然這三位是天網的最大威脅。

10137682-310970931f7cbc93
image

終結者視覺——在Excel中建立卷積神經網路

本文將介紹上圖中的9個步驟,每個步驟都會使用類比的方法給你的直覺增壓。

本文的目標是使用容易操作的Excel,提供入門機器學習的簡單路徑,並向充滿好奇心的讀者展示尖端AI技術的奧祕。如果本文對你有幫助,請註冊我建立的郵件列表,註冊後可以收到更多後續的Excel,幫助你入門機器學習和建立神經網路。

Facebook面部識別系統、某國奧威爾式的大規模監控系統、你的汽車(不久的將來)背後的基礎都是計算機視覺。

10137682-92ab901b192eaaac
image

CNN神探

讓我們假裝終結者的頭腦裡住著一個特別的偵探,名叫“夏洛克·卷積·福爾摩斯”。他的工作是仔細檢視證據(輸入影像),使用敏銳的眼神和推理能力(特徵檢測),預測影像中的人是誰,從而破案(正確分類影像)。

10137682-ec98fb5badc5c9b7
image

卷積網路架構

你將學習:

  1. 輸入:計算機如何看

  2. 特徵檢測:像福爾摩斯一樣思考

  3. 卷積數學:福爾摩斯的偵探工具

  4. ReLU:非線性模式識別

  5. 最大池化:保留最重要的線索

  6. 扁平化:排列所有線索

  7. 全連線:完成案件拼圖

  8. Logit + Softmax:破案

  9. 交叉熵損失:福爾摩斯的“正/誤”

10137682-9f10b81b25784b79
image

輸入——一圖勝千言

10137682-0e9d60483fa378b7
image

天網的最大威脅——Elon Musk

我從上面的影像中看到了一個有遠見的人。他一方面不斷改善地球這顆星球,另一方面建立逃離地球的火箭,以防終結者試圖摧毀地球。和計算機不同,我看不到畫素值,也無法辨認出一張影像不過是紅光、綠光、藍光的堆疊:

10137682-ec1a6a555d565cb7
image

另一方面,一臺計算機(比如天網)是瞎的……它只能看到數字。

想象一下由3張Excel(紅、綠、藍)堆疊構成的電子影像,每張表格是一個數字矩陣。拍照的時候,相機測量到達每個畫素的紅光、綠光、藍光的量。接著它在0-255的範圍內評估每個畫素,然後將其記錄到Excel中。

10137682-1c5daf602f687326
image

計算機看到Excel

上為一張28x28的影像,每個畫素由三行(紅、藍、綠)表示,取值範圍0-255. 每個畫素的顏色對應其數值。

10137682-4fdcbea6a53df7e3
image

終結者沒有看到眼睛,他看到的是一串數字

將每種顏色單獨放到一個矩陣中,我們得到了3個28x28矩陣,也就是我們之後用來訓練神經網路的輸入:

10137682-69c1fdf9e0a15441
image

模型輸入

如果你想知道如何將任意影像轉換成Excel,請訪問以下網址:

http://think-maths.co.uk/spreadsheet

你將學到如何得到一張“Ex拍”,你的Excel迷朋友們會喜歡的……相信我,在Excel中找到你的馬克杯(或者他們的)會讓他們捧腹大笑的? (小圖效果最佳)。

訓練概覽——像計算機,又像小孩

你剛出生的時候知道狗是什麼樣的嗎?當然不知道。但隨著時間的推移,你的父母會給你看書中、動畫片中、真實生活中的狗的影像,漸漸地,你可以指著那些4條腿、毛茸茸的動物說“狗”。你的大腦中數億神經元間的連線變得足夠強,所以你可以識別狗。

終結者以同樣的方式學習識別Elon。在一個被稱為監督訓練的過程中,人們給終結者看數千張Elon Musk、Jeff Bezos、Jon Snow的影像。剛開始,它只能隨便亂猜(1/3的機率猜對),漸漸地,就像小孩一樣,隨著它在訓練過程中看到越來越多的影像,它猜得越來越準。網路的連線(也就是“權重/偏置”)隨著時間的推移而更新,使得它可以基於畫素輸入預測輸出。這是我上一篇文章中討論過的學習過程(梯度下降)。

CNN訓練週期

卷積神經網路和普通神經網路的區別何在?

用兩個詞概括:平移不變性。

不知所云?讓我們解構一下:

  • 平移 = 將某物從一個地方移動到另一個地方

  • 不變性 = 沒有改變

在計算機視覺中,這意味著,不管物件移動到影像中的何處(平移),不會改變物件是什麼(不變性)。

平移不變性(以及縮放不變性)

這需要訓練卷積神經網路識別Elon的特徵,不管Elon在影像中的位置在哪裡(平移),也不管Elon在影像中的大小(縮放不變性)。

在普通神經網路中,我們本來會將每個畫素作為模型的一個輸入(而不是3個矩陣),但這忽略了相近的畫素具有特別的意義和結構這一事實。在CNN中,我們檢視畫素組,這允許模型學習形狀、線條等區域性模式。比方說,如果CNN看到許多白畫素包圍一個黑圓圈,它會識別出眼睛這一模式。

為了達到平移不變性,CNN需要依靠它的特徵偵探夏洛克·卷積·福爾摩斯的服務。

類比: 影像就像由畫素組成的Excel。

10137682-3932c3c99010e2ec
image

遇見夏洛克·卷積·福爾摩斯——特徵偵探

尋找特徵的夏洛克

夏洛克住在終結者的頭腦中。他每次使用放大鏡仔細檢查一小片影像,尋找影像的重要特徵(“線索”)。在收集到簡單的線條和形狀之類的線索後,他將它們堆疊起來,開始看到眼睛或鼻子之類的面部特徵。

每個卷積層儲存基於另一層構建的一組特徵對映。最後,夏洛克組合所有線索,這樣他就可以破案了(識別目標)。

10137682-d4fb147ed517512b
image

每個特徵對映就像一條線索

網路的每個卷積層都包含一組特徵對映,這些對映能夠以下圖所示的層次化的方式識別越來越複雜的模式/形狀。

CNN基於數字的模式識別找到任意影像的最重要特徵。隨著CNN以更多的網路層不斷堆疊這些模式,它可以建立非常複雜的特徵對映。

10137682-0745ecd75f4b787a
image

特徵層次

真實生活中的CNN和夏洛克做一樣的事情:

<iframe frameborder="0" width="661" height="371.8125" allow="autoplay; fullscreen" allowfullscreen="true" src="https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=k0349icecuy&autoplay=false&full=true&show1080p=false" style="max-width: 100%;"></iframe>

CNN的奇妙之處在於可以自行學習這些特徵……工程師不用編寫尋找一雙眼睛、一個鼻子、一張嘴的集合這樣的程式碼。

以這種方式工作的工程師更像架構師,他們告訴夏洛克:“我給你兩疊(‘卷積層’)空白特徵對映(‘線索’),你的工作是分析影像,找出最重要的線索。第一疊有16個特徵對映(‘線索’),第2疊有64個特徵對映……現在發揮你的偵探技能,解決這個案件!”

類比: 每個特徵對映就像案件中的一條線索。

為了查明案件中的“線索”(即計算特徵對映),夏洛克需要依靠他的偵探工具箱中的一些工具,我們會逐一介紹:

  • 過濾器 —— 夏洛克的放大鏡 ?

  • 卷積數學 —— 過濾器權重 x 輸入影像畫素

  • 步進 —— 沿著輸入影像移動過濾器 ? ➡️ ? ➡️

  • 補齊 —— 保護線索的犯罪現場隔離膠帶 ?

夏洛克的放大鏡/過濾器

毫無疑問,夏洛克非常敏銳,具備出色的觀察技能,但是,如果沒有那些特製的放大鏡(過濾器),夏洛克沒法完成他的工作。他使用不同的放大鏡幫助填充每張空白特徵對映的細節。所以,如果他有16個特徵對映……他會有16塊放大鏡。

每塊放大鏡由多層玻璃組成,而每層玻璃由不同的權重組成。玻璃的層數,也就是過濾器深度,總是等於輸入層的深度。

剛開始,夏洛克看到的輸入影像有3層——紅、綠、藍。所以,放大鏡也有3層。

隨著我們進一步建立CNN,層的深度會增加,相應地,放大鏡也會變厚。

為了建立1個特徵對映(一條線索),夏洛克從取出一個放大鏡,並置於輸入影像的左上角開始。紅層玻璃只能看到紅輸入影像,綠層玻璃只能看到綠圖,而藍層玻璃只能看到藍圖。

現在是數學部分。

卷積數學

特徵對映中的每個畫素是線索的一部分。為了計算每個畫素,夏洛克需要進行一些基本的乘法和加法。

在下面的例子中,我們使用5x5x3的輸入影像和3x3x3的過濾器,每個畫素需要進行以下計算:

  • 3x3x3過濾器每層的卷積乘法 = 27

  • 將27個數字加起來

  • 再加上1個數字——偏置

<iframe frameborder="0" width="661" height="495.75" allow="autoplay; fullscreen" allowfullscreen="true" src="https://v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&vid=f1345zo5udf&autoplay=false&full=true&show1080p=false" style="max-width: 100%;"></iframe>

讓我們仔細看下數學。一個畫素需要27次乘法(3層,每層9次乘法),下面的截圖顯示了27次乘法中的9次:

10137682-55fef8ea59c4e874
image

分素相乘

至於偏置,你可以把它想象成放大鏡的把手。像權重一樣,它是模型的另一個引數,在訓練過程中自動調整,以提高模型的精確度,並更新特徵對映細節。

過濾器權重——在上面的例子中,我為了簡化數學,將權重的值設為-1、0、1;然而,一般而言,你需要用較小的值隨機初始化權重……比如0.01到0.1之間的值,基於鐘形曲線或正態分佈取樣。想要了解更多權重初始化的知識,可以看這篇入門。

步進 —— 移動放大鏡

計算特徵對映的第1個畫素之後,夏洛克將把放大鏡往哪移呢?

10137682-b86aeaea913cf3ed
image

步進:每次移動放大鏡1畫素

答案取決於步進引數。作為架構師/工程師,我們需要告訴夏洛克,他應該將他的放大鏡向右移動(步進)多少畫素。實踐中最常見的步長值為2或3,但出於簡單性,這裡我們將步長設為1. 這意味著夏洛克將放大鏡向右移動1畫素,然後進行和之前一樣的卷積運算。

當他的放大鏡到達輸入影像的最右邊時,他將放大鏡移到最左,然後往下移動1畫素。

步長為何大於1?

優點:更少運算,記憶體中儲存的運算結果更少,從而使模型更快。

缺點:由於跳過畫素有錯過模式的潛在可能性,損失了關於影像的資料。

2或3步長通常是合理的,因為緊跟著一個畫素的畫素通常具有相似的值,而隔著2-3個畫素的畫素,更可能具有不同的值,這樣的值對特徵對映/模式而言可能很重要。

如何預防資訊損失(丟失線索)

為了破案,夏洛克剛開始接觸案件的時候需要大量線索。在我們上面的例子中,我們的輸入為一張5x5x3的影像,或者75畫素資訊(75 = 5 x 5 x3),在第一個卷積層後,我們得到了一張3x3x2的影像,或者18畫素(18 = 3 x 3 x 2)。這意味著我們損失了證據,這讓夏洛克的搭檔約翰·華生非常反感。

在CNN的剛開始幾層,夏洛克傾向於檢視大量細微模式(更多線索)。在靠後的卷積層中,隨著夏洛克堆疊細微的線索,檢視較大的模式,“降取樣”也就是降低畫素的總量(更少線索)沒什麼問題。

那麼,在CNN剛開始的時候,我們如何預防這樣的資訊損失呢?

一、補齊——通過補齊影像保護犯罪現場

10137682-405ac4a3a7ad9150
image

在上面的例子中,我們在撞上右邊緣前,只能移動過濾器3次……從上往下同樣如此。這意味著我們所得輸出的高/寬為3x3,從左往右,損失了2畫素,而從上往下又損失了2畫素。

為了預防這種資訊損失,常見的做法是用零“補齊”原始影像(稱為全零補齊(zero padding或same padding))……有點類似用犯罪現場隔離膠帶確保沒人破壞證據。

10137682-d85729b657859407
image

補齊之後,如果夏洛克再次使用相同的放大鏡,他的兩個特徵對映的大小會是5x5而不是3x3。

這意味著我們最終得到了50畫素的資訊(5x5x2=50)。

50畫素比18要好。不過別忘了……我們剛開始有75畫素,所以我們仍然錯過了一些線索。

所以我們還能做什麼讓夏洛克和約翰·華生滿意?

二、更多過濾器——至少在我們的卷積層中加上一個特徵對映,給夏洛克更多線索

模型對特徵對映(“線索”)的數量並沒有限制……這是我們可以控制的超引數。

如果我們至少將特徵對映從2增加到3(5x5x2到5x5x3),那麼總輸出畫素(75)就和輸入畫素(75)相等了。如果我們將對映增加到10,那麼我們會有更多資訊供夏洛克探究(5x5x10 = 250)。

10137682-2224f70bb1311c47
image

事情變得越來越有趣了

總結一下,剛開始幾層的資訊畫素總數一般高於輸入影像,因為我們想要給夏洛克儘可能多的細微模式/線索。在網路的最後幾層,我們常常進行降取樣,資訊畫素變少,這是因為這些層識別影像中較大的模式。

類比: 過濾器就像放大鏡,而補齊就像犯罪現場隔離膠帶。

10137682-d888aa20b986da95
image

非線性模式識別——ReLU

給夏洛克足夠的案件資訊很重要,但現在到了進行真正的偵探工作的時候了——非線性模式識別!比如耳廓和鼻洞。

到目前為止,夏洛克進行了大量數學運算以構建特徵對映,但所有運算都是線性的(在每個輸入畫素上進行一些乘法和加法操作),因此,他只能識別畫素的線性模式。

為了給CNN引入非線性,我們將使用一種稱為修正線性單元(Rectified Linear Unit)的啟用函式,簡稱ReLU。在我們初次進行卷積運算得出特徵對映後,每個值都通過這一函式,看看是否點亮/啟用。

如果輸入值是負數,那麼輸出將為零。如果輸入值是正數,那麼輸出將和輸入一樣。ReLU就像一個開關,讓特徵對映的每個值通過ReLU之後,就建立了非線性模式識別。

回到我們原本的CNN例子,我們在卷積之後馬上應用ReLU:

10137682-53d51acc143d6bf7
image

儘管有許多非線性啟用函式可以為神經網路引入非線性(Sigmoid、Tanh、Leaky ReLU等),ReLU是CNN中目前最流行的啟用函式,因為ReLU在算力上很高效,能加快訓練。你可以參閱Andrej Karpathy的overview on non-linear activation functions瞭解每種函式的優劣(譯者注:也可以參考理解神經網路的啟用函式,同樣比較了不同啟用函式的優劣)。

類比: ReLU就像開關。

10137682-27ef90fe18e62d65
image

最大池化——在大腦閣樓中保留關鍵的少量資訊

現在夏洛克有一些特徵對映(“線索”)要檢視,如何確定哪些資訊是關鍵的,哪些資訊是無關的細節?最大池化。

夏洛克認為人類的大腦就像一個空閣樓。傻瓜會在裡面存放各種各樣的傢俱和物品,讓有用的資訊在一堆雜物中不知所蹤。而智者僅僅儲存最重要的資訊,從而在需要的時候可以快速做出決定。從這個意義上說,最大池化是夏洛克版的大腦閣樓。為了更快地做出決定,他只保留最重要的資訊。

10137682-c1f755e9f37019a4
image

通過最大池化,夏洛克在相鄰的畫素中僅僅保留最大值,證據中最重要的部分。

例如,如果他檢視一個2x2區域(4畫素),他僅僅保留其中值最高的畫素,丟棄其餘3個畫素。這一技術讓他可以快速地學習,同時也有助於他概括(而不是“記憶”)可用於未來影像的線索。

和之前的放大鏡過濾器類似,我們同樣可以控制最大池化的步長和大小。在下面的例子中,我們將步長設為1,池化尺寸設為2x2:

最大池化之後,我們完成了1回合卷積/ReLU/最大池化。

典型的CNN在分類器之前會有若干回合卷積/ReLU/池化。在每一回閤中,我們將在增加深度的同時擠壓高/寬,這樣我們不會在此過程中遺失證據。

第一步至第五步,我們專注於收集證據,現在是時候讓夏洛克檢視所有線索,偵破案件了:

10137682-bcefed8b20827b5b
image

現在我們已經有了證據,讓我們開始挖掘證據的意義……

類比: 最大池化就像夏洛克的閣樓理論,保留關鍵資訊,拋棄駁雜無用的資訊。

10137682-b0164407a1cb0d61
image

在訓練週期的末尾,夏洛克得到了堆積如山的線索,需要找到一下子檢視所有線索的方式。每條線索不過是一個2維矩陣,但我們有堆疊在一起的數以千計的矩陣。

作為一名私家偵探,夏洛克很擅長應付這樣的混沌,但他需要將證據呈上法庭,整理證據以供陪審團檢視。

10137682-b78bc2320905d810
image

扁平化之前的特徵對映

他通過一種簡單的轉換技術(稱為扁平化)做到了這一點:

  1. 將每個由畫素組成的2維矩陣轉換為一列畫素

  2. 將原本的二維矩陣(現在的一列畫素)一個接一個地排列起來

在人類的眼睛看來,變換是這樣的:

10137682-7b41a5f6f5130372
image

而在計算機看來,是這樣的:

10137682-ef86b4cf3ab301e4
image

現在夏洛克已經整理好證據了,是時候說服陪審團證據清楚地指向一個嫌疑人。

類比:扁平化就像把證據呈上法庭。

10137682-a973a5d0ae6a9d92
image

在全連線層中,我們將方方面面的證據連線起來。某種意義上,我們完成案件的拼圖,向評審團表明證據和每個嫌疑人之間的聯絡:

10137682-a86b68f9c5604049
image

在計算機看來,全連線層是這樣的:

10137682-6269365e3a353766
image

在扁平層的每份證據和3個輸出之前是一組權重和偏置。類似網路中的其他權重,這些值會在剛開始訓練CNN的時候隨機初始化,而隨著時間的推移,CNN將“學習”如何調整這些權重/偏置以得到更精確的預測。

現在,到了夏洛克揭曉謎底的時間了!

類比:全連線層就像說服陪審團下決定。

10137682-f12ef490f3264aa3
image

在CNN的影像分類器階段,模型的預測為得分最高的輸出。模型的目標是讓正確的輸出得分最高,而讓錯誤的輸出得分較低。

評分分為兩部分:

  1. Logit分數——原始得分

  2. Softmax——每個輸出的概率(0-1之間)。所有輸出得分之和等於1

Logit——邏輯得分

每個輸出的Logit得分是一個基本的線性函式:

Logit得分 = (證據 x 權重) + 偏置

每片證據乘以連線證據至輸出的權重。所有乘積相加,最後加上偏置項,得分最高的為模型的猜測。

10137682-b35571afcd584e30
image

所以,為什麼不到此為止?直觀地說,有兩個原因:

  1. 夏洛克的置信度——我們想要知道夏洛克對結果有多自信,這樣,當夏洛克的置信度很高同時他是正確的時候,我們會獎勵他,而在夏洛克的置信度很高同時他是錯誤的時候,我們會懲罰他。我們在下一部分計算損失(“夏洛克的精確度”)時會具體討論獎勵/懲罰。

  2. 夏洛克的置信度加權概率——我們想要能夠方便地解釋這些0到1之間的概率,並且我們想要預測得分和實際輸出(0或1)處於同一尺度。實際正確的結果(Elon)的概率為1,其他錯誤的結果(Jeff和Jon)的概率為0. 將正確輸出轉為一,錯誤輸出轉為零的過程稱為獨熱編碼。

夏洛克的目標是讓他對正確輸出的預測儘可能接近1.

2. Softmax——夏洛克的置信度加權概率得分

2.1 夏洛克的置信度

為了得出夏洛克的置信度,我們以e(等於2.71828…)為底數,以logit得分為指數。這樣,一個較高的得分將變為非常高的置信度,而一個較低的得分將變為非常低的置信度。

這番指數運算同時也確保了我們不會有任何負分(logit得分“可能”是負數)。

10137682-61722d21bb3a8145
image

2.2 夏洛克置信度加權概率

為了得出置信度加權概率,我們將每個輸出置信度除以所有置信度得分之和,這就確保了所有概率之和為1。

10137682-7a352ca4344f0d63
image

softmax分類器很直觀。夏洛克認為有97%(置信度加權)的機率終結者檢視的影像是Elon Musk。

模型的最後一步是計算損失。損失告訴我們偵探夏洛克到底有多棒(或者到底有多糟)。

類比:Logit + Softmax就像檢視一排嫌疑人,並指出罪犯

10137682-6ec41d23c17cea50
image

所有神經網路都有一個損失函式,用來比較預測和實際值。在CNN訓練的過程中,隨著網路權重/偏置的調整,預測改進了(夏洛克的偵探技能變得更厲害了)。

CNN最常用的損失函式是交叉熵。用Google搜尋交叉熵出現的一些解釋都涉及大量希臘字母,很容易讓人困惑。儘管這些描述各不相同,在機器學習的語境下它們都意味著一樣東西,我們下面將介紹最常見的3種解釋,便於你理解。

在描述每種公式變體之前,先概括一下它們的共同點:

  • 比較正確分類的概率(Elon,1.00)和CNN的預測(Elon的softmax得分,0.97)。

  • 當夏洛克對正確分類的預測接近1時(低損失),獎勵他?

  • 當夏洛克對正確分類的預測接近0時(高損失),懲罰他?

10137682-c472c043d2b9d40c
image

結果是一樣的!3種不同的解釋……

1號解釋——衡量實際概率和預測概率的距離

距離捕捉了以下直覺:如果對正確標籤的預測接近1,那麼損失接近0. 如果對正確標籤的預測接近0,那麼將受到嚴厲的懲罰。目標是最小化正確分類的預測(Elon,0.97)和正確分類的實際概率(1.00)的距離。

賞罰“對數”公式背後的直覺將在2號解釋中討論。

10137682-a2c2f76308e45af4
image

2號解釋——最大化log似然或最小化負log似然

在CNN中,“對數”實際上指“自然對數(ln)”,它是softmax中以自然對數為底的指數的逆運算。

對夏洛克遠離1.00的預測而言,相比直接從實際概率(1.00)中減去預測概率(0.97)來計算損失,對數運算將懲罰以指數級別加重了。

最小化負對數似然和最大化對數似然均導向softmax預測趨向1.0,損失趨向0.0的結果。

10137682-9c6a4aa90deb3b30
image
10137682-fd5ca6f5bc589939
image

3號解釋——KL散度

KL(Kullback-Leibler)散度衡量預測概率(softmax得分)和實際概率的差異。

KL散度的公式包括兩部分:

  1. 實際概率的不確定性。

  2. 使用預測概率損失的資訊量。

在監督學習分類問題的模型訓練中,實際概率的不確定性總是等於0. 我們百分之百確定訓練影像的分類無誤。此時,最小化預測概率分佈和實際概率分佈之間的KL散度等價於最小化交叉熵。

10137682-57602b17d0c609d4
image

類比:交叉熵損失就像評估夏洛克的偵探技能。

總結

在夏洛克·卷積·福爾摩斯這位特別的偵探的幫助下,終結者有了一對能夠搜尋並摧毀自由世界的保護者Elon Musk的眼睛(對不住了,Elon!)。

雖然我們僅僅訓練了終結者識別Elon、Jeff、Jon……天網有無窮多的資源,可以隨意訓練影像,因此天網可以利用我們建立的模型訓練終結者識別任何人類和物體。

訂閱郵件列表和分享

如果你喜歡本文,並想收到更多通過Excel進行機器學習的內容,可以訪問excelwithml.com免費訂閱郵件列表。

你也可以在Twitter上關注ExcelwithML。

更多可互動資源

在未來與機器的戰爭中,我們的命運就在你的手中?

相關報導:

https://towardsdatascience.com/cutting-edge-face-recognition-is-complicated-these-spreadsheets-make-it-easier-e7864dbf0e1a

相關文章