如何給非專業人士講解什麼是深度學習?
- 2020 年 3 月 9 日
- 筆記
從根本上說,深度學習和所有機器學習方法一樣,是一種用數學模型對真實世界中的特定問題進行建模,以解決該領域內相似問題的過程。
首先,深度學習是一種機器學習。既然名為「學習」,那自然與我們人類的學習過程有某種程度的相似。回想一下,一個人類小朋友是如何學習的?
人類小朋友是如何學習的?機器又是如何學習的?
比如,很多小朋友都用識字卡片來認字。從古時候人們用的「上大人、孔乙己」之類的描紅本,到今天在手機、平板電腦上教小朋友認字的識字卡片APP,最基本的思路就是按照從簡單到複雜的順序,讓小朋友反覆看每個漢字的各種寫法(大一點的小朋友甚至要學著認識不同的書法字體),看得多了,自然就記住了。下次再見到同一個字,就很容易能認出來。
這個有趣的識字過程看似簡單,實則奧妙無窮。認字時,一定是小朋友的大腦在接受許多遍相似影像的刺激後,為每個漢字總結出了某種規律性的東西,下次大腦再看到符合這種規律的圖案,就知道是什麼字了。
其實,要教電腦認字,差不多也是同樣的道理。電腦也要先把每一個字的圖案反覆看很多很多遍,然後,在電腦的大腦(處理器加上存儲器)里,總結出一個規律來,以後電腦再看到類似的圖案,只要符合之前總結的規律,電腦就能知道這圖案到底是什麼字。
用專業的術語來說,電腦用來學習的、反覆看的圖片叫「訓練數據集」;「訓練數據集」中,一類數據區別於另一類數據的不同方面的屬性或特質,叫做「特徵」;電腦在「大腦」中總結規律的過程,叫「建模」;電腦在「大腦」中總結出的規律,就是我們常說的「模型」;而電腦通過反覆看圖,總結出規律,然後學會認字的過程,就叫「機器學習」。
到底電腦是怎麼學習的?電腦總結出的規律又是什麼樣的呢?這取決於我們使用什麼樣的機器學習演算法。
有一種演算法非常簡單,模仿的是小朋友學識字的思路。家長和老師們可能都有這樣的經驗:小朋友開始學識字,比如先教小朋友分辨「一」、「二」、「三」時,我們會告訴小朋友說,一筆寫成的字是「一」,兩筆寫成的字是「二」,三筆寫成的字是「三」。這個規律好記又好用。但是,開始學新字時,這個規律就未必奏效了。比如,「口」也是三筆,可它卻不是「三」。我們通常會告訴小朋友,圍成個方框兒的是「口」,排成橫排的是「