天天看點

損失函數的機率驗證及性質

\[J(\theta_0, \theta_1..., \theta_n) = \frac{1}{2m}\sum\limits_{i=0}^{m}(h_\theta(x_0^{(i)}, x_1^{(i)}, ...,x_n^{(i)})- y^{(i)})^2\]

或者

\[J(\mathbf\theta) = \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y})\]

     為什麼選這個函數為損失函數呢?也就是說為什麼選擇最小二乘作為名額來計算回歸方程參數?這個可以用機率論的方法進行證明。

     首先我們提供一組假設,依據這些假設,來證明選擇最小二乘是合理的。

     假設輸入與輸出為線性函數關系,表示為:\(y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)}\)

     其中\(\epsilon^{(i)}\)為誤差項,這個參數可以了解為對未模組化效應的捕獲,如果還有其他特征,這個誤差項表示了一種我們沒有捕獲的特征,或者看成一種随機的噪聲。

     假設\(\epsilon^{(i)}\)服從高斯分布(正态分布)\(\epsilon^{(i)} \sim N(0,\sigma^2)\),表示一個均值是0,方差是\(\sigma^2\)的高斯分布,且每個誤差項彼此之間是獨立的,并且他們服從均值和方差相同的高斯分布(IID independently and identically distributed,獨立同分布)。

那麼高斯分布的機率密度函數:

\[p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(\epsilon^{(i)})^2}{2\sigma^2}\big)\]

根據上述兩式可得:

\[p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big)\]

     注意: \(\theta\)并不是一個随機變量,而是一個嘗試估計的值,就是說它本身是一個常量,隻不過我們不知道它的值,是以上式中用分号表示。分号應讀作“以…作為參數”,上式讀作“給定\(x^{(i)}\)以\(\theta\)為參數的\(y^{(i)}\)的機率服從高斯分布”。

     即在給定了特征與參數之後,輸出是一個服從高斯分布的随機變量,可描述為:\(y^{(i)}|x^{(i)};\theta \sim N(\theta^Tx^{(i)},\sigma^2)\),

為什麼選取高斯分布?

1) 便于數學處理。

2) 對絕大多數問題,如果使用了線性回歸模型,然後測量誤差分布,通常會發現誤差是高斯分布的。

3) 中心極限定律:若幹獨立的随機變量之和趨向于服從高斯分布。若誤差有多個因素導緻,這些因素造成的效應的總和接近服從高斯分布。

      給定\(X\)(特征矩陣,包含所有的\(x^{(i)}\))和\(\theta\),如何描述\(y^{(i)}\)的機率呢?首先我們可以把\(y^{(i)}\)的機率寫成\(p(\overrightarrow{y}|X;\theta)\)。這個機率可以把\(\theta\)看成為固定值,\(\overrightarrow{y}\)或\(X\)的函數。我們稱這個函數為\(\theta\)的似然函數。

\[L(\theta)=L(\theta;X,\overrightarrow{y})=p(\overrightarrow{y}|X;\theta)\]

由于\(\epsilon^{(i)}\)是獨立同分布,是以給定\(x^{(i)}\)情況下\(y^{(i)}\)也是獨立同分布,則上式可寫成所有分布的乘積:

\[\begin{align*} L(\theta) &=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) \\

&=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big) \end{align*}\]

極大似然估計:選取\(\theta\)使似然性\(L(\theta)\)最大化(資料出現的可能性盡可能大)

定義\(L(\theta)\)對數似然函數為 :

\begin{align*}l(\theta) &= logL(\theta) \\ &=log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big) \\ &=\sum\limits_{i=1}^{m}log\frac{1}{\sqrt{2\pi}\sigma}exp\big(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\big) \\ &=mlog\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}*\frac{1}{2}\sum\limits_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2\end{align*}

上式兩個加項,前一項為常數。是以,使似然函數最大,就是使後一項最小,即:\(\frac{1}{2}\sum\limits_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2\)

這一項就是之前的\(J(\theta)\),由此得證,之前的最小二乘法計算參數,實際上是假設了誤差項滿足高斯分布,且獨立同分布的情況,使\(\theta\)似然最大化來計算參數。

注意:高斯分布的方差對最終結果沒有影響,由于方差一定為正數,是以無論取什麼值,最後結果都相同。

假設\(h_{\theta}(x)=\theta_{0}+\theta_{1}x\),下面在matlib中畫出損失函數\(J(\theta)\)。

代碼如下:

損失函數的機率驗證及性質
損失函數的機率驗證及性質

View Code

程式運作後效果如下

損失函數的機率驗證及性質

你可以旋轉圖,從不同視角觀察這個圖形。右邊的輪廓圖\(\theta\)範圍是0.01 - 100,總共15個輪廓。

我們可以看到取我們用梯度下降法中求得的\(\theta\)值時,損失函數取得最小值,并且損失函數具有全局最小值,并沒有局部極小值,它是一個凸函數。

theta =

    0.7502

     0.0639