softmax損失函數(shù)推導(dǎo) 為什么交叉熵cross-entropy可以用于計算代價?
為什么交叉熵cross-entropy可以用于計算代價?請問神經(jīng)網(wǎng)絡(luò)有多個輸出的回歸問題,損失函數(shù)如何定義比較合理?在我看來,多重輸出與損失函數(shù)的類型選擇沒有直接關(guān)系。一般來說,使用交叉熵是沒有問題的
為什么交叉熵cross-entropy可以用于計算代價?
請問神經(jīng)網(wǎng)絡(luò)有多個輸出的回歸問題,損失函數(shù)如何定義比較合理?
在我看來,多重輸出與損失函數(shù)的類型選擇沒有直接關(guān)系。一般來說,使用交叉熵是沒有問題的,即使是最小均方誤差也不會產(chǎn)生顯著的影響。但是,最好添加范數(shù)的正則化因子(計算量較少)。但是,輸出的大小是影響算法收斂性的關(guān)鍵因素,因為如果要對結(jié)果進行歸一化也是非常耗時的。如果輸出太多,例如超過1000個,可以嘗試使用分層softmax。有關(guān)代碼,請參閱word2vec。希望對大家有所幫助
標(biāo)簽平滑是機器學(xué)習(xí)中的一種模型正則化方法。在分類模型中,通常的過程是先提取特征,然后進行全連接層,將輸出映射到分類大小,再進行softmax,將結(jié)果映射到0-1,然后用一個熱標(biāo)簽計算交叉熵?fù)p失函數(shù)來訓(xùn)練模型。標(biāo)簽平滑基于兩個原因:1。另外,使用一個熱表達(dá)式會使模型逐漸逼近1,從而對預(yù)測結(jié)果表現(xiàn)出過度自信,這種自信會使模型過度擬合。
2. 在分類模型中,標(biāo)簽通常用一個熱向量來表示,存在過度擬合的風(fēng)險。由于訓(xùn)練集中的訓(xùn)練數(shù)據(jù)往往是有限的,不能真實地反映預(yù)測結(jié)果的真實分布。
特別是在翻譯模型中,當(dāng)預(yù)測單詞時,通常沒有唯一的答案,同一個句子可以對應(yīng)多個翻譯方案。但一個熱點將消除這種可能性,使結(jié)果獨特,并使正確答案和其他答案之間的距離盡可能長。我們希望為每種情況留下預(yù)測的可能性。
然后標(biāo)簽平滑是使一個熱編碼更軟。方法也很簡單。一方面,它減小了1的大小,另一方面,它使0的標(biāo)記變大。計算公式如下:
即標(biāo)簽分布和相同先驗分布的加權(quán)和。如果先驗分布是均勻的,那么u(k)=1/k,k是分類數(shù)。這樣,模型的預(yù)測結(jié)果將同時擬合一個熱點的標(biāo)簽分布和先驗分布,從而提高了模型的泛化能力,降低了過度擬合的風(fēng)險。
Label smoothing是什么?有何作用?
這個問題比較普遍,因為網(wǎng)絡(luò)的損耗函數(shù)是自己設(shè)計的。如果不指定,則有兩種損失函數(shù):均方誤差和交叉熵。當(dāng)然中誤差是指輸出和標(biāo)簽之間的差值的平方和的平均值,計算方法如下:
交叉熵是為防止網(wǎng)絡(luò)在訓(xùn)練后期的延遲而提出的損失函數(shù),計算方法如下: