女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內(nèi)不再提示

機器學習模型切實可行的優(yōu)化步驟

汽車玩家 ? 來源:AI公園 ? 作者:Cecelia Shao ? 2020-05-04 12:08 ? 次閱讀

導讀

這篇文章提供了可以采取的切實可行的步驟來識別和修復機器學習模型的訓練、泛化和優(yōu)化問題。

眾所周知,調(diào)試機器學習代碼非常困難。即使對于簡單的前饋神經(jīng)網(wǎng)絡也是這樣,你經(jīng)常會在網(wǎng)絡體系結構做出一些決定,重初始化和網(wǎng)絡優(yōu)化——所有這些會都導致在你的機器學習代碼中出現(xiàn)bug。

正如Chase Roberts在一篇關于“How to unit test machine learning code”的優(yōu)秀文章中所寫的,他遇到的麻煩來自于常見的陷阱:

代碼不會崩潰,不會引發(fā)異常,甚至不會變慢。

訓練網(wǎng)絡仍在運行,損失仍將下降。

幾個小時后,數(shù)值收斂了,但結果很差

那么我們該怎么做呢?

本文將提供一個框架來幫助你調(diào)試神經(jīng)網(wǎng)絡:

從最簡單的開始

確認你的損失

檢查中間輸出和連接

對參數(shù)進行診斷

跟蹤你的工作

請隨意跳轉到特定的部分或通讀下面的內(nèi)容!請注意:我們不包括數(shù)據(jù)預處理或特定的模型算法選擇。對于這些主題,網(wǎng)上有很多很好的資源。

1. 從最簡單的開始

一個具有復雜結構和正則化以及學習率調(diào)度程序的神經(jīng)網(wǎng)絡將比一個簡單的網(wǎng)絡更難調(diào)試。我們在第一點上有點欺騙性,因為它與調(diào)試你已經(jīng)構建的網(wǎng)絡沒有什么關系,但是它仍然是一個重要的建議!

從最簡單的開始:

首先建立一個更簡單的模型

在單個數(shù)據(jù)點上訓練模型

首先,構建一個更簡單的模型

首先,構建一個只有一個隱藏層的小型網(wǎng)絡,并驗證一切正常。然后逐步增加模型的復雜性,同時檢查模型結構的每個方面(附加層、參數(shù)等),然后再繼續(xù)。

在單個數(shù)據(jù)點上訓練模型

作為一個快速的完整性檢查,你可以使用一兩個訓練數(shù)據(jù)點來確認你的模型是否能夠過擬合。神經(jīng)網(wǎng)絡應該立即過擬合,訓練精度為100%,驗證精度與你的模型隨機猜測相匹配。如果你的模型不能對這些數(shù)據(jù)點進行過擬合,那么要么是它太小,要么就是存在bug。

即使你已經(jīng)驗證了模型是有效的,在繼續(xù)之前也可以嘗試訓練一個(或幾個)epochs。

2. 確認你的損失

你的模型的損失是評估你的模型性能的主要方法,也是模型評估的重要參數(shù),所以你要確保:

損失適合于任務(對于多分類問題使用類別交叉熵損失或使用focal loss來解決類不平衡)

你的損失函數(shù)在以正確的尺度進行測量。如果你的網(wǎng)絡中使用了不止一種類型的損失,例如MSE、adversarial、L1、feature loss,那么請確保所有損失都按正確的順序進行了縮放

注意,你最初的損失也很重要。如果模型一開始就隨機猜測,檢查初始損失是否接近預期損失。在Stanford CS231n coursework中,Andrej Karpathy提出了以下建議:

在隨機表現(xiàn)上尋找正確的損失。確保在初始化小參數(shù)時得到預期的損失。最好先單獨檢查數(shù)據(jù)的loss(將正則化強度設置為零)。例如,對于使用Softmax分類器的CIFAR-10,我們期望初始損失為2.302,因為我們期望每個類的隨機概率為0.1(因為有10個類),而Softmax損失是正確類的負對數(shù)概率,因此:-ln(0.1) = 2.302。

對于二分類的例子,只需對每個類執(zhí)行類似的計算。假設數(shù)據(jù)是20%的0和80%的1。預期的初始損失是- 0.2ln(0.5) - 0.8ln(0.5) = 0.693147。如果你的初始損失比1大得多,這可能表明你的神經(jīng)網(wǎng)絡權重不平衡(即初始化很差)或者你的數(shù)據(jù)沒有標準化。

3. 檢查內(nèi)部的輸出和連接

