當前位置:首頁 » 溫度調節 » 訓練後的loss多少合適

訓練後的loss多少合適

發布時間: 2022-09-23 09:07:19

『壹』 訓練好的cnn網路的損失函數最後為多少

上世紀60年代,Hubel等人通過對貓視覺皮層細胞的研究,提出了感受野這個概念,到80年代,Fukushima在感受野概念的基礎之上提出了神經認知機的概念,可以看作是卷積神經網路的第一個實現網路,神經認知機將一個視覺模式分解成許多子模式(特徵),然後進入分層遞階式相連的特徵平面進行處理,它試圖將視覺系統模型化,使其能夠在即使物體有位移或輕微變形的時候,也能完成識別。

卷積神經網路(Convolutional Neural Networks, CNN)是多層感知機(MLP)的變種。由生物學家休博爾和維瑟爾在早期關於貓視覺皮層的研究發展而來。視覺皮層的細胞存在一個復雜的構造。這些細胞對視覺輸入空間的子區域非常敏感,我們稱之為感受野,以這種方式平鋪覆蓋到整個視野區域。這些細胞可以分為兩種基本類型,簡單細胞和復雜細胞。簡單細胞最大程度響應來自感受野范圍內的邊緣刺激模式。復雜細胞有更大的接受域,它對來自確切位置的刺激具有局部不變性。

通常神經認知機包含兩類神經元,即承擔特徵提取的采樣元和抗變形的卷積元,采樣元中涉及兩個重要參數,即感受野與閾值參數,前者確定輸入連接的數目,後者則控制對特徵子模式的反應程度。卷積神經網路可以看作是神經認知機的推廣形式,神經認知機是卷積神經網路的一種特例。

CNN由紐約大學的Yann LeCun於1998年提出。CNN本質上是一個多層感知機,其成功的原因關鍵在於它所採用的局部連接和共享權值的方式,一方面減少了的權值的數量使得網路易於優化,另一方面降低了過擬合的風險。CNN是神經網路中的一種,它的權值共享網路結構使之更類似於生物神經網路,降低了網路模型的復雜度,減少了權值的數量。該優點在網路的輸入是多維圖像時表現的更為明顯,使圖像可以直接作為網路的輸入,避免了傳統識別演算法中復雜的特徵提取和數據重建過程。在二維圖像處理上有眾多優勢,如網路能自行抽取圖像特徵包括顏色、紋理、形狀及圖像的拓撲結構;在處理二維圖像問題上,特別是識別位移、縮放及其它形式扭曲不變性的應用上具有良好的魯棒性和運算效率等。

CNN本身可以採用不同的神經元和學習規則的組合形式。

『貳』 神經網路訓練loss收斂的問題

這個問題比較泛,因為網路的損失函數是由自己設計的,如果不特殊說明一般是有均方誤差和交叉熵兩種損失函數的。其中均方誤差當然就是指的輸出與標簽的差的平方和的平均,計算方式如下: 而交叉熵則是為了防止網路在訓練後期遲緩而提出的一種損失函數,計算方式如下:

『叄』 神經網路中損失函數一般降到多少就可以了

關鍵不是損失函數降到多少,關鍵是你的模型測試集效果要好。訓練集再好也沒有用,可能是過擬合,所以不要太在意損失函數降到多少的問題。

『肆』 RoBERTa 和 ALBERT

BERT 模型是 2018 年提出的,並在很多自然語言處理任務有前所未有的提升。因此 2019 年就有很多工作是圍繞著 BERT 展開的,其中出現了兩個 BERT 的改進版模型,RoBERTa 和 ALBERT。RoBERTa 在更大的數據集和最優的參數中訓練 BERT,使 BERT 的性能再次提升;ALBERT 主要是對 BERT 進行壓縮,通過共享所有層的參數以及 Embedding 分解減少 BERT 的參數量。

本文主要介紹 BERT 的兩種改進模型 RoBERTa 和 ALBERT,關於 BERT 模型可以參考之前的文章 《徹底理解 Google BERT 模型》 ,首先總體看一下 RoBERTa 和 ALBERT 的一些特點。

RoBERTa:

ALBERT:

RoBERTa 主要試驗了 BERT 中的一些訓練設置 (例如 NSP Loss 是否有意義,batch 的大小等),並找出最好的設置,然後再更大的數據集上訓練 BERT。

原來的 BERT 只使用了 16G 的數據集,而 RoBERTa 在更大的數據集上訓練 BERT,使用了 160G 的語料:

BERT 在訓練的過程中採用了 NSP Loss,原本用意是為了讓模型能夠更好地捕捉到文本的語義,給定兩段語句 X = [x1, x2, ..., xN] 和 Y = [y1, y2, ...., yM],BERT 中的 NSP 任務需要預測 Y 是不是 出現在 X 的後面。

但是 NSP Loss 受到不少文章的質疑 ,例如 XLNet,RoBERTa 採用了一個實驗驗證 NSP Loss 的實用性。實驗中採用了四種組合:

