国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

訓練深度學習神經網絡的常用5個損失函數

穎脈Imgtec ? 2022-10-19 11:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:Onepagecode

來源:DeepHub IMBA


神經網絡在訓練時的優化首先是對模型的當前狀態進行誤差估計,然后為了減少下一次評估的誤差,需要使用一個能夠表示錯誤函數對權重進行更新,這個函數被稱為損失函數。

損失函數的選擇與神經網絡模型從示例中學習的特定預測建模問題(例如分類或回歸)有關。在本文中我們將介紹常用的一些損失函數,包括:

回歸模型的均方誤差損失

二元分類模型的交叉熵和hinge 損失


回歸模型的損失函數

回歸預測模型主要是用來預測連續的數值。所以我們將使用 scikit-learn的 make_regression() 函數來生成一些模擬數據,并使用這些數據構建回歸模型。我們將生成 20 個輸入特征:其中 10 個特征將是有意義的,但 10 個與問題無關。并且隨機生成 1,000 個示例。并且指定隨機種子,所以無論何時運行代碼都會生成相同的 1,000 個示例。5df19158-4f29-11ed-b116-dac502259ad0.png將實值輸入和輸出變量縮放到一個合理的范圍通常可以提高神經網絡的性能。所以我們要對對數據進行標準化處理。StandardScaler也可以在scikit-learn庫中找到,為了簡化問題我們將在將所有數據分割為訓練集和測試集之前對其進行縮放。5e12361a-4f29-11ed-b116-dac502259ad0.png然后平均分割訓練和驗證集5e3ed18e-4f29-11ed-b116-dac502259ad0.png為了介紹不同的損失函數,我們將開發一個小型多層感知器(MLP)模型。根據問題定義,有20個特征作為輸入,經過我們的模型。需要要預測的一個實值,所以輸出層將有一個節點。5e6693a4-4f29-11ed-b116-dac502259ad0.png我們使用SGD進行優化,并且學習率為0.01,動量為0.9,兩者都是合理的默認值。訓練將進行100個輪,測試集將在每個階段結束時進行評估,并且繪制學習曲線。5e70881e-4f29-11ed-b116-dac502259ad0.png模型完成后就可以進行損失函數的介紹:MSE回歸問題最常使用的是均方誤差損失(MSE)。當目標變量的分布為高斯分布時,它是最大似然推理下的首選損失函數。所以只有當你有一個更好的理由時,才應該改變為其他損失函數。如果在 Keras 中編譯模型時將“mse”或“mean_squared_error”指定為損失函數,則使用均方誤差損失函數。5e9fa84c-4f29-11ed-b116-dac502259ad0.png下面的代碼是上述回歸問題的完整示例。5eb33b32-4f29-11ed-b116-dac502259ad0.png在運行示例的第一步中,打印了模型的訓練和測試數據集的均方誤差,因為保留了3位小數,所以顯示為0.0005edce3e2-4f29-11ed-b116-dac502259ad0.png從下圖中可以看出,模型收斂速度相當快,訓練和測試性能保持不變。根據模型的性能和收斂特性,均方誤差是回歸問題的一個很好的選擇。5ef0f26a-4f29-11ed-b116-dac502259ad0.pngMSLE在具有廣泛值的回歸問題中,可能不希望在預測大值時像均方誤差那樣對模型進行懲罰。所以可以通過首先計算每個預測值的自然對數來計算均方誤差。這種損失稱為 MSLE,或均方對數誤差。當預測值出現較大差異時,它具有放松懲罰效果的效果。當模型直接預測未縮放的數量時,它可能是更合適的損失度量。keras中使用“mean_squared_logarithmic_error”作為損失函數5f07dc64-4f29-11ed-b116-dac502259ad0.png在下面的示例是使用MSLE損失函數的完整代碼。5f1d3136-4f29-11ed-b116-dac502259ad0.png該模型在訓練和測試數據集上的MSE都略差。這是由于目標變量的分布是一個標準的高斯分布,說明我們的這個損失函數可能不是很適合這個問題。5f5c738c-4f29-11ed-b116-dac502259ad0.png下圖顯示各訓練輪次的對比MSE收斂得很好,但MSE可能過擬合了,因為它從20輪開始下降變得變換并且開始上升。5f656212-4f29-11ed-b116-dac502259ad0.pngMAE根據回歸問題,目標變量的分布可能主要是高斯分布,但可能包含異常值,例如 遠離平均值的大值或小值。在這種情況下,平均絕對誤差或 MAE 損失是一個合適的損失函數,因為它對異常值更穩健。考慮到實際值與預測值的絕對差值,計算為平均值。使用“mean_absolute_error”損失函數5f830dee-4f29-11ed-b116-dac502259ad0.png這是使用MAE的完整代碼5f95f08a-4f29-11ed-b116-dac502259ad0.png結果如下5fa379b2-4f29-11ed-b116-dac502259ad0.png下圖可以看到,MAE確實收斂了但它有一個顛簸的過程。MAE在這種情況下也不是很適合,因為目標變量是一個沒有大離群值的高斯函數。

