天天看點

Caffe loss 精講

每一次訓練疊代,都會向前傳播,産生loss值。

Loss部分在solver檔案中,有兩個參數:

1. average_loss

預設值是1,Loss為單個iteration對應的loss;

當設定average_loss = n , 則Loss為n個Loss的均值,相當于做個均值濾波。

2. weight_decay

為正則項在Loss函數中的系數。如果過拟合,調大這個參數;如果欠拟合,調小這個參數;

(代碼可以在solver.cpp檔案中檢視)

最終正則項的懲罰 是solver.prtotxt中設定的懲罰項weight_decay與layer中的decay_mult的乘積。若不想讓某一些參數加入正則項中,則将layer中的對應param中的參數decay_mult設定為0。例如,一般把bias的decay_mult設定為0,代表bias不加入到正則項的優化中。

layer中有非零的loss_weight,這層的最後blob乘上對應的loss_weight累加到Loss中。

在顯示過程中,顯示的Loss為n(average_loss的值)個Loss平均後的值,且顯式的loss并沒有加入正則項的懲罰:

Caffe loss 精講