要調(diào)試神經(jīng)網(wǎng)絡,通常了解神經(jīng)網(wǎng)絡內(nèi)部的動態(tài)以及各個中間層所起的作用以及這些中間層之間如何連接是很有用的。你可能會遇到以下錯誤:

梯度更新的表達式不正確

權重更新沒有應用

梯度消失或爆炸

如果梯度值為零,這可能意味著優(yōu)化器中的學習率可能太小,或者你遇到了上面的錯誤#1,其中包含梯度更新的不正確的表達式。

除了查看梯度更新的絕對值之外,還要確保監(jiān)視激活的大小、權重的大小和每個層的更新相匹配。例如,參數(shù)更新的大小(權重和偏差)應該是1-e3。

有一種現(xiàn)象叫做“死亡的ReLU”或“梯度消失問題”,ReLU神經(jīng)元在學習了一個表示權重的大的負偏置項后,會輸出一個零。這些神經(jīng)元再也不會在任何數(shù)據(jù)點上被激活。

你可以使用梯度檢查來檢查這些錯誤,通過使用數(shù)值方法來近似梯度。如果它接近計算的梯度,則正確地實現(xiàn)了反向傳播。

Faizan Shaikh描述了可視化神經(jīng)網(wǎng)絡的三種主要方法:

初步方法- 向我們展示訓練模型整體結構的簡單方法。這些方法包括打印出神經(jīng)網(wǎng)絡各層的形狀或濾波器以及各層的參數(shù)。

基于激活的方法- 在這些方法中,我們解碼單個神經(jīng)元或一組神經(jīng)元的激活情況,以直觀地了解它們在做什么

基于梯度的方法- 這些方法傾向于在訓練模型時操作由前向和后向傳遞形成的梯度(包括顯著性映射和類激活映射)。

有許多有用的工具可以可視化單個層的激活和連接,比如ConX和Tensorboard。

使用ConX生成的動態(tài)呈現(xiàn)可視化示例

4. 參數(shù)診斷

神經(jīng)網(wǎng)絡有大量的參數(shù)相互作用,使得優(yōu)化變得困難。請注意,這是一個活躍的研究領域,所以下面的建議只是簡單的出發(fā)點。

Batch size- 你希望batch size足夠大,能夠準確地估計錯誤梯度,但又足夠小,以便小批隨機梯度下降(SGD)能夠使你的網(wǎng)絡歸一化。小的batch size將導致學習過程以訓練過程中的噪聲為代價快速收斂,并可能導致優(yōu)化困難。論文On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima描述了:

在實踐中已經(jīng)觀察到,當使用一個較大的batch size時,模型的質(zhì)量會下降,這可以通過它的泛化能力來衡量。我們研究了在大批量情況下泛化下降的原因,并給出了支持large-batch方法趨向于收斂于訓練和測試函數(shù)的sharp的極小值這一觀點的數(shù)值證據(jù)——眾所周知,sharp的極小值導致較差的泛化。相比之下,小batch size的方法始終收斂于平坦的最小值,我們的實驗支持一個普遍的觀點,即這是由于梯度估計中的固有噪聲造成的。

學習速率- 學習率過低將導致收斂速度慢或陷入局部最小值的風險,而學習速率過大導致優(yōu)化分歧,因為你有跳過損失函數(shù)的更深但是更窄部分的風險。考慮將學習率策略也納入其中,以隨著訓練的進展降低學習率。CS231n課程有一大部分是關于實現(xiàn)退火學習率的不同技術。

梯度裁剪- 在反向傳播期間的通過最大值或最大范數(shù)對梯度進行裁剪。對于處理可能在上面的步驟3中遇到的任何梯度爆炸非常有用。

Batch normalization- Batch normalization用于對每一層的輸入進行歸一化,以解決內(nèi)部協(xié)變量移位問題。如果你同時使用Dropout和Batch Norm,請確保在Dropout上閱讀下面的要點。

本文來自Dishank Bansal的”TensorFlow中batch norm的陷阱和訓練網(wǎng)絡的健康檢查“,里面包括了很多使用batch norm的常見錯誤。

隨機梯度下降(SGD)- 有幾種使用動量,自適應學習率的SGD,和Nesterov相比并沒有訓練和泛化性能上的優(yōu)勝者。一個推薦的起點是Adam或使用Nesterov動量的純SGD。

正則化- 正則化對于構建可泛化模型至關重要,因為它增加了模型復雜度或極端參數(shù)值的代價。它顯著降低了模型的方差,而沒有顯著增加其偏差。如CS231n課程所述:

