摘要:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E對於每次迭代k,可以使用以下損失(似然)函數來推導導數:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe0a1df425d8f49e4bad8724522db1dab\" img_width=\"460\" img_height=\"76\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這是完整損失函數的近似值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ELogistic迴歸通過logistic函數來對P(y=1)建模:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F39826421669f490b8cb3baad59c0e525\" img_width=\"515\" img_height=\"79\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這樣,模型就能用S型曲線預測P(y=1),這也是logistic函數的基本形狀。

"\u003Cdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F527c4561c93642998ff0d3bb427a9ee6\" img_width=\"640\" img_height=\"86\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E作者:Matthew Stewart\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E翻譯:車前子\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E校對:陳丹\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E本文約\u003Cstrong\u003E5500字\u003C\u002Fstrong\u003E,建議閱讀12分鐘。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E本文的知識將提供一個強有力的基礎,帶你入門神經網絡的性能,應用於深度學習應用。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E“你的大腦並不產生思想。你的思想塑造了神經網絡。”——Deepak Chopra\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fcb2ab45ab344416bac7ef6533b5e9b92\" img_width=\"469\" img_height=\"264\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E引文\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EJ. Nocedal y S. Wright, “Numerical optimization”, Springer, 1999\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ETLDR: J. Bullinaria, “Learning with Momentum, Conjugate Gradient Learning”, 2015\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E作爲闡明神經網絡背後的理論以及如何設計和實現神經網絡系列文章的第一篇,本文力求向更廣泛的受衆羣體詳細、深入的介紹神經網絡,使對神經網絡的工作幾乎一無所知,或相對熟悉但可能還沒有完全掌握的讀者都能從中獲益。我將在這篇文章中介紹神經網絡的動機和基礎知識。在以後的文章中將對神經網絡和深度學習的設計和優化進行更深入的討論。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E本系列教程大部分基於哈佛和斯坦福的計算機科學及數據科學系的課程。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E不論你之前對神經網絡有多少了解,都希望你能愉快的看完這篇文章並學到一點知識。現在我們開始吧!\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E神經網絡的動機\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E沒有訓練過的神經網絡就像剛出生的嬰兒:他們對於世界還一無所知(就白板理論而言),只有通過與世界的接觸,如獲得後驗知識,才能慢慢改變他們的無知。算法則是通過數據感受世界——我們通過基於相關數據集訓練神經網絡來改變它的無知。在這個過程中我們評價的方法是監測神經網絡產生的錯誤。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在深入神經網絡的世界前,瞭解神經網絡背後的動機,並理解它們的工作原理是很重要的。爲此我們先簡要介紹一下logistic迴歸。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E迴歸是針對定量響應變量(出租車乘客數量,自行車租賃數量)建模並預測的方法,如嶺迴歸、LASSO等。當響應變量是分類變量,這個問題就不再叫做迴歸問題,而被稱爲分類問題。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們來考慮一個二分類問題。目標是基於一系列預測變量X,將每一個觀測分到定義爲Y的類別(如某一級別或集羣)中。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如我們可能會根據病人的特徵預測其是否有心臟病。這裏的響應變量是分類變量的,只有有限個結局,更明確的說,只有兩個結局,因爲響應變量是二分類的(是\u002F否)。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa028a3354c5f40dc9f02d8332cc2d1f2\" img_width=\"501\" img_height=\"219\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E 這裏實際有很多特徵,但現在我們只使用MaxHR。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E 爲了做出預測,我們使用logistic迴歸。Logistic迴歸通過估計患者在給定X值時患心臟病的可能性P(y=1),來解決這個問題。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ELogistic迴歸通過logistic函數來對P(y=1)建模:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F39826421669f490b8cb3baad59c0e525\" img_width=\"515\" img_height=\"79\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這樣,模型就能用S型曲線預測P(y=1),這也是logistic函數的基本形狀。β0控制曲線右移或左移c=-β0\u002Fβ1,而β1控制S型曲線的陡峭度。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E注意,如果β1是正數, P(y=1)預測值隨着X取值由小到大而從0到1變化,如果β1是負數,二者關係則相反。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E作圖總結如下:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F3356f610b062460f8f234a03cf02b676\" img_width=\"459\" img_height=\"333\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E既然我們明白了怎麼控制logistic迴歸曲線,我們就可以通過調整一些變量來得到我們想要的曲線。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們可以改變β0來移動曲線的偏移量。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F9c76ae78c5ee4c71ac04e03fbb752e59\" img_width=\"389\" img_height=\"382\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E我們可以調整β1來改變曲線的梯度\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fc22139cf63b54f07966d428edbf160bb\" img_width=\"401\" img_height=\"393\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E 手工做這些事情太無聊了,而且你也很難調整到理想的取值。爲解決這個問題我們用一個損失函數來量化基於目前參數產生殘差的水平。然後尋找能夠最小化損失函數的參數值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E因此神經網絡的參數與網絡生成的錯誤有關,當參數改變時,錯誤也會改變。我們用於調整參數的優化函數叫做\u003Cstrong\u003E梯度下降\u003C\u002Fstrong\u003E,這在尋找函數最小值時非常有用。我們希望能最小化錯誤,這也被叫做\u003Cstrong\u003E損失函數\u003C\u002Fstrong\u003E或\u003Cstrong\u003E目標函數\u003C\u002Fstrong\u003E。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F0011acb7398a4fb3b875b808ac3bcce5\" img_width=\"502\" img_height=\"345\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E那麼以上這些內容有什麼意義,和神經網絡又有什麼關聯呢?實際上我們所做的與神經網絡算法所做的本質是相同的。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們在剛剛的模型中僅使用了一個特徵,在神經網絡中,我們可以使用多個特徵。對於每一個特徵都可以設置權重和誤差項,這兩部分結合起來就是迴歸參數。根據預測結果是連續變量或分類變量,公式可能略有差異。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F5c3de7a66b65436bb987dd3621f4594a\" img_width=\"554\" img_height=\"257\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F997c751a8f6e46e6acbad55ed942e93d\" img_width=\"551\" img_height=\"266\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E當我們討論神經網絡的權重時,實際討論的是傳入函數的迴歸參數。傳入函數的結果傳遞給激活函數,由激活函數決定這個結果是否足夠“點燃”神經節點。在下一篇文章中,我將更詳細地討論不同種類的激活函數。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E現在我們建立了一個由多個logistic迴歸和四個特徵組成的簡單神經網絡。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E爲了開始更新和優化參數,我們需要從任意的值公式開始,我們將在每次更新後評估損失函數並執行梯度下降。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們首先要做的是設置隨機選擇的權重。在我們的心臟數據中,隨機權重很可能表現得很糟糕,模型會因此給出錯誤的答案。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然後我們通過懲罰表現不佳的網絡來“訓練”網絡\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fc31928e34f2a476db6afa33ce151a961\" img_width=\"554\" img_height=\"180\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F4ab2647a345041cfbb552d36a0c3a57a\" img_width=\"563\" img_height=\"201\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然而,僅僅告訴計算機它的性能是好是壞並沒有什麼幫助。你需要告訴它如何改變這些權重才能提高模型的性能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們已經知道如何告訴計算機網絡的預測性能良好,這隻需要看看我們的損失函數。但是現在這個過程更復雜了,因爲我們有5個權重要處理。首先我只考慮一個權重,因爲這個過程對於所有的權重都是類似的。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E理想情況下,我們需要知道能夠讓ℒ(w)達到最小值的w。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F85e8b28c281f468bb626e078a6bda857\" img_width=\"416\" img_height=\"285\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E爲了找到ℒ(w)的最優點,我們可以將ℒ(w)相對於權重w求微分,並使其爲0。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F62552fde680d41b18d75c3bbea6b6489\" img_width=\"121\" img_height=\"63\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然後我們需要找到一個滿足這個等式的w,但有時候這個問題沒有顯式解。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E一個更靈活的方法是選擇任意一個起點,並確定在哪一個方向上減少損失(當前情況下是選擇向左還是向右)。具體來說,我們可以計算出函數在這一點上的斜率。如果斜率爲負,則向右移動;如果斜率爲正,則向左移動。然後重複此過程,直到收斂。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F041c4e5787fb44c68c76ea7798015c25\" img_width=\"429\" img_height=\"322\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如果步長與斜率成正比,就可以避免錯過最小值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如何執行這樣不斷更新的過程呢?這是使用一種稱爲梯度下降的方法完成的,這在前面已經簡單地提到過。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E梯度下降\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E梯度下降是求函數最小值的一種迭代方法。有各種的梯度下降方法,我將在後面的文章中詳細討論這些內容。這篇博客介紹了更新權重的不同方法。現在,我們將繼續使用普通的梯度下降算法,有時也被稱爲\u003Cstrong\u003Edelta規則\u003C\u002Fstrong\u003E。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們知道要朝着導數的相反方向前進(因爲我們正試圖“遠離”誤差),並且希望步長與導數成比例。步長由一個稱爲學習速率的參數λ控制。我們的新權重是舊權重和新步長相加之和,其中步長是從損失函數派生出來的,這就表明相關參數在影響學習率方面有多重要(因此是導數)。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F76aaf44a00cb4542b25f7d6554c78091\" img_width=\"495\" img_height=\"220\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb5ac940a4059477096b046c166661ce9\" img_width=\"449\" img_height=\"203\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E學習率越大,導數的權重就越大,這樣算法的每次迭代步長都較大。學習率較小,導數的權重也較小,因此每次迭代步長較小。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如果步長太小,算法收斂時間會很長,如果步長太大,算法會不斷錯過最優參數。顯然,在建立神經網絡時,學習率是一個重要的參數。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fd61c892812e34042b526775976053337\" img_width=\"410\" img_height=\"439\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E梯度下降需要考慮以下幾個問題:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E 我們仍然需要推導導數。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E我們需要知道學習率是多少或如何設置。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E我們需要避免局部極小值。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E最後,完整的損失函數包括所有單個“誤差”的總和。這可以是數十萬個像上面例子一樣的函數。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E現在導數的推導是用自動微分法來完成的,所以這對我們來說不是問題。然而,決定學習率是一個重要而複雜的問題,我將在後面的教程中討論。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E對於神經網絡來說,局部最小值是一個非常棘手的問題,因爲神經網絡的公式並不能保證我們能達到全局最小值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F9d8a8d54836d47f8852a01807ee23192\" img_width=\"389\" img_height=\"311\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F08b4daf2e3a14381982eb1e70c4cc659\" img_width=\"347\" img_height=\"289\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E陷入局部最小值意味着我們僅對參數進行了局部優化,但在損失函數表面的某個點可能存在更優解。神經網絡損失曲面可以有許多這樣的局部最優,這對於網絡優化是有問題的。例如,請參見下面所示的損失面。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F969fbaccf1204f34b85ca85bf339e17a\" img_width=\"344\" img_height=\"266\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F662ebc2ff6854a748d8b11255df3dd51\" img_width=\"313\" img_height=\"275\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F6ad4c04510b043128f5974dd7f02bee5\" img_width=\"324\" img_height=\"284\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們如何解決這個問題呢?一個建議是使用批量和隨機梯度下降。這個想法聽起來很複雜,但其實很簡單——使用一批(一個子集)數據,而不是使用整個數據集,這樣在每次迭代過程中損失函數的曲面都會部分變形。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E對於每次迭代k,可以使用以下損失(似然)函數來推導導數:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe0a1df425d8f49e4bad8724522db1dab\" img_width=\"460\" img_height=\"76\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這是完整損失函數的近似值。我們可以用一個例子來說明這一點。首先,我們從完整損失(似然)函數曲面開始,隨機分配的網絡權重爲我們提供初始值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fc20b79d90c3e4feabde8f03028b020ae\" img_width=\"554\" img_height=\"275\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F5ebf832c865344a986222ebf900d466f\" img_width=\"504\" img_height=\"259\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E 然後我們選擇一批數據,可能是整個數據集的10%,並構建一個新的損失函數曲面。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb043ac137e734361870d74249ad16493\" img_width=\"505\" img_height=\"260\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F27dcd0307da84213a6f3fe3a55f7ee27\" img_width=\"449\" img_height=\"244\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然後我們對這個批數據執行梯度下降並更新。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa7b9f33295254412a7af762b2df931de\" img_width=\"471\" img_height=\"248\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F5eeff54b94984508a19ca9e95028dec1\" img_width=\"433\" img_height=\"222\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E現在我們在一個新的位置。從完整數據集選擇一個新的隨機子集,然後再次構造損失函數曲面。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F21738c30103d481fab1d96b6206ca565\" img_width=\"470\" img_height=\"248\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F560926616b8643858a58ebaa1a9e75ec\" img_width=\"422\" img_height=\"229\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然後在這批數據上執行梯度下降和更新。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F560926616b8643858a58ebaa1a9e75ec\" img_width=\"422\" img_height=\"229\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fd64be8e0b3544b7a9a8c3f4244bceb7f\" img_width=\"442\" img_height=\"255\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E使用新數據重複以上過程。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F477b6eca3db04190a3fc226ae3777ca7\" img_width=\"475\" img_height=\"250\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F799839817ddc4aa2a04ce50c5cb07f12\" img_width=\"429\" img_height=\"226\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E執行更新。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F4784e11465984b21a3b70f3bd6e8ac42\" img_width=\"469\" img_height=\"247\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe73b42f5bad34fe5a43e0ff43f84e9b7\" img_width=\"422\" img_height=\"225\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這個過程重複多次迭代。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe70cb5def7d5491a8004c7bf34ac488d\" img_width=\"475\" img_height=\"250\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F804a33b21a8d47b4ab1d06d622aab6e7\" img_width=\"430\" img_height=\"230\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E直到網絡開始收斂至全局最小值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F9a85abc9540d4f4b91b41b498ede6adb\" img_width=\"471\" img_height=\"249\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F4372b15f4f794429879b9fa13b42ebc5\" img_width=\"430\" img_height=\"226\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E現在我們的工具包中有足夠的知識來構建我們的第一個神經網絡。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E人工神經網絡(Artificial Neural Network,ANN)\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們已經瞭解了logistic迴歸是如何工作的、如何評估網絡的性能、以及如何更新網絡以提高性能,現在我們就可以着手構建一個神經網絡了。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E首先,我想讓大家理解爲什麼神經網絡被稱爲神經網絡。你可能聽說過,這是因爲它們模仿神經元的結構,即大腦中的細胞。神經元的結構看起來比神經網絡複雜得多,但功能相似。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb5818a17513d4a19801f99159a06c9b2\" img_width=\"475\" img_height=\"255\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa9584468a4c34e58b7cb928ba4f0dba2\" img_width=\"471\" img_height=\"256\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E 真正的神經元的工作方式涉及到電位的積累,當超過特定值時,會導致突觸前神經元放電穿過軸突並刺激突觸後神經元。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E人類擁有數十億個相互連接的神經元,它們能產生極其複雜的放電模式。與我們使用最先進的神經網絡所能做的相比,人腦的功能是不可思議的。因此,我們很可能不會很快看到神經網絡能夠模仿人腦的功能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們可以畫一張神經圖,把神經網絡中的神經元結構和人工神經元進行類比。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fbafa901d38a042288ab84ef25225fb06\" img_width=\"429\" img_height=\"249\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E來源\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E考慮到人腦的能力,很明顯人工神經網絡的能力範圍是無限的——特別是當我們開始把它們與傳感器、執行器以及互聯網的豐富信息聯繫起來的時候——這就解釋了神經網絡在世界上的普及,儘管現在還處於相對初級的發展階段。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E畢竟,還原論者可能會爭辯,人類只是通過神經系統的各個部分與傳感器和執行器相連的神經網絡的集合。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E現在假設我們有多個特證。每個特徵都通過一個稱爲仿射變換的東西傳遞,這個變換基本上是一個加法(或減法)和\u002F或乘法。這形成了一個類似迴歸方程的東西。當多層感知器中的多個節點在一個節點上會聚時,仿射變換就變得很重要。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然後我們通過激活函數傳遞這個結果,這給了我們某種形式的概率。這個概率決定了神經元是否會激發——結果可以納入到損失函數中,以評估算法的性能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F298abd9ddc60439da2a62df867a91c4b\" img_width=\"444\" img_height=\"201\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb4bac95c536c45cd8b1d2204908dd44d\" img_width=\"483\" img_height=\"218\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E從現在開始,我將把仿射和激活模塊抽象爲一個模塊。但是,我們要明白仿射變換是來自上游節點的輸出的合併,然後將總和輸出傳遞給一個激活函數,該函數通過評估概率來確定它是否是足以激發神經元。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E現在我們可以回到第一個例子來使用心臟病數據。我們可以取兩個logistic迴歸並將它們合併在一起。單個logistic迴歸如下:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Ff1b7570c30b74cd09f10859fa56b0794\" img_width=\"465\" img_height=\"272\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E當我們連接這兩個網絡時,由於自由度的增加,我們獲得的網絡具有更大的靈活性。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F935edeb3f07147efb5105e6ca1120e4c\" img_width=\"475\" img_height=\"145\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這很好地說明了神經網絡的功能,我們能夠將多個函數串聯在一起(求和),這樣就有了大量的函數(來自大量神經元),從而產生高度非線性函數。有了足夠多的神經元,就可以產生任意複雜的連續功能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這是一個非常簡單的神經網絡的例子,然而,我們還是遇到了一個問題,即使網絡如此簡單,又該如何更新權重值呢?\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa5faf3b32e9240a389ca1d4e48c791fd\" img_width=\"482\" img_height=\"201\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb1b5963d19994d18a1a3bd1dd2a20da6\" img_width=\"533\" img_height=\"218\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們需要能夠計算損失函數對這些權重的導數。爲了解未知的權重w1、w2和w3,我們需要使用反向傳播。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E反向傳播 \u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E反向傳播是神經網絡學習的核心機制。它是告訴網絡在預測過程中是否出錯的信使。反向傳播的發現是整個神經網絡研究中最重要的里程碑之一。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E傳播就是在特定的方向或通過特定的媒介傳遞某種東西(例如光、聲音)。當我們討論神經網絡背景下的反向傳播時,我們討論的是信息的傳輸,這個信息與神經網絡在猜測數據時產生的誤差有關。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在預測過程中,神經網絡通過網絡的節點向前傳播信號,直到到達作出決定的輸出層。然後,網絡反向傳播有關此預測的誤差的信息,以便更改每個參數。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb6f612bc66a34c22a537ff8c0606ad05\" img_width=\"517\" img_height=\"169\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F2e35d430ccb245f79970ee9cbddada71\" img_width=\"479\" img_height=\"173\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E反向傳播是計算網絡中每個參數導數的方法,這是進行梯度下降所必需的。這是一個反向傳播和梯度下降的重要區別,因爲二者很容易混淆。我們首先執行反向傳播,以獲得執行梯度下降所需的信息。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E你可能已經注意到我們仍然需要計算導數。計算機不能區分,但是我們可以建立一個函數庫來實現這一點,而不需要網絡設計者的參與,它爲我們抽象化了這個過程,這被稱爲自動微分。下面是一個例子。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我們可以像這樣手工完成,然後根據不同網絡體系結構和不同節點更改它。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F93e85b697225488395eb7215b402dfc5\" img_width=\"552\" img_height=\"354\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Feb48d8d443384467ae1b27c75761bd6a\" img_width=\"501\" img_height=\"321\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E或者,我們可以編寫一個與體系結構有內部鏈接的函數庫,這樣當網絡體系結構更新時,過程就會被抽象並自動更新。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F5e1c56643a0f4e60ab01a7aa1e6339af\" img_width=\"554\" img_height=\"253\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如果你真的想理解這個抽象的自動微分過程有多實用,嘗試用六個節點組成一個多層神經網絡,然後編寫代碼來實現反向傳播(如果有人有耐心和勇氣這麼做,向你致敬)。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E更復雜的網絡 \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E對於大多數應用來說,有兩個節點的網絡並不是特別有用。通常,我們使用神經網絡來近似傳統方法難以描述的複雜函數。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E神經網絡是特殊的,因爲它們遵循所謂的\u003Cstrong\u003E普遍近似定理\u003C\u002Fstrong\u003E。這個定理表明,在一個神經網絡中,給定無限多個神經元,就可以精確地表示任意一個複雜的連續函數。這是一句相當深刻的話,因爲它意味着只要有足夠的計算能力,我們基本上可以近似任何函數。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E顯然,在實踐中,這個想法有幾個問題。首先,我們受到現有數據的限制,這限制了我們預測類別或估計值的潛在準確性。其次,我們受到計算能力的限制。設計一個遠遠超過世界上最強大的超級計算機能力的網絡是相當容易的。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E解決這個問題的方法是設計一個網絡體系結構,這樣我們就能夠使用相對較少的計算能力,以最少的數據實現高精度。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E更令人印象深刻的是,一個隱藏層足以表示任意精度的函數近似值。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E那麼,如果一層已經足夠,爲什麼人們要使用多層神經網絡呢?\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F8b9438db34bf4789a6206a6700adf566\" img_width=\"470\" img_height=\"211\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fc2178a60cf824e54a3c1aa8c13988e3a\" img_width=\"431\" img_height=\"198\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E具有多個隱藏層的神經結構\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E答案很簡單。只有一層的網絡需要一個非常寬的神經結構,因爲淺網絡比深網絡需要(指數級別)更寬的寬度。此外,淺網絡更容易過擬合。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這就是深度學習領域(深度指神經網絡的多個層次)出現和發展的原因,深度學習在機器學習和大多數涉及數據分類和預測的領域佔據着當代研究文獻的主導地位。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E總結\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E本文討論了神經網絡的動機和背景,並概述了怎樣訓練神經網絡。我們討論了損失函數、錯誤傳播、激活函數和網絡體系結構。下圖對所討論的所有概念以及它們是如何相互關聯的進行了很好的總結。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F0597d24e5a104c989d39d00f764cfb57\" img_width=\"554\" img_height=\"275\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Ff07c822f543640bda383b0d38595e5e7\" img_width=\"535\" img_height=\"305\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E本文的知識將提供一個強有力的基礎,我們可以在以後的文章中進一步討論如何提高神經網絡的性能,並將其用於深度學習應用。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E原文標題:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003EIntroduction to Neural Networks\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E原文鏈接:\u003C\u002Fp\u003E\u003Cblockquote\u003Ehttps:\u002F\u002Ftowardsdatascience.com\u002Fsimple-introduction-to-neural-networks-ac1d7c3d7a2c\u003C\u002Fblockquote\u003E\u003Cp class=\"ql-align-right\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-right\"\u003E編輯:於騰凱\u003C\u002Fp\u003E\u003Cp class=\"ql-align-right\"\u003E校對:林亦霖\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E譯者簡介\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F899c4e4ef0d443c29c936845528c6043\" img_width=\"780\" img_height=\"1134\" alt=\"一文讀懂神經網絡(附解讀&案例)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E陳丹,復旦大學大三在讀,主修預防醫學,輔修數據科學。對數據分析充滿興趣,但初入這一領域,還有很多很多需要努力進步的空間。希望今後能在翻譯組進行相關工作的過程中拓展文獻閱讀量,學習到更多的前沿知識,同時認識更多有共同志趣的小夥伴~!\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E— 完 —\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E關注清華-青島數據科學研究院官方微信公衆平臺“\u003Cstrong\u003ETHU數據派\u003C\u002Fstrong\u003E”及姊妹號“\u003Cstrong\u003E數據派THU\u003C\u002Fstrong\u003E”獲取更多講座福利及優質內容。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6718128281553469963
相關文章