均方誤差個交叉熵誤差都是常用的損失函數之一。
首先簡要介紹下損失函數:
損失函數是用來表示神經網絡性能的“惡劣程度”的指標。即當前神經網絡對監督數據在多大程度上不擬合,在多大
程度上不一致。說白了,即所創建的神經網絡對輸入數據的預測輸出值與監督數據(實際輸出值)的差距。
均方誤差:
上面是計算公式,其中yk表示神經網絡的預測輸出值,tk表示監督數據,k表示數據的維數。前面的1/2是為了求導
的時候可以消去指數下來的2。
下面是Python的簡單實現:
# 均方誤差 def mean_squared_error(y, t): return 0.5 * np.sum((y - t)**2)
交叉熵誤差:
上面是計算公式,log表示以e為底數的自然對數,yk是神經網絡預測輸出值,tk是正解標簽。並且tk中只有正確解
標簽的索引為1,其他都是0(one-hot表示)。
下面是Python的簡單實現:
# 交叉熵誤差 def cross_entropy_error(y, t): delta = 1e-7 # 注意此處為0.0000001 用於防止出現np.log(0)時出現的無窮小 防止出現-inf后無法繼續計算 return -np.sum(t * np.log(y + delta))