農林漁牧網

您現在的位置是:首頁 > 農業

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

2023-01-02由 一米與七月 發表于 農業

如何構建人工神經網路

直接閱讀技術類的教材是困難的,理論的密集程度常常令人生畏,而Welch Labs的影片用有趣的短片形式,以達到教學的目的,並結合相關資源介紹技術背景,使你能熟練掌握主題。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

而本文介紹的系列影片,將帶領大家使用Python構建和訓練一個完整的人工神經網路。

1。資料+架構

要想使用一種機器學習的方法,我們首先需要資料。獲取到資料後,我們會使用程式語言Python,在二維numpy庫裡儲存資料。資料準備好後,就可以用它訓練一個模型了。機器學習中有大量的模型,本文訓練的是當前特別火的人工神經網路。

Ps:把資料放進模型之前,我們需要考慮資料單位間的差異。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

2。正向傳播

上一節我們建立了神經網路,這次我們將用Python程式語言來實現它。

對深度學習模型按照輸入層、靠近輸入層的隱含層、靠近輸出層的隱含層和輸出層的次序,依次計算並存儲模型的中間變數叫做正向傳播(forward-propagation)。在本節中,我們介紹如何使用Python實現正向傳播。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

3。梯度下降

本節重點放在如何改進神經網路,使預測更準確。

梯度下降法,是當今最流行的最佳化(optimization)演算法,亦是至今最常用的最佳化神經網路的方法。本影片透過舉例,介紹了梯度下降是如何最佳化神經網路的。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

4。反向傳播

反向傳播(back-propagation)是計算深度學習模型引數梯度的方法。總的來說,反向傳播中會依據微積分中的鏈式法則,按照輸出層、靠近輸出層的隱含層、靠近輸入層的隱含層和輸入層的次序,依次計算並存儲模型損失函式的得分與引數梯度。

反向傳播可能比較簡單,但不會太簡單。反向傳播中的錯誤是讓神經網路學習的關鍵。在這個影片中,用高中數學水平淺顯易懂地介紹了反向傳播背後的推導和思考過程。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

5。數值梯度檢查

當構建複雜的系統,如神經網路時,檢查部分工作可以避免以後許多問題。在這裡,我們將藉助對導數的簡單理解和一些小技巧來檢查梯度計算部分。

如果程式碼通過了這個測試,那可以確信,我們已經正確地計算和編碼了梯度。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

6。訓練

經過以上工作,現在是時候訓練神經網路了。我們將使用BFGS數值最佳化演算法並檢視結果。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

7。過擬合,測試和正則化

我們已經建立並訓練了神經網路,但是在開香檳慶祝之前,還要保證我們的模型適用於現實世界。

實踐中,如果測試資料集是給定的,我們通常用機器學習模型,在該測試資料集上的誤差來表示泛化誤差。基於上述重要結論,以下兩種擬合問題值得注意:

欠擬合:機器學習模型無法得到較低訓練誤差。

過擬合:機器學習模型的訓練誤差遠小於其在測試資料集上的誤差。

我們要儘可能同時避免欠擬合和過擬合的出現。可以使用正則化來應對過擬合問題。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路

想 要 視 頻 請 舉 手

—完—

親愛的朋友:

本週的充電時間,分享一個有趣且相對簡單的系列短片。希望能對你有所幫助。

祝安!

智慧觀 一米

2018-4-18 於北京中關村

宣告

編譯文章旨在幫助讀者瞭解行業新思想、新觀點及新動態,為原作者觀點,不代表智慧觀觀點。

極簡機器學習課程:使用Python構建和訓練一個完整的人工神經網路