通常情況下,損失函數(shù)是數(shù)據(jù)損失和正則化損失的總和(例如L2對權重的懲罰)。需要注意的一個危險是正則化損失可能會超過數(shù)據(jù)損失,在這種情況下,梯度將主要來自正則化項(它通常有一個簡單得多的梯度表達式)。這可能會掩蓋數(shù)據(jù)損失的梯度的不正確實現(xiàn)。

為了檢查這個問題,應該關閉正則化并獨立檢查數(shù)據(jù)損失的梯度。

Dropout- Dropout是另一種正則化你的網(wǎng)絡,防止過擬合的技術。在訓練過程中,只有保持神經(jīng)元以一定的概率p(超參數(shù))活動,否則將其設置為零。因此,網(wǎng)絡必須在每個訓練批中使用不同的參數(shù)子集,這減少了特定參數(shù)的變化成為主導。

這里需要注意的是:如果您同時使用dropout和批處理規(guī)范化(batch norm),那么要注意這些操作的順序,甚至要同時使用它們。這仍然是一個活躍的研究領域,但你可以看到最新的討論:

來自Stackoverflow的用戶MiloMinderBinder:Dropout是為了完全阻斷某些神經(jīng)元的信息,以確保神經(jīng)元不相互適應。因此,batch norm必須在dropout之后進行,否則你將通過標準化統(tǒng)計之后的數(shù)據(jù)傳遞信息。”

來自arXiv:Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift — 從理論上講,我們發(fā)現(xiàn),當我們將網(wǎng)絡狀態(tài)從訓練狀態(tài)轉移到測試狀態(tài)時,Dropout會改變特定神經(jīng)單元的方差。但是BN在測試階段會保持其統(tǒng)計方差,這是在整個學習過程中積累的。當在BN之前的使用Dropout時,該方差的不一致性(我們將此方案命名為“方差漂移”)導致不穩(wěn)定的推斷數(shù)值行為,最終導致更多的錯誤預測。

5. 跟蹤你的網(wǎng)絡

你很容易忽視記錄實驗的重要性,直到你忘記你使用的學習率或分類權重。通過更好的跟蹤,你可以輕松地回顧和重現(xiàn)以前的實驗,以減少重復的工作(也就是說,遇到相同的錯誤)。

然而,手工記錄信息對于多個實驗來說是很困難的。工具如Comet.ml可以幫助自動跟蹤數(shù)據(jù)集、代碼更改、實驗歷史和生產(chǎn)模型(這包括關于模型的關鍵信息,如超參數(shù)、模型性能指標和環(huán)境細節(jié))。

你的神經(jīng)網(wǎng)絡對數(shù)據(jù)、參數(shù)甚至版本中的細微變化都非常敏感,這會導致模型性能的下降。跟蹤你的工作是開始標準化你的環(huán)境和建模工作流的第一步。

機器學習模型切實可行的優(yōu)化步驟

快速回顧

我們希望這篇文章為調(diào)試神經(jīng)網(wǎng)絡提供了一個堅實的起點。要總結要點,你應該:

從簡單的開始— 先建立一個更簡單的模型,然后通過對幾個數(shù)據(jù)點的訓練進行測試

確認您的損失— 檢查是否使用正確的損失,并檢查初始損失

檢查中間輸出和連接— 使用梯度檢查和可視化檢查看圖層是否正確連接,以及梯度是否如預期的那樣更新

診斷參數(shù)— 從SGD到學習率,確定正確的組合(或找出錯誤的)

