天天看點

交叉熵和損失函數的了解

    在拟合sinx時使用的是損失函數進行拟合的,而在分類任務中使用的則是交叉熵函數。我認為損失函數和交叉熵函數的差别在與他們的輸出值與實際結果的比較的衡量标準不同。損失函數要保證兩者差别最小,而交叉熵函數則要保證機率最大。損失函數是0.5*(label[i]-output[i])^2,是用來拉近正确值與輸出值的,也就是讓正确值和輸出值的差越小越好,而并不是一定要輸出正确的結果,這種損失函數比較适合拟合函數,用來逼近輸出值。但不适合使用分類任務,交叉熵是計算幾個事物的機率誤差,适合于one-hot編碼的分類任務,也就是說,交叉熵其目的在于讓“大者機率更大,小者機率更小”,而不是簡單的趨向于結果值,是以它的正确輸出可以是一個比1大很多的值和幾個跟1差不多大的值組成,然後再進行softmax機率化。而損失函數卻不能容忍這一點,這就是損失函數在分類任務中的局限性。而交叉熵使用softmax函數,使用exp指數化參數,很容易的就可以保證“大者機率更大,小者機率更小”這一目的。

繼續閱讀