06.20 揭祕:機器究竟是怎麼學習的?

揭秘:機器究竟是怎麼學習的?

摘要:從算法的角度看,機器學習有很多種算法,例如迴歸算法、基於實例的算法、正則化算法、決策樹算法、貝葉斯算法、聚合算法、關聯規則學習算法和人工神經網絡算法。

從算法的角度看,機器學習有很多種算法,例如迴歸算法、基於實例的算法、正則化算法、決策樹算法、貝葉斯算法、聚合算法、關聯規則學習算法和人工神經網絡算法。很多算法可以應用於不同的具體問題;很多具體的問題也需要同時應用好幾種不同的算法。由於篇幅有限,我們僅介紹其中(可能是公眾心目中名氣最大的)一種:人工神經網絡。

人工神經網絡:

既然人工智能要模擬人類的思考過程,一些人工智能科學家想,不如我們先看看人類是怎樣思考的吧?

人類的大腦是一個複雜的神經網絡。它的組成單元是神經元。每一個神經元看起來很簡單,它們先接收上一個神經細胞的電信號刺激,再向下一個神經細胞發出電信號刺激。

揭秘:機器究竟是怎麼學習的?

別看神經元細胞很簡單,但如果神經元的數量很多,它們彼此之間的連接恰到好處,變成神經網絡,就可以從簡單中演生出複雜的智能來。例如,人類的大腦中含有1千億個神經元,平均每個神經元跟其他的神經元存在7000個突觸連接。一個三歲小孩大腦中,大約會形成1千萬億個突觸。隨著年齡的增長,人類大腦的突觸數量會逐漸減少。成年人的大腦中,大約會有1百萬億到5百萬億個突觸。

揭秘:機器究竟是怎麼學習的?

雖然科學家還沒有完全搞清楚人類大腦的神經網絡的運作方式,但人工智能科學家想,不理解沒關係,先在計算機中模擬一組虛擬的神經網絡試試看,這就是人工神經網絡。

揭秘:機器究竟是怎麼學習的?

在人工神經網絡中,每一個小圓圈都是在模擬一個“神經元”。它能夠接收從上一層神經元傳來的輸入信號(也就是一堆數字);根據不同神經元在它眼中的重要性,分配不同的權重,然後將輸入信號按照各自的權重加起來(一堆數字乘以權重的大小,再求和);接著,它將加起來結果代入某個函數(通常是非線性函數),進行運算,得到最終結果;最後,它再將這個結果輸出給神經網絡中的下一層神經元。

揭秘:機器究竟是怎麼學習的?

人工神經網絡中的神經元看起來很簡單,只知道傻傻地將上一層神經元的輸入數據進行簡單的運算,然後再傻傻地輸出。沒想到這一套還真的很管用,運用一系列精巧的算法,再給它投餵大量的數據之後,人工神經網絡居然能夠像人腦的神經網絡一樣,從複雜的數據中發現一系列“特徵”,產生“聰明的思考結果”。

那麼人工神經網絡是怎麼學習的呢?所謂的學習,本質上是讓人工神經網絡嘗試調節每一個神經元上的權重大小,使得整個人工神經網絡在某一個任務的測試中的表現達到某個要求(例如,識別汽車的正確率達到90%以上)。

請回憶一下前面講過的“梯度下降法”。人工神經網絡嘗試不同的權重大小,相當於在一個參數空間的地圖上四處遊走。每一種權重的組合對應的人工神經網絡執行任務時的錯誤率,相當於這個地圖上的每一點都有一個海拔高度。尋找一組權重,使得人工神經網絡的表現最好,錯誤率最低,就相當於在地圖上尋找海拔最低的地方。所以,人工神經網絡的學習過程,常常要用到某種“梯度下降法”,這就是為什麼如果將來你要學習人工智能,第一個要掌握的就是“梯度下降法”。

揭秘:機器究竟是怎麼學習的?

揭秘:機器究竟是怎麼學習的?

機器學習的分類:

從學習風格的角度看,機器學習有很很多種學習方法,我們簡要地列舉其中幾種方法:監督學習、非監督學習、強化學習和遷移學習。

監督學習:

比方說,你想教計算機如何識別一張照片上的動物是不是貓。你先拿出幾十萬張動物的照片,凡是有貓的,你就告訴計算機有貓;凡是沒有貓的,你就告訴計算機沒有貓。也就是說,你預先給計算機要學習的數據進行了分類。這相當於你監督了計算機的學習過程。

揭秘:機器究竟是怎麼學習的?

經過一段監督學習的過程之後,如果你再給計算機看照片,它就能認出照片中有沒有貓。

揭秘:機器究竟是怎麼學習的?

非監督學習:

比方說,你想教計算機區分貓和狗的照片。你拿出幾十萬張貓和狗的照片(沒有其他動物)。你並不告訴計算機哪些是貓,哪些是狗。也就是說,你沒有預先給計算機要學習的數據進行分類,所以你並沒有監督計算機的學習過程。

揭秘:機器究竟是怎麼學習的?

經過一段監督學習的過程之後,計算機就能把你輸入的照片按照相似性分成兩個大類(也就是區分了貓和狗)。只不過計算機只是從數字照片的數學特徵的角度進行了分類,而不是從動物學的角度進行了分類。

揭秘:機器究竟是怎麼學習的?

強化學習:

比方說,你想教計算機控制一隻機械臂打乒乓球。一開始,計算機控制機械臂像傻瓜一樣,拿著球拍做很多隨機的動作,完全不得要領。

揭秘:機器究竟是怎麼學習的?

但是,一旦機械臂湊巧接到一個球,並把球擊打到對手的球桌上,我們就讓計算機得一分,這叫做獎勵。一旦機械臂沒有正確地接到球、或沒有把球擊打到正確的位置上,我們就給計算機扣一分,這叫做懲罰。經過大量的訓練之後,機械臂漸漸地從獎勵和懲罰中,學會了接球、擊打球的基本動作。

揭秘:機器究竟是怎麼學習的?

遷移學習:

比方說,你讓計算機學會了控制機械臂打乒乓球之後,又叫它學習打網球。這個時候,你不需要讓計算機從零開始重新學,因為乒乓球和網球的規則是相似的。例如,這兩種球都要把球擊打到對方的球場/球桌上。所以,計算機可以將之前學到的動作遷移過來。這樣一種學習,就叫做遷移學習。

揭秘:機器究竟是怎麼學習的?


分享到:


相關文章: