機器學習筆記(2)單變量線性回歸
模型介紹
關於回歸問題的模型,相當於給一些x(自變量),y(因變量)的數據對構成的數據集,去建立一個數學函數模型(model),之後就能根據這個函數模型,給出x(自變量條件)之後,預測出y(因變量結果)的值。
這裏對於條件特征定義為x,結果定義為y。
Training Set(訓練集)--> Learning Algorithm(學習算法) --> h(假設函數)
然後在得到h之後,可以通過:
x(條件特征)--> h(假設函數) --> y(結果)
針對於這個思想和基本模型,可以利用比較多的數學上的統計方法做出模型。
代價函數
對於線性模型,我們常使用如下這個假設函數模型:
對於這個線性的假設函數,如何得到一個合適的θ0和θ1是的這個假設函數更契合我們需要預測的東西就至關重要了,這裏就需要用到所謂的代價函數。
平方誤差代價函數(數學定義)
我們希望\(h_θ(x^{(i)})-y^{(i)}\)盡可能的小,對於一整個樣本集合,可以使用以下的式子:
\[
J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2}
\]
其中m是樣本容量,也就是樣本數據的總數,之所以有個1/2的存在是因為對於\(J(θ_0,θ_1)\)需要求得最小值,就需要采用求導的方式,而構造的方式是誤差平方和就會出現一個系數2,可以相互消去,計算會更加方便。
分析
為什麽要對\(J(θ_0,θ_1)\)求得最小值,首先目的在於使得\(h_θ(x)\)這條函數曲線最符合數據集,在θ0=0的時候,根據圖像很容易的就能看出最符合數據集的曲線\(h_θ(x)\)的斜率θ1為參數的\(J(θ_1)\)最接近0(當所有樣本點全在曲線\(h_θ(x)\)上時,\(J(θ_1)\)=0)。
若兩個參數都不為0的時候,其代價函數\(J(θ_0,θ_1)\)可以被描繪為如下的圖形,其最小值依然代表最合適的曲線\(h_θ(x)\)系數取值。
其通過等高線圖描繪為如下:
梯度下降算法
定義
通過代價函數的意義,可以知道目的在於求得代價函數取得最小值時θ的取值,這就引入梯度下降算法。梯度下降算法通過設定初始值,然後從初始值慢慢逼近結果,利用叠代思想有點類似於求局部最優進而得到全局最優的結果(貪心
原課中打了一個很有意思的比方:
一個人在山頂(初始值),想要用最快的速度下山(到達極小值點),首先做的就是觀察四周,尋找目光所及的最小值點,然後移動下山,在新的地點反復這個操作。
數學分析
將以上的操作轉換為數學語言就是(一個單變量線性回歸的梯度下降算法式):
\[
θ_j:=θ_j-α\frac{?}{?θ_j}J(θ_0,θ_1)
\]
\[
(for (j=0) and (j=1))
\]
- (:=)符號是賦值的意思,
pascal的記憶 - α是學習率,從函數可以看出,α越大,函數變化的幅度就越大,也就能越快的到達目標值,也就代表著下山越快,如果α比較小的話,下山速度就會比較慢,其實對於導數的性質,當取到極小值的時候,導數值為0,這就是算法的邊界。
- 關於計算這個是同步賦值,也就是說,各個參數是統一計算完,再一起賦值。與之對應的是異步賦值。
單變量線性回歸
利用以上算法,我們可以得到最後的單變量線性回歸的計算式子(由於單變量線性回歸函數的圖像特點,最後必然是全局最優點):
\[
h_θ(x)=θ_0+θ_1x
\]
\[
J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})^2}
\]
\[
θ_0:=θ_0-α\frac{1}{m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})}
\]
\[
θ_1:=θ_1-α\frac{1}{m}\sum_{i=1}^{m} {(h_θ(x^{(i)})-y^{(i)})·x^{(i)}}
\]
機器學習筆記(2)單變量線性回歸