代價函式 均方誤差MSE

2022-02-26 07:00:33 字數 2147 閱讀 7975

a、我們可以從sigmoid啟用函式的導數特性圖中發現,當啟用值很大的時候,sigmoid的梯度(就是曲線的斜率)會比較小,權重更新的步幅會比較小,這時候網路正處在誤差較大需要快速調整的階段,而上述特性會導致網路收斂的會比較慢;

b、而當啟用值很小的時候,sigmoid的梯度會比較大,權重更新的步幅也會比較大,這時候網路的**值正好在真實值的邊緣,太大的步幅也會導致網路的**。**或參考:【代價函式】mse:均方誤差(l2 loss)

1.**展示mae和mse特性

import tensorflow as tf

import matplotlib.pyplot as plt

sess = tf.session()

x_val = tf.linspace(-1.,-1.,500)

target = tf.constant(0.)

#計算l2_loss

l2_y_val = tf.square(target - x_val)

l2_y_out = sess.run(l2_y_val)#用這個函式開啟計算圖

#計算l1_loss

l1_y_val = tf.abs(target - x_val)

l1_y_out = sess.run(l1_y_val)#用這個函式開啟計算圖

#開啟計算圖輸出x_val,用來畫圖

#用畫圖來體現損失函式的特點

2.mse公式及導數推導

損失函式:

以單個樣本舉例:

a=σ(z), where z=wx+b

利用sgd演算法優化損失函式,通過梯度下降法改變引數從而最小化損失函式:

對兩個引數權重和偏置進行求偏導(這個過程相對較容易):

引數更新:

這邊就說一種簡單的更新策略(隨機梯度下降):

3.分析l2 loss的特點

根據上面的損失函式對權重和偏置求導的公式我們發現:

其中,z表示神經元的輸入,σ表示啟用函式。從以上公式可以看出,w和b的梯度跟啟用函式的梯度成正比,啟用函式的梯度越大,w和b的大小調整得越快,訓練收斂得就越快。但是l2 loss的這個特點存在的缺陷在於,對於我們常用的sigmoid啟用函式來說,並不是很符合我們的實際需求。

先介紹下sigmoid啟用函式的特性:

sigmoid函式就是損失函式的輸入:a=σ(z) 中的σ()的一種。這是乙個啟用函式,該函式的公式,導數以及導數的分布圖如下圖所示:

我們可以從sigmoid啟用函式的導數特性圖中發現,當啟用值很大的時候,sigmoid的梯度(就是曲線的斜率)會比較小,權重更新的步幅會比較小,這時候網路正處在誤差較大需要快速調整的階段,而上述特性會導致網路收斂的會比較慢;而當啟用值很小的時候,sigmoid的梯度會比較大,權重更新的步幅也會比較大,這時候網路的**值正好在真實值的邊緣,太大的步幅也會導致網路的**。這我們的期望不符,即:不能像人一樣,錯誤越大,改正的幅度越大,從而學習得越快。而錯誤越小,改正的幅度小一點,從而穩定的越快。而交叉熵損失函式正好可以解決這個問題。

均方誤差損失函式

假設我們的模型是二維平面的線性回歸模型 對於這個模型,我們定義損失函式為mse,將得到如下的表示式 下面我們試著通過概率的角度,推導出上述的mse損失函式表示式。為了使模型更合理,我們假設 服從均值為0,方差為1的高斯分布,即 所以有 所以,y服從均值為 方差為1的高斯分布,則樣本點的 概率為 有了...

方差 標準差(均方差),均方誤差 均方根誤差

方差 variance 標準差 均方差,standard deviation 均方誤差 mse 均方根誤差 rmse 其中,標準差是方差的平方根,均方根誤差是均方誤差的平方根 所以,這四個概念的區別可以簡化為方差 variance 和均方誤差 mse 的區別 方差 variance 描述的是一組資料...

均方誤差和交叉熵誤差

均方誤差個交叉熵誤差都是常用的損失函式之一。損失函式是用來表示神經網路效能的 惡劣程度 的指標。即當前神經網路對監督資料在多大程度上不擬合,在多大 程度上不一致。說白了,即所建立的神經網路對輸入資料的 輸出值與監督資料 實際輸出值 的差距。上面是計算公式,其中yk表示神經網路的 輸出值,tk表示監督...