<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          簡單聊聊梯度下降與反向傳播算法

          共 3384字,需瀏覽 7分鐘

           ·

          2022-06-21 11:04

          作者:Richmond Alake  翻譯:陳之炎 校對:zrx

          本文約3300字,建議閱讀5分鐘

          本文旨在為數(shù)據(jù)科學(xué)家提供一些基礎(chǔ)知識,以理解在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時所需調(diào)用的底層函數(shù)和方法。


          標(biāo)簽:神經(jīng)網(wǎng)絡(luò),梯度下降,反向傳播



          人工神經(jīng)網(wǎng)絡(luò)[ANN)是人工智能技術(shù)的基礎(chǔ),同時也是機(jī)器學(xué)習(xí)模型的基礎(chǔ)。它們模擬人類大腦的學(xué)習(xí)過程,賦予機(jī)器完成特定類人任務(wù)的能力。

          數(shù)據(jù)科學(xué)家的目標(biāo)是利用公開數(shù)據(jù)來解決商業(yè)問題。通常,利用機(jī)器學(xué)習(xí)算法來識別模式,用算法模型實現(xiàn)預(yù)測。如何為特定的用例選擇正確的模型,并適當(dāng)?shù)卣{(diào)整參數(shù)?這需要對問題和底層算法有清晰的理解,即充分理解問題和算法,確保使用正確模型,并正確解釋結(jié)果。

          本文介紹并解釋了梯度下降算法和反向傳播算法。人工神經(jīng)網(wǎng)絡(luò)利用這些算法學(xué)習(xí)數(shù)據(jù)集,當(dāng)神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)發(fā)生變化時,應(yīng)如何去修正網(wǎng)絡(luò)參數(shù)。

          建立直覺

          在深入探討技術(shù)細(xì)節(jié)之前,首先來看看人類如何學(xué)習(xí)。

          人類大腦的學(xué)習(xí)過程是復(fù)雜的,當(dāng)前的研究工作只涉及到人類學(xué)習(xí)方式的表像。然而,已知的研究結(jié)果對構(gòu)建模型非常有價值,與機(jī)器不同,在做邏輯預(yù)測時,人類無需借助大量的數(shù)據(jù)來解決問題,人們直接從經(jīng)驗和錯誤中吸取教訓(xùn)。

          人類通過突觸可塑性的過程來學(xué)習(xí),突觸可塑性是一個術(shù)語,用來描述在獲得新的信息后,如何形成和加強(qiáng)新的神經(jīng)連接。當(dāng)人類經(jīng)歷新事件時,大腦中的連接會加強(qiáng),通過訓(xùn)練人工神經(jīng)網(wǎng)絡(luò),計算出預(yù)測的錯誤率,在此基礎(chǔ)上來決策是加強(qiáng)或削弱神經(jīng)元之間的內(nèi)部連接。

          梯度下降

          梯度下降算法是一種標(biāo)準(zhǔn)的優(yōu)化算法,通常,它是機(jī)器學(xué)習(xí)優(yōu)化算法的首選算法。首先,來剖析一下術(shù)語“梯度下降”,以更好地理解它與機(jī)器學(xué)習(xí)算法之間的關(guān)系。

          梯度是直線或曲線陡峭程度的量化度量,在數(shù)學(xué)上,它表示一條直線的上升或下降的方向。下降是指向下走的行為。因此,從這個術(shù)語的定義可以得出:梯度下降算法是對向下運(yùn)動程度的量化。

          為了訓(xùn)練一個機(jī)器學(xué)習(xí)算法,需要識別網(wǎng)絡(luò)中的權(quán)重和偏差,這將有助于問題的解決。例如,在分類問題中,當(dāng)查看圖像時,需要確定圖像是否為貓或狗。為此,必須構(gòu)建模型,將需求建模為函數(shù),更具體地說,是成本函數(shù)。成本函數(shù)又稱為損失函數(shù),利用成本函數(shù)衡量模型的出錯程度。成本函數(shù)的偏導(dǎo)數(shù)影響模型的權(quán)重和偏差。

          梯度下降是一種算法,用于搜索使成本函數(shù)最小化或準(zhǔn)確度最優(yōu)的那些參數(shù)。

          神經(jīng)網(wǎng)絡(luò)中的成本函數(shù)、梯度下降和反向傳播

          神經(jīng)網(wǎng)絡(luò)令人印象深刻,同樣令人印象深刻的是:在尚未明確告知要檢測的特征的情況下,計算程序能夠區(qū)分圖像和圖像中的對象。

          把神經(jīng)網(wǎng)絡(luò)看作是一個接收輸入(數(shù)據(jù))的函數(shù),并生成一種輸出預(yù)測,該函數(shù)的變量便是神經(jīng)元的參數(shù)或權(quán)重。

          因此,神經(jīng)網(wǎng)絡(luò)的關(guān)鍵任務(wù)是以一種近似或最佳的方式來調(diào)整數(shù)據(jù)集的權(quán)重和偏差值。

          下圖描述了一個簡單的神經(jīng)網(wǎng)絡(luò),它接收輸入(X1、X2、X3、Xn),將這些輸入推送給包含權(quán)值(W1、W2、W3、Wn)的神經(jīng)元。輸入和權(quán)值經(jīng)過乘法運(yùn)算,結(jié)果由加法器()求和,激活函數(shù)調(diào)節(jié)該層的最終輸出。

          圖1:作者創(chuàng)建的淺層神經(jīng)網(wǎng)絡(luò)圖

          為了評估神經(jīng)網(wǎng)絡(luò)的性能,需要一種機(jī)制來量化神經(jīng)網(wǎng)絡(luò)預(yù)測值和實際數(shù)據(jù)樣本值之間的差異,從而計算出影響神經(jīng)網(wǎng)絡(luò)內(nèi)權(quán)重和偏差的修正因子。

          成本函數(shù)填補(bǔ)了神經(jīng)網(wǎng)絡(luò)的預(yù)測值與數(shù)據(jù)樣本的實際值之間的誤差距離。

          圖2:神經(jīng)網(wǎng)絡(luò)內(nèi)部連接和預(yù)測描述

          上圖描述了一個簡單的密集連接神經(jīng)元的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它對包含數(shù)字0-3的圖像進(jìn)行分類。輸出層中的每個神經(jīng)元都對應(yīng)一個數(shù)字,與神經(jīng)元連接的激活程度越高,神經(jīng)元輸出的概率就越高,該概率為通過前饋網(wǎng)絡(luò)的數(shù)字與被激活的神經(jīng)元相關(guān)聯(lián)的概率。

          當(dāng)數(shù)字 “3”通過網(wǎng)絡(luò)前饋時,將為 “3”分類的連接(由圖中的箭頭表示)分配更高的激活,使得輸出與數(shù)字“3”神經(jīng)元關(guān)聯(lián)的概率更大。

          負(fù)責(zé)神經(jīng)元的激活,即偏差、權(quán)重和前一層的激活的組件有不少,這些特定的組件經(jīng)過迭代修正,使得神經(jīng)網(wǎng)絡(luò)在特定的數(shù)據(jù)集上執(zhí)行最優(yōu)操作。

          利用“均方誤差”成本函數(shù),獲取神經(jīng)網(wǎng)絡(luò)的誤差信息,通過網(wǎng)絡(luò)的權(quán)值和偏差,將這些信息后向傳播給神經(jīng)網(wǎng)絡(luò)進(jìn)行更新。

          神經(jīng)網(wǎng)絡(luò)使用的成本函數(shù)示例:

          ? 均方誤差
          ? 分類交叉熵
          ? 二進(jìn)制交叉熵
          ? 對數(shù)損失

          在討論完如何通過一種網(wǎng)絡(luò)預(yù)測技術(shù)來提高神經(jīng)網(wǎng)絡(luò)的性能之后,下文將集中討論梯度下降、反向傳播和成本函數(shù)之間的關(guān)系。

          圖3繪制了x和y軸上的成本函數(shù),該成本函數(shù)保存函數(shù)參數(shù)空間內(nèi)的全部數(shù)值。接下來,讓我們來看看神經(jīng)網(wǎng)絡(luò)是如何通過成本函數(shù)可視化來實現(xiàn)學(xué)習(xí),曲線為神經(jīng)網(wǎng)絡(luò)參數(shù)空間內(nèi)分布不均勻的權(quán)重/參數(shù)值。

          圖3:可視化之后的梯度下降

          上圖中的藍(lán)色點表示搜索局部最小值時進(jìn)行的一個步驟(成本函數(shù)中求參數(shù)值)。模型成本函數(shù)的最低點對應(yīng)于使成本函數(shù)最小的權(quán)重值的位置。成本函數(shù)越小,神經(jīng)網(wǎng)絡(luò)的性能越好。因此,可以根據(jù)上圖中獲取到的信息來修改網(wǎng)絡(luò)的權(quán)重。

          梯度下降是一種引導(dǎo)在每個步長中選取接近最小值的算法。

          • 局部最小值:成本函數(shù)在指定范圍內(nèi)的最小參數(shù)值。

          • 全局最小值:成本函數(shù)全域內(nèi)的最小參數(shù)值。


          梯度下降算法通過計算可微函數(shù)的梯度并沿梯度的相反方向移動,搜索使得局部/全局函數(shù)最小化的那個值。

          反向傳播是通過對影響神經(jīng)元輸出的組件(偏差、權(quán)重、激活)進(jìn)行迭代調(diào)整,從而使得成本函數(shù)變小的機(jī)制。在神經(jīng)網(wǎng)絡(luò)的架構(gòu)中,神經(jīng)元的輸入,包括與前一層神經(jīng)元的所有連接,決定了它的輸出。

          反向傳播所涉及的關(guān)鍵數(shù)學(xué)公式是導(dǎo)數(shù)的計算。反向傳播算法計算成本函數(shù)相對于權(quán)重、偏差和前一層激活的偏導(dǎo)數(shù),以確定哪些值影響成本函數(shù)的梯度。

          圖4:誤差的向后傳播    圖片來源:《深度學(xué)習(xí)》,第三章,3藍(lán)1棕

          通過計算梯度,最小化成本函數(shù),得到一個局部最小值。在每次迭代或訓(xùn)練步長中,根據(jù)計算出的梯度對網(wǎng)絡(luò)的權(quán)值以及學(xué)習(xí)率進(jìn)行更新,它控制著權(quán)值的修改因子。在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段,每個步長都重復(fù)這個過程。理想情況下,目標(biāo)是在經(jīng)過一個步長之后,會更加接近局部最小值。

          “反向傳播”這個名稱來自于進(jìn)程的字面意思,即“誤差的反向傳播”,梯度的偏導(dǎo)數(shù)對誤差進(jìn)行量化。通過網(wǎng)絡(luò)向后傳播誤差,利用最后一層(最接近輸出層的層)梯度的偏導(dǎo)數(shù)來計算第二層到最后一層的梯度。

          利用當(dāng)前層中前一層的梯度的偏導(dǎo)數(shù)確定誤差在各層中的傳播,一直傳播到網(wǎng)絡(luò)中的第一層(與輸入層最近的層)。

          小結(jié)

          這只是一個關(guān)于梯度下降算法的入門介紹,梯度下降算法還涉及到數(shù)學(xué)和微積分知識。

          雖然諸如TensorFlow、SciKit-Learn、PyTorch等軟件包已經(jīng)將復(fù)雜的訓(xùn)練和優(yōu)化算法進(jìn)行了抽象,然而,這并未降低數(shù)據(jù)科學(xué)家和ML從業(yè)者充分理解這些智能“黑盒子”幕后細(xì)節(jié)的要求。

          想要了解更多與反向傳播算法相關(guān)的數(shù)學(xué)知識嗎?以下資源供參考:

          • 神經(jīng)網(wǎng)絡(luò):通過反向傳播進(jìn)行訓(xùn)練

          • 反向傳播

          • 反向傳播算法的工作原理


          通過學(xué)習(xí)英偉達(dá)深度學(xué)習(xí)研究所的各種課程,深入了解深度學(xué)習(xí)的世界。

          作者:Richmond Alake

           

          Richmond Alake是一名機(jī)器學(xué)習(xí)和計算機(jī)視覺工程師,他與各種初創(chuàng)公司合作,利用深度學(xué)習(xí)模型來解決商業(yè)應(yīng)用程序中的計算機(jī)視覺任務(wù)。他在技術(shù)領(lǐng)域深耕五年,為大型企業(yè)集團(tuán)構(gòu)建應(yīng)用程序,并將人工智能技術(shù)集成到移動應(yīng)用程序中。他寫了100多篇關(guān)于人工智能和機(jī)器學(xué)習(xí)主題的文章,瀏覽量超過100萬次。Richmond認(rèn)為:機(jī)器學(xué)習(xí)在日常問題中會有功能強(qiáng)大的應(yīng)用。目前,他正主持多個項目,利用機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)模型來解決與人體工程學(xué)和社會網(wǎng)絡(luò)有關(guān)的問題。


          原文標(biāo)題:
          A Data Scientist's Guide to Gradient Descent and Backpropagation Algorithms
          原文鏈接:
          https://developer.nvidia.com/blog/a-data-scientists-guide-to-gradient-descent-and-backpropagation-algorithms/

          編輯:王菁

          推薦閱讀

          我逃到國企了

          再也不接私活了

          Kaggle出了一本競賽書(500頁)

          機(jī)器學(xué)習(xí)基礎(chǔ):用 Lasso 做特征選

          機(jī)器學(xué)習(xí)自動補(bǔ)全代(hán)碼(shù)神器

          整理不易,三連


          瀏覽 118
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  三区麻豆传媒视频 | 久久久久久91 | 欧美精品18videosex性欧美 | 中国黄色视频在线看 | 欧美啪啪视频 |