Segment-Pair + NSP: 這個是原來 BERT 的訓練方法,使用 NSP Loss,輸入的兩段文字 X 和 Y 可以包含多個句子,但是 X + Y 的長度要小於 512。

Sentence-Pair + NSP: 與上一個基本類似,也使用 NSP Loss,但是輸入的兩段文字 X 和 Y 都分別是一個句子,因此一個輸入包含的 token 通常比 Segment-Pair 少,所以要增大 batch,使總的 token 數量和 Sentence-Pair 差不多。

Full-Sentences: 不使用 NSP,直接從一個或者多個文檔中采樣多個句子,直到總長度到達 512。當采樣到一個文檔末尾時,會在序列中添加一個文檔分隔符 token,然後再從下一個文檔采樣。

Doc-Sentences: 與 Full-Sentences 類似,不使用 NSP,但是只能從一個文檔中采樣句子,所以輸入的長度可能會少於 512。Doc-Sentences 也需要動態調整 batch 大小,使其包含的 token 數量和 Full-Sentences 差不多。

上圖是實驗結果,最上面的兩行是使用 NSP 的,可以看到使用 Segment-Pair (多個句子) 要好於 Sentence-Pair (單個句子),實驗結果顯示使用單個句子會使 BERT 在下游任務的性能下降,主要原因可能是使用單個句子導致模型不能很好地學習長期的依賴關系。

中間兩行是不使用 NSP Loss 的結果,可以看到兩種方式都是比使用 NSP 效果要好的,這說明了 NSP Loss 實際上沒什麼作用,因此在 RoBERTa 中丟棄了 NSP Loss。

原始的 BERT 在訓練之前就把數據 Mask 了,然後在整個訓練過程中都是保持數據不變的,稱為 Static Mask。即同一個句子在整個訓練過程中,Mask 掉的單詞都是一樣的。

RoBERTa 使用了一種 Dynamic Mask 的策略,將整個數據集復制 10 次,然後在 10 個數據集上都 Mask 一次,也就是每一個句子都會有 10 種 Mask 結果。使用 10 個數據集訓練 BERT。

下圖是實驗結果,可以看到使用 Dynamic Mask 的結果會比原來的 Static Mask 稍微好一點,所以 RoBERTa 也使用了 Dynamic Mask。

之前的一些關於神經網路翻譯的研究顯示了使用一個大的 batch 並相應地增大學習率,可以加速優化並且提升性能。RoBERTa 也對 batch 大小進行了實驗,原始的 BERT 使用的 batch = 256,訓練步數為 1M,這與 batch = 2K,訓練步數 125K 的計算量是一樣的,與 batch = 8K 和訓練步數為 31K 也是一樣的。下圖是使用不同 batch 的實驗結果,不同 batch 學習率是不同的,可以看到使用 batch = 2K 時的效果最好。

BERT 的預訓練模型參數量很多,訓練時候的時間也比較久。ALBERT 是一個對 BERT 進行壓縮後的模型,降低了 BERT 的參數量,減少了訓練所需的時間。

注意 ALBERT 只是減少 BERT 的參數量,而不減少其計算量。ALBERT 能減少訓練時間,這是因為減少了參數之後可以降低分布式訓練時候的通訊量;ALBERT 不能減少 inference 的時間,因為 inference 的時候經過的 Transformer 計算量和 BERT 還是一樣的。

下面介紹 ALBERT 的一些優化方法。

這是對 Embedding 進行分解,從而減少參數。在 BERT 中,Embedding 的維度和 Transformer 隱藏層維度是一樣的,都是 H。假設詞庫的大小為 V,則單詞的 Embedding 矩陣參數量就有 VH,如果詞庫很大,則參數量會很多。

因此,ALBERT 使用了一種基於 Factorized 的方法,不是直接把單詞的 one-hot 矩陣映射到 H 維的向量,而是先映射到一個低維空間 (E 維),再映射到 H 維的空間,這個過程類似於做了一次矩陣分解。

這個是參數共享機制,即所有 Transformer 層共享一套參數,Transformer 包括 Multi-Head Attention 的參數和 Feed-Forward 的參數。針對不同部分的參數,ALBERT 採用了四種方式實驗。

all-shared: 共享所有的 Transformer 參數。

shared-attention: 只共享 Transformer 中 Multi-Head Attention 的參數。

shared-FFN: 只共享 Transformer 中 Feed-Forward 的參數。

not-shared: 不共享參數。

上圖顯示了不同共享方式模型的參數量,可以看到共享所有參數之後的模型要遠遠小於不共享參數的模型。當 E = 768 時,not-shared 的參數量其實就是 BERT-base 的參數量,等於 108M,而共享所有參數後,模型的參數量變為 31M。

通過共享參數可以有效地減少模型的參數量,另外共享參數還可以幫助模型穩定網路中的參數。作者對比了 ALBERT 和 BERT 每一層 Transformer 的輸入和輸出的 L2 距離,發現 ALBERT 的效果更加平滑,如下圖所示。

如 RoBERTa 結果顯示的,NSP Loss 對於模型並沒有什麼用處,因此 ALBERT 也對 NSP 進行了一些思考。