跟蹤您的工作— 作為基線,跟蹤你的實驗過程和關鍵的建模組件

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    使用OpenVINO?進行優(yōu)化后,為什么DETR模型在不同的硬件上測試時顯示不同的結果?

    通過模型優(yōu)化優(yōu)化了 DETR 模型。 在 SPR 計算機上使用優(yōu)化模型(DETR
    發(fā)表于 03-05 10:27

    機器學習模型市場前景如何

    當今,隨著算法的不斷優(yōu)化、數(shù)據(jù)量的爆炸式增長以及計算能力的飛速提升,機器學習模型的市場前景愈發(fā)廣闊。下面,AI部落小編將探討機器
    的頭像 發(fā)表于 02-13 09:39 ?287次閱讀

    如何優(yōu)化BP神經(jīng)網(wǎng)絡的學習

    優(yōu)化BP神經(jīng)網(wǎng)絡的學習率是提高模型訓練效率和性能的關鍵步驟。以下是一些優(yōu)化BP神經(jīng)網(wǎng)絡學習率的方
    的頭像 發(fā)表于 02-12 15:51 ?751次閱讀

    【「基于大模型的RAG應用開發(fā)與優(yōu)化」閱讀體驗】+大模型微調(diào)技術解讀

    今天學習<基于大模型的RAG應用開發(fā)與優(yōu)化>這本書。大模型微調(diào)是深度學習領域中的一項關鍵技術,它指的是在已經(jīng)預訓練好的大型深度
    發(fā)表于 01-14 16:51

    Triton編譯器在機器學習中的應用

    1. Triton編譯器概述 Triton編譯器是NVIDIA Triton推理服務平臺的一部分,它負責將深度學習模型轉換為優(yōu)化的格式,以便在NVIDIA GPU上高效運行。Triton編譯器支持
    的頭像 發(fā)表于 12-24 18:13 ?874次閱讀

    《具身智能機器人系統(tǒng)》第7-9章閱讀心得之具身智能機器人與大模型

    醫(yī)療領域,手術輔助機器人需要毫米級的精確控制,書中有介紹基于視覺伺服的實時控制算法,以及如何利用大模型優(yōu)化手術路徑規(guī)劃。工業(yè)場景中,協(xié)作機器人面臨的主要挑戰(zhàn)是快速適應新工藝流程。具身智
    發(fā)表于 12-24 15:03

    AI大語言模型開發(fā)步驟

    開發(fā)一個高效、準確的大語言模型是一個復雜且多階段的過程,涉及數(shù)據(jù)收集與預處理、模型架構設計、訓練與優(yōu)化、評估與調(diào)試等多個環(huán)節(jié)。接下來,AI部落小編為大家詳細闡述AI大語言模型的開發(fā)
    的頭像 發(fā)表于 12-19 11:29 ?727次閱讀

    深度學習模型的魯棒性優(yōu)化

    深度學習模型的魯棒性優(yōu)化是一個復雜但至關重要的任務,它涉及多個方面的技術和策略。以下是一些關鍵的優(yōu)化方法: 一、數(shù)據(jù)預處理與增強 數(shù)據(jù)清洗 :去除數(shù)據(jù)中的噪聲和異常值,這是提高
    的頭像 發(fā)表于 11-11 10:25 ?883次閱讀

    AI大模型與傳統(tǒng)機器學習的區(qū)別

    AI大模型與傳統(tǒng)機器學習在多個方面存在顯著的區(qū)別。以下是對這些區(qū)別的介紹: 一、模型規(guī)模與復雜度 AI大模型 :通常包含數(shù)十億甚至數(shù)萬億的參
    的頭像 發(fā)表于 10-23 15:01 ?2368次閱讀

    【《大語言模型應用指南》閱讀體驗】+ 基礎篇

    講解,包括偏置、權重、激活函數(shù);三要素包括網(wǎng)絡結構、損失函數(shù)和優(yōu)化方法。章節(jié)最后總結了神經(jīng)網(wǎng)絡參數(shù)學習的關鍵步驟。 1.4章節(jié)描述了自然語言處理的相關知識點,包括什么是自然語言處理、文本的向量化和自監(jiān)督
    發(fā)表于 07-25 14:33

    機器學習中的數(shù)據(jù)預處理與特征工程

    機器學習的整個流程中,數(shù)據(jù)預處理與特征工程是兩個至關重要的步驟。它們直接決定了模型的輸入質(zhì)量,進而影響模型的訓練效果和泛化能力。本文將從數(shù)
    的頭像 發(fā)表于 07-09 15:57 ?1211次閱讀

    Al大模型機器

    豐富的知識儲備。它們可以涵蓋各種領域的知識,并能夠回答相關問題。靈活性與通用性: AI大模型機器人具有很強的靈活性和通用性,能夠處理各種類型的任務和問題。持續(xù)學習和改進: 這些模型可以
    發(fā)表于 07-05 08:52

    深度學習中的模型權重

    在深度學習這一充滿無限可能性的領域中,模型權重(Weights)作為其核心組成部分,扮演著至關重要的角色。它們不僅是模型學習的基石,更是模型
    的頭像 發(fā)表于 07-04 11:49 ?3808次閱讀

    深度學習模型訓練過程詳解

    深度學習模型訓練是一個復雜且關鍵的過程,它涉及大量的數(shù)據(jù)、計算資源和精心設計的算法。訓練一個深度學習模型,本質(zhì)上是通過優(yōu)化算法調(diào)整
    的頭像 發(fā)表于 07-01 16:13 ?2410次閱讀

    深度學習模型優(yōu)化與調(diào)試方法

    深度學習模型在訓練過程中,往往會遇到各種問題和挑戰(zhàn),如過擬合、欠擬合、梯度消失或爆炸等。因此,對深度學習模型進行優(yōu)化與調(diào)試是確保其性能優(yōu)越的
    的頭像 發(fā)表于 07-01 11:41 ?1613次閱讀