5fba86ca-4f29-11ed-b116-dac502259ad0.png


二元分類的損失函數

二元分類問題是預測建模問題中兩個標簽中的一個。這個問題被定義為預測第一個或第二個類的值為0或1,一般情況下通常被實現為預測屬于類值1的的概率。我們也是使用sklearn生成數據這里使用圓問題,它有一個二維平面,有兩個同心圓,其中外圓上的點屬于類0,內圓上的點屬于類1。為了使學習更具挑戰性,我們還在樣本中加入了統計噪聲。樣本量為1000,并加入10%的統計噪聲。5fc7dba4-4f29-11ed-b116-dac502259ad0.png數據集的散點圖可以幫助我們理解正在建模的問題。下面列出的是一個完整的示例。5fe50ba2-4f29-11ed-b116-dac502259ad0.png散點圖如下,其中輸入變量確定點的位置,顏色為類值。0是藍色的,1是橙色的。601accd8-4f29-11ed-b116-dac502259ad0.png這里還是一半用于訓練,一半用于測試,5e3ed18e-4f29-11ed-b116-dac502259ad0.png我們還是定義一個簡單的MLP模型,604993f6-4f29-11ed-b116-dac502259ad0.png使用SGD優化,學習率為0.01,動量為0.99。605664c8-4f29-11ed-b116-dac502259ad0.png模型訓練200輪進行擬合,并根據損失和準確性評估模型的性能。60658fc0-4f29-11ed-b116-dac502259ad0.pngBCEBCE是用于解決的二元分類問題默認損失函數。在最大似然推理框架下,它是首選損失函數。對于第1類的預測,交叉熵計算一個分數,該分數總結了實際和預測概率分布之間的平均差異。在編譯Keras模型時,可以指定binary_crossentropy作為損失函數。606ff712-4f29-11ed-b116-dac502259ad0.png為了預測類1的概率,輸出層必須包含一個節點和一個' sigmoid '激活。6098ee42-4f29-11ed-b116-dac502259ad0.png下面是完整的代碼:60ab2efe-4f29-11ed-b116-dac502259ad0.png該模型對問題的學習相對較好,在測試數據集上的準確率為83%,準確率為85%。分數之間存在一定程度的重疊,表明模型既不是過擬合也不是欠擬合。下圖中所示,訓練效果很好。由于概率分布之間的誤差是連續的,損失圖是平滑的,而精度線圖顯示出凹凸不平,因為訓練和測試集中的例子只能被預測為正確或不正確,提供的顆粒信息較少。60bf23be-4f29-11ed-b116-dac502259ad0.pngHinge支持向量機 (SVM) 模型使用Hinge 損失函數作為交叉熵的替代來解決二元分類問題。目標值在是集合 [-1, 1] ,旨在與二進制分類一起使用。如果實際類別值和預測類別值的符號不同,則Hinge會得到更大的誤差。在二元分類問題上它有時比交叉熵更好。作為第一步,我們必須將目標變量的值修改為集合 {-1, 1}。60d4bb8e-4f29-11ed-b116-dac502259ad0.pngkeras中它被稱為' hinge '。60dd3d0e-4f29-11ed-b116-dac502259ad0.png在網絡的輸出層中,必須使用tanh激活函數的單個節點以輸出介于 -1 和 1 之間的單個值。60e71054-4f29-11ed-b116-dac502259ad0.png下面是完整代碼:60f7dde4-4f29-11ed-b116-dac502259ad0.png比交叉熵略差的性能,在訓練和測試集上的準確性不到80%。6169b6ee-4f29-11ed-b116-dac502259ad0.png下圖可以看出,模型已經收斂,分類精度圖表明也已經收斂。61758118-4f29-11ed-b116-dac502259ad0.png可以看到這個問題還是BCE比較好,這里可能的原因就是因為我們有一些噪聲點導致的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 深度學習
    +關注

    關注

    73

    文章

    5598

    瀏覽量

    124396
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    神經網絡的初步認識

    日常生活中的智能應用都離不開深度學習,而深度學習則依賴于神經網絡的實現。什么是神經網絡
    的頭像 發表于 12-17 15:05 ?323次閱讀
    <b class='flag-5'>神經網絡</b>的初步認識

    自動駕駛中常提的卷積神經網絡啥?

    在自動駕駛領域,經常會聽到卷積神經網絡技術。卷積神經網絡,簡稱為CNN,是一種專門用來處理網格狀數據(比如圖像)的深度學習模型。CNN在圖像處理中尤其常見,因為圖像本身就可以看作是由像
    的頭像 發表于 11-19 18:15 ?2076次閱讀
    自動駕駛中常提的卷積<b class='flag-5'>神經網絡</b>是<b class='flag-5'>個</b>啥?

    激活函數ReLU的理解與總結

    的深層神經網絡的激活函數是一非常活躍的研究領域。目前神經網絡常用的激活函數-ReLU(rec
    發表于 10-31 06:16

    CNN卷積神經網絡設計原理及在MCU200T上仿真測試

    的提出很大程度的解決了BP算法在優化深層神經網絡時的梯度耗散問題。當x&gt;0 時,梯度恒為1,無梯度耗散問題,收斂快;當x&lt;0 時,該層的輸出為0。 CNN
    發表于 10-29 07:49

    NMSIS神經網絡庫使用介紹

    :   神經網絡卷積函數   神經網絡激活函數   全連接層函數   神經網絡池化
    發表于 10-29 06:08

    構建CNN網絡模型并優化的一般化建議

    :Dropout層隨機跳過神經網絡模型中某些神經元之間的連接,通過隨機制造缺陷進行訓練提升整個神經網絡的魯棒性。 6)指定合理的學習率策
    發表于 10-28 08:02

    在Ubuntu20.04系統中訓練神經網絡模型的一些經驗

    , batch_size=512, epochs=20)總結 這個核心算法中的卷積神經網絡結構和訓練過程,是用來對MNIST手寫數字圖像進行分類的。模型將圖像作為輸入,通過卷積和池化層提取圖像的特征,然后通過全連接層進行分類預測。訓練
    發表于 10-22 07:03

    CICC2033神經網絡部署相關操作

    在完成神經網絡量化后,需要將神經網絡部署到硬件加速器上。首先需要將所有權重數據以及輸入數據導入到存儲器內。 在仿真環境下,可將其存于一文件,并在 Verilog 代碼中通過 readmemh
    發表于 10-20 08:00

    液態神經網絡(LNN):時間連續性與動態適應性的神經網絡

    1.算法簡介液態神經網絡(LiquidNeuralNetworks,LNN)是一種新型的神經網絡架構,其設計理念借鑒自生物神經系統,特別是秀麗隱桿線蟲的神經結構,盡管這種微生物的
    的頭像 發表于 09-28 10:03 ?1204次閱讀
    液態<b class='flag-5'>神經網絡</b>(LNN):時間連續性與動態適應性的<b class='flag-5'>神經網絡</b>

    神經網絡的并行計算與加速技術

    隨著人工智能技術的飛速發展,神經網絡在眾多領域展現出了巨大的潛力和廣泛的應用前景。然而,神經網絡模型的復雜度和規模也在不斷增加,這使得傳統的串行計算方式面臨著巨大的挑戰,如計算速度慢、訓練時間長等
    的頭像 發表于 09-17 13:31 ?1124次閱讀
    <b class='flag-5'>神經網絡</b>的并行計算與加速技術

    如何在機器視覺中部署深度學習神經網絡

    圖 1:基于深度學習的目標檢測可定位已訓練的目標類別,并通過矩形框(邊界框)對其進行標識。 在討論人工智能(AI)或深度學習時,經常會出現“
    的頭像 發表于 09-10 17:38 ?900次閱讀
    如何在機器視覺中部署<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>神經網絡</b>

    基于神經網絡的數字預失真模型解決方案

    在基于神經網絡的數字預失真(DPD)模型中,使用不同的激活函數對整個系統性能和能效有何影響?
    的頭像 發表于 08-29 14:01 ?3471次閱讀

    無刷電機小波神經網絡轉子位置檢測方法的研究

    摘要:論文通過對無刷電機數學模型的推導,得出轉角:與三相相電壓之間存在映射關系,因此構建了一以三相相電壓為輸人,轉角為輸出的小波神經網絡來實現轉角預測,并采用改進遺傳算法來訓練網絡
    發表于 06-25 13:06

    神經網絡專家系統在電機故障診斷中的應用

    摘要:針對傳統專家系統不能進行自學習、自適應的問題,本文提出了基于種經網絡專家系統的并步電機故障診斷方法。本文將小波神經網絡和專家系統相結合,充分發揮了二者故障診斷的優點,很大程度上降低了對電機
    發表于 06-16 22:09

    基于FPGA搭建神經網絡的步驟解析

    本文的目的是在一神經網絡已經通過python或者MATLAB訓練好的神經網絡模型,將訓練好的模型的權重和偏置文件以TXT文件格式導出,然后
    的頭像 發表于 06-03 15:51 ?1198次閱讀
    基于FPGA搭建<b class='flag-5'>神經網絡</b>的步驟解析