熱線電話:13121318867

登錄
首頁精彩閱讀用11個事實為8歲女兒解讀深度學習
用11個事實為8歲女兒解讀深度學習
2019-08-28
收藏
用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

作者 | Jean-Louis Queguiner

來源 | 機器之心

神經網絡就像數數一樣簡單」,「卷積層只是一個蝙蝠信號燈」……在本文中,一位奶爸從手寫數字識別入手,用這樣簡單的語言向自己 8 歲的女兒解釋了一下「深度學習」。當然,用這篇文章向女朋友(如果有的話)科普自己的工作也是可以的。

機器學習,尤其是深度學習是一個熱門話題,你肯定會在媒體上看到流行語「人工智能」。

然而,這些并非新概念。第一個人工神經網絡(ANN)是在 40 年代引入的。那么為什么最近的熱點話題都是關于神經網絡深度學習的呢?我們將在 GPU 和機器學習的一系列博客文章中探討這些概念。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

在 80 年代,我記得我父親構建了用于銀行支票的字符識別工具。檢查這么多不同類型的筆跡真的是一件痛苦的事,因為他需要一個方程來適應所有的變化。

在過去幾年中,很明顯,處理這類問題的最佳方法是通過卷積神經網絡。人類設計的方程不再適合處理無限的手寫模式。

讓我們來看看最經典的例子之一:構建一個數字識別系統,一個識別手寫數字的神經網絡。

事實 1:神經網絡就像數數一樣簡單

我們首先計算最上面一行的紅色形狀在每個黑色手寫數字中出現了幾次。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲手寫數字的簡化矩陣

現在讓我們嘗試通過計算具有相同紅色形狀的匹配數來識別(推斷)新的手寫數字。然后我們將其與之前的表格進行比較,以確定這個數字與哪個數字有最強的關聯:

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲匹配手寫數字的形狀

恭喜!你剛剛構建了世界上最簡單的神經網絡系統,用于識別手寫數字。

事實 2:圖像只是一個矩陣

計算機將圖像視為矩陣。一張黑白圖像是個 2D 矩陣。

我們來考慮一張圖像。為了簡單起見,我們拍攝一張數字 8 的小黑白圖像,方形尺寸為 28 像素。

矩陣的每個單元表示從 0(表示黑色)到 255(表示純白色像素)的像素強度。

因此,圖像將表示為以下 28×28 的像素矩陣。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲手寫數字 8 的圖像和相關的強度矩陣

事實 3:卷積層只是一個蝙蝠信號燈

為了確定圖片中顯示的圖案(此處指手寫數字 8),我們將使用一種蝙蝠信號燈/手電筒。在機器學習中,手電筒被稱為過濾器(filter)。該過濾器用于執行 Gimp 等常見圖像處理軟件中用到的經典卷積矩陣計算。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

過濾器將掃描圖片,以便在圖像中找到圖案,并在匹配成功時觸發正反饋。它有點像兒童形狀分類盒:三角形過濾器匹配三角形孔,方形過濾器匹配方孔等。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲圖像過濾器像兒童形狀分類盒一樣工作。

事實 4:過濾器匹配是一項易并行任務

更科學地來講,圖像過濾過程看起來有點像下面的動畫。如你所見,過濾器掃描的每個步驟都是相互獨立的,這意味著此任務可以高度并行化。

要注意,數十個過濾器將同時運行,因為它們不相互依賴。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

事實 5:盡可能多次重復過濾操作(矩陣卷積)

我們剛剛看到,輸入圖像/矩陣使用多個矩陣卷積進行過濾。

為了提高圖像識別的準確率,只需從前一個操作中獲取過濾后的圖像,然后一次又一次地過濾......

當然,我們過分簡化了一些事情,但通常你使用的過濾器越多,按順序重復這個操作的次數越多,你的結果就越精確。

這就像創建新的抽象層以獲得更清晰的對象過濾器描述,從原始過濾器到看起來像邊緣、輪子、正方形、立方體等的過濾器......

事實 6:矩陣卷積只是乘、加運算

一圖勝千言:下圖是使用卷積過濾器(3×3)過濾的源圖像(8×8)的簡化視圖。手電筒(此處為 Sobel Gx 過濾器)的投影提供一個值。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲應用于輸入矩陣的卷積過濾器(Sobel Gx)示例

這就是這種方法的神奇之處,簡單的矩陣運算是高度并行化的,完全符合通用圖形處理單元的用例。

事實 7:需要簡化和總結檢測到的內容嗎?只需使用 max()

我們需要總結過濾器檢測到的內容,以便學到概括性的知識。

為此,我們將對先前過濾操作的輸出進行采樣。

此操作稱為池化或下采樣,但實際上它是為了減小矩陣的大小。

你可以使用任何縮小操作,例如:最大化,最小化,取平均值,計數,取中位數,求和等等。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲最大池化層示例

事實 8:將輸出扁平化,得出最終結果

不要忘記我們正在研究的神經網絡的主要目的:建立一個圖像識別系統,也稱為圖像分類。

如果神經網絡的目的是檢測手寫數字,那么輸入圖像最后將被映射到 10 個類:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。

要在通過所有這些過濾器和下采樣層之后,才將此輸入映射到類,我們將只有 10 個神經元(每個神經元代表一個類),每個神經元將連接到最后一個子采樣層。

以下是由 Yann Lecun 設計的原始 LeNet-5 卷積神經網絡的概述,他是早期采用該技術進行圖像識別的人之一。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲原始論文中的 LeNet-5 架構

事實 9:深度學習只是基于反饋回路的持續改進

技術之美不僅來自卷積,而且來自網絡自身學習和適應的能力。通過實現名為反向傳播的反饋回路,網絡將使用權重來減輕和抑制不同層中的一些「神經元」。

我們來看看網絡的輸出,如果猜測(輸出 0, 1, 2, 3, 4, 5, 6, 7, 8 或 9)是錯誤的,我們要看一下是哪個/些過濾器「出了錯」,找到之后,我們給這個/些過濾器一個小小的權重,這樣它們下次就不會犯同樣的錯誤。瞧!系統在學習并不斷改進自己。

事實 10:這一切都說明,深度學習是易并行過程

提取數千個圖像,運行數十個過濾器,采用下采樣,扁平化輸出...... 所有這些步驟可以并行完成,這使得系統易于并行。它只是 GPGPU(通用圖形處理單元)的完美用例,非常適合大規模并行計算。

事實 11:需要更精確?那網絡就再深一點

當然這有點過于簡單化,但如果我們看一下主要的「圖像識別競賽」,即 ImageNet 挑戰,我們就可以看到錯誤率隨著神經網絡的深度增加而降低。人們普遍認為,排除其他因素,網絡深度的增加將帶來更好的泛化能力和準確性。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲Imagenet 挑戰賽獲勝者錯誤率 VS 網絡中的層數

結論

我們簡要介紹了應用于圖像識別的深度學習概念。值得注意的是,幾乎所有用于圖像識別的新架構(醫療、衛星、自動駕駛......)都使用相同的原理,只是具有不同數量的層,不同類型的濾波器,不同的初始化點,不同的矩陣大小,不同的技巧(如圖像增強、dropout、權重壓縮...)。概念都是一樣的:

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲手寫數字識別過程

深度學習模型的訓練和推理可以歸結為并行完成的大量基本矩陣運算,確切地說,這正是我們已有的圖形處理器(GPU)的用途。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