STEAM在線
以下文章來源於大小孩er ,作者墨先sen
大小孩er
創新教育產品經理&學習科學研究僧
CrashCourse AI系列課程第4集:訓練神經網絡;
依舊是人類主持人Jabril和他的AI機器人John Green Bot.
上回說到,製作人工大腦的方法是用神經網絡,試用數百萬個神經元,神經元之間有十億或萬億各個連接。
當今的一些神經網絡又快又大,能夠比人類更好地完成一些諸如下棋和預測天氣等任務。
但是,僅僅搭建一個空的神經網絡是不夠的,神經網絡還需要通過犯錯來學習。
01
—
基本概念
神經網絡用一個叫「反向傳播」的算法來處理錯誤,確保所有導致錯誤的神經元會被重新調整權重。神經網絡有兩大部分:結構和權重。
結構:包括神經元和它們之間的連接。
權重:用於在計算時精確調整數字。
所以如果神經網絡犯錯誤,一般是因為權重沒有調對。我們就要更新權重,讓它下次表現更好。給神經網絡找到最佳權重的任務叫「優化」。
02
—
最佳擬合
下面的例子幫助理解「優化」的基本原則。
假設我管理著一個遊泳池,我想預測下周會有多少人來,以方便安排足夠多的救生員。
一個簡單方法是畫個圖,比如在過去幾周裡,每天來了多少人,當天的華氏溫度是多少。然後在圖裡尋找模式來進行預測。計算機可以用一種優化策略叫「線性回歸」。
我們先畫一條隨機直線,勉強算是擬合了一部分數據點。
為了進行優化,需要量化它的錯誤程度。
所以我們計算每個數據點到線之間的距離,把他們加起來,就得到了錯誤值。
線性回歸的目標是調整直線,使錯誤值儘可能地小。
我們希望這條線儘可能擬合訓練數據。這條線就叫「最佳擬合線」。我們可以用這條線預測任意溫度下有多少人會來遊泳。
但是,這條線有一部分很不合理。例如,超冷的天氣,來的人會是負數。而超熱的天氣,來的人比泳池能容納的還多。
為了讓結果更加準確,我們可能需要兩個以上的特徵。比如加上溼度數據,把途從2D變成3D,最佳擬合線就變成了最佳擬合面。
但假設我們加上第四個特徵,比如那天有沒有下雨,就無法將它可視化了。
特徵越多,圖的維度越多,更難優化,更難擬合訓練數據。這時候用「神經網絡」就方便了。
03
—
反向傳播
把很多神經元連在一起,運算時帶一個權重值,神經網絡可以學會如何解決複雜問題。其中的最佳擬合線變成了一個奇怪的多維函數。
我們給John Green Bot一個沒有訓練過的神經網絡,還是遊泳池的例子,這次特徵用溫度、溼度、是否下雨等等,輸出層預測來泳池的人數。
(先不考慮如何設計這個神經網絡的結構,只關心權重。)
和往常一樣,權重值一開始是隨機數,這次不是一條線,因為有很多輸入,所以是一個大函數,複雜到無法可視化,類似於很多奇怪的多維圖形,甚至沒法給它取名。
為了訓練神經網絡,我們給John green Bot過去10天的遊泳池數據,從第一天開始,溫度華氏80度,溼度65%,沒下雨(用0表示)。
神經元會把特徵值乘以權重,把結果相加傳到隱藏層,直到輸出神經元得到答案。
(這時John Green Bot預測泳池有145個人)。
神經網絡的輸出結果和實際人數有差異,當天實際來了100個人。因為只有一個輸出神經元,錯誤值差異是45人。
然而,其他一些神經網絡,輸出層有多個神經元,預測的答案和正確的答案之間區別不只是一個數字,這種情況下,可以用「損失函數」來表示錯誤值。
接下來,我們調整權重,讓它下次更加準確。機器人通過錯誤來學習,就像之前的感知器程序通過按鈕來監督學習。但由於神經網絡很複雜,這次沒法這樣做了。
為了幫助神經網絡學習,科學家和數學家提出了一種算法叫「誤差反向傳播」,簡稱「反向傳播」。
通過損失函數,看前一層裡哪些神經元犯的錯、看哪些神經元對錯誤結果的影響大一些,所以他們的權重調整的更多。
因為信息是向後傳遞的,所以叫「反向傳播」:輸出神經元將誤差返回到前一層,並根據誤差調整權重,而隱藏層神經元把誤差返到前一層調整應用於特徵的權重。
04
—
優化
我們的目標是找到權重的最佳組合,使得誤差最小。
用一個比喻來解釋優化。
想像一下,神經網絡中的權重就像地圖上的維度和經度坐標。神經網絡的誤差值是高度——越低越好。探險家John Green bot在找山谷最低點。最低點的誤差值最小,是神經網絡全局最優解的權重。
但是,John Green Bot不知道山谷最低點在哪兒,通過隨機設定初始權重,就像把它隨意扔到叢林裡。它只知道自己現在的經度、緯度和高度。也許運氣足夠好,剛好在最深處的附近,運氣不好就在很遠的山頂。
唯一的辦法是去探索。叢林太密,很難看得很遠,John Green Bot的最好方案是看看周圍並做一些猜測。
它注意到往東北方向移動可以往下一點,所以它走了一步,並更新緯度和經度。在這個新的文職,它環顧四周,走了一步,再次降低高度。走一步,再走一步,每走一步都更新坐標並降低高度。最後,John GreenBot環顧四周,發現不能再降低高度了,它因找到最低點而開始慶祝。
但它可能高興得太早了。如果看整個的地圖,我們可以看到John Green Bot只找到了一個小峽谷,比剛開始低很多,但還不是山谷的最低點。它找到了一個「局部最優解」,誤差值較小,但不是最小的。
反向傳播和學習總會有很多小步驟。對任何神經網絡來說,優化都是困難的。
繼續之前的例子,把優化比喻成探索地圖,我們永遠無法確定是否在朝正確方向前進,是否已經到了最低處的山谷(也就是全局最優解)。
但是我們可以使用一些技巧,比如,把探險家隨便放在地圖上時,它可能距離最低點很遠,中間隔了一條巨大的山脈。所以,我們可以多試幾個隨機起點,確保神經網絡不會陷入局部最優解。
或者扔很多個探險家,同時探索。如果計算機有很多個處理器,同時探索是非常有用的。
我們還可以調整探險家的步長,讓它直接跨過小山坡。一步的大小叫「學習速率」,它是神經元在每次反向傳播時,權重調整的程度。
我們總是在找更有創意的方法來解決問題:嘗試不同權重組合,讓損失函數最小化。
05
—
過擬合
但是,就算用了大量訓練數據和反向傳播找全局最優解,也只解決了一半問題。另一半是檢查AI能否回答新問題:解決見過的問題很容易,就像直到答案之後去考試,也許能拿到高分,但實際上沒學到什麼。要測試是否真正學會了,要解決沒有見過的問題。神經網絡也是如此。
剛才,John Green Bot用泳池數據來預測遊泳人數,有幾十個特徵:如溫度、溼度、是否下雨、星期幾、風速、草有多長、泳池邊的蝴蝶數量以及救生員的平均GPA。只要計算機能頂得住,數據越多,越好找模式和提高準確度。
隨著學習,反向傳播會調整神經元的權重使得神經網絡的輸出和訓練數據匹配。這叫「擬合訓練數據」。
因為特徵很多,是找一個多維函數來擬合。有時,「反向傳播」讓神經網絡擬合得太好了,大的數據集中有很多巧合關係。比如緬因州地離婚率和美國人造黃油的消費相關、滑雪收入和困在床單中死亡的人數相關。
神經網絡很擅長尋找這類相關關係,但可能會導致問題。如果我們給神經網絡一些新數據,新數據不符合這些愚蠢的相關性,它可能會產生一些奇怪的錯誤。這種問題叫「過擬合」。
防止過擬合最容易的方法是讓神經網絡的結構保持簡單。如果重新訓練John Green Bot的遊泳池人數的預測程序,這次不輸入青草地長度和蝴蝶地數量等數據,發現結果的準確度沒有變化,那麼最好忽略這些特徵。
所以,神經網絡的訓練不光是一堆數學問題,還要考慮如何將手上的問題用最合適的特徵來表示,以及考慮程序可能會犯哪些錯誤。
(完整視頻)
06
—
下集預告
下節課(如果還有下節課的話)是本課程的第一個上手實驗,我們會應用學過的知識,一起做一個神經網絡。
關聯閱讀:
CrashCourse AI系列課程:AI概述
CrashCourse AI系列課程第1集:什麼是AI
CrashCourse AI系列課程第2集:監督學習
CrashCourse AI系列課程第3集:神經網絡和深度學習
(聲明:除STEAM在線原創文章外,STEAM在線分享和轉載的文章皆為促進STEAM教育在中國的傳播,僅做學習交流,非商業用途,都會註明來源,如文章、照片的原作者有異議,請聯繫後臺快速處理或刪除,謝謝支持。)
STEAM在線交流群
1000+老師、家長,優質教育內容推薦
長按二維碼聯繫
重磅 | 教育部:2023年前將實驗操作納入考試,積極探索跨學科(STEAM)教育
沙有威專欄 | 再論中小學智慧機器人教育與競賽
於曉雅專欄 | STEM教育融入綜合實踐活動應避免的誤區辨析
獨家 | 徵集100萬條留言,著名創客教育專家吳俊傑倡導設立「世界編程日」
峰會 | STEAM教育國際峰會在同濟大學召開,中外專家論道創新教育
更多STEAM教育資訊,請點擊「閱讀原文」
點個「在看」,表示朕已閱閱讀原文
原標題:《CrashCourse AI系列課程第4集:訓練神經網絡》
閱讀原文