ALBERT 認為 BERT 中使用的 NSP 任務過於簡單了,因為 NSP 的反例是隨機采樣得到的,這些反例的句子通常屬於不同的主題,例如前面的句子是來自體育新聞,而後面的句子來自於娛樂新聞。因此 BERT 在進行 NSP 任務時,通常是不需要真正學習句子之間的語義以及順序的,只需要判斷它們的主題類型。

ALBERT 將 NSP 替換成了 SOP (sentence order prediction),預測兩個句子是否被交換了順序。即輸入的兩個句子是來自同一文檔的連續句子,並隨機對這兩個句子的順序進行調換,讓模型預測句子是否被調換過。這樣可以讓模型更好地學習句子語義信息和相互關系。

RoBERTa 更像是一個經過仔細調參後得到的 BERT 模型,並且使用了更大的數據集進行訓練。

ALBERT 對 BERT 的參數量進行了壓縮,並且能夠減少分布式訓練的開銷。但是 ALBERT 並不能減少需要的計算量,因此模型在 inference 時的速度沒有提升。

RoBERTa: A Robustly Optimized BERT Pretraining Approach
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS

『伍』 loss值0.5差距很大嗎

大。
運存過少,訓練時間不夠src人臉過少,0.5的loss值太高,0.5以上就會感覺到糊了。

『陸』 caffe l訓練迭代loss的值多少認為收斂了

Deepid2論文訓練提lamda(驗證信號權重)應該用lossweight體現呢

作hyperparameter需要調整詳情見文章4.1節
其比較結其比較結. 模型跟DeepID2所用模型類似訓練資料庫類似0.05參考值進行微調需要像文章進行量搜索調參

具體Caffe何設置loss layer括弧加行loss_weight啦 比Caffe | Loss:

layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "pred"
bottom: "label"
top: "loss"
loss_weight: 1
}
Caffe 改善哪些參數可以降低 Loss 提升 Accuracy
請詳細的描敘問題

『柒』 avg loss多少怎麼停止訓練

數字波動不大時。當avgloss中的數字不再下降,並且該數字變化趨於平穩,波動不大時會停止訓練。

『捌』 將訓練集進行評估得到的損失率和直接訓練的損失一樣嗎

不一樣。
train_loss是訓練集的損失值,test_loss是測試集的損失值,train_loss不斷下降,test_loss不斷下降,說明模型仍有訓練空間,train_loss不斷下降,test_loss趨於不變,說明模型過擬合,train_loss趨於不變,test_loss不斷下降,說明數據集有問題,train_loss趨於不變,test_loss趨於不變,說明需要減小學習率或調整步長。
訓練損失率越大測試損失率越小,訓練損失率越小測試損失率越大。

『玖』 keras訓練完模型,為什麼對訓練集進行evaluate和訓練時的loss完全不一樣白訓練了嗎

問題簡述:
在keras框架下使用model.fit得到的訓練准確率和損失表現都非常好,但是在相同的訓練集上使用model.evaluate得到的准確率和損失都非常差
keras中的model.fit和model.evaluate在同樣的數據集上的准確率acc和損失值loss存在巨大的差異
https://github.com/keras-team/keras/issues/6977
上面的github鏈接討論了多種可能,
1.model.fit和model.evaluate的batch_size不匹配:model.fit時若指定了batch_size,在使用model.evaluate時的batch_size默認為16,而使用model.evaluate時並未設置與使用model.fit時同樣的batch_size。解釋大概為不同的batch_size的BatchNormalizaiton會產生不同的效果不同(當然在神經網路中存在BatchNormalization層時)
結果:匹配batch_size了也無效
2.dropout,batchnorm的影響:model.fit時的dropout層是設置dropout參數的,比如說0.5,而model.evaluate設置的dropout參數為1,keras在使用這兩個function的時候會呈現兩種模式

『拾』 深度學習設定loss小於多少時,模型停止訓練

首先只有你手頭有訓練的原碼才能按照下面的方法操作

訓練的大體結構是這樣的:

條件判斷

意思就是如果loss小於0.1,就跳出循環

熱點內容
漁金村有多少人口 發布:2022-10-02 02:41:33 瀏覽:348
姜賣多少錢一斤 發布:2022-10-02 02:39:44 瀏覽:608
27厘米長鞋子多少碼 發布:2022-10-02 02:37:35 瀏覽:646
excel表格怎樣做漂亮的說明 發布:2022-10-02 02:34:42 瀏覽:634
中國銀行貸款標准利息多少 發布:2022-10-02 02:22:34 瀏覽:568
新鄭陳中小學一年多少錢 發布:2022-10-02 02:18:52 瀏覽:331
70厘米如意多少錢 發布:2022-10-02 02:17:05 瀏覽:591
一個月省一千10年是多少 發布:2022-10-02 02:16:51 瀏覽:643
重光東里房價多少一個月 發布:2022-10-02 02:16:48 瀏覽:233
聯想l412多少錢一台 發布:2022-10-02 02:11:33 瀏覽:874