文章目錄
- 1.代價函數(cost function)
-
- 1.1 代價函數圖像
- 2.gradient descent(梯度下降)
-
- 2.1 正導數:positive derivative
- 2.2 負導數:negative derivatvie
- 2.3 線性回歸的梯度下降(gradient descent of linear regression )
- 3.矩陣的介紹
- 4.多元線性回歸和其梯度下降
-
- 4.1 多元線性回歸
- 4.2 多元線性回歸的梯度下降
- 4.3 多元線性回歸的梯度下降——特征縮放
- 4.4 多項式回歸
1.代價函數(cost function)
1.1 代價函數圖像

上圖兩個坐标表示參數 θ 0 \theta_0 θ0和 θ 1 \theta_1 θ1,它們是動态變化的。
通常使用contour figure(等高線線)來描述上面的3D圖像:
在右圖的等高線中,每個圓圈上面的點的值是一緻的。目前紅色點處于參數 θ 0 = 800 , θ 1 = − 0.15 \theta_0 = 800, \theta_1 = -0.15 θ0=800,θ1=−0.15對應于左圖的直線,但這時候的直線沒有很好拟合資料。
2.gradient descent(梯度下降)
- 微積分:calculus
- 導數:derivatives
- 收斂:converge
- 不收斂:diverge
梯度下降更新公式:
θ j : = θ j − α ∂ J ( θ 0 , θ 1 ) ∂ θ j , ( f o r j = 0 a n d = 1 ) \theta_j := \theta_j-\alpha \frac{\partial J(\theta_0, \theta_1)}{\partial \theta_j}, (for ~ j = 0~and~= 1) θj:=θj−α∂θj∂J(θ0,θ1),(for j=0 and =1)
上面兩個參數需要同步更新,也就是說在一次疊代中,這兩個參數是同時更新的。假設首先需要更新參數 θ 1 \theta_1 θ1,其cost function為:
θ 1 : = θ 1 − α ∂ J ( θ 1 ) ∂ θ 1 ( 2 − 1 ) \theta_1 := \theta_1-\alpha \frac{\partial J(\theta_1)}{\partial \theta_1}~~~~~(2-1) θ1:=θ1−α∂θ1∂J(θ1) (2−1)
同時其cost function的函數圖像為:
2.1 正導數:positive derivative
當利用公式(2-1)可以求得導數為positive number,則 θ 1 \theta_1 θ1會偏向于向最小值移動。
2.2 負導數:negative derivatvie
同樣的,求得的導數會出現negative number,則使得更新之後的 θ 1 \theta_1 θ1也會偏向于最小值。
2.3 線性回歸的梯度下降(gradient descent of linear regression )
線上性回歸中,通常使用square error(平方誤差)來計算代價函數:
h θ ( x ( i ) ) = θ 0 + θ 1 x ( i ) h_{\theta}(x^{(i)}) = \theta_0 + \theta_1 x^{(i)} hθ(x(i))=θ0+θ1x(i)
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 ( 2 − 2 ) J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 ~~~~~(2-2) J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2 (2−2)
公式中 y ( i ) y^{(i)} y(i)代表真實樣本的值, h θ j ( x ( i ) ) h_{\theta_j}(x^{(i)}) hθj(x(i))則代表線性回歸模型的預測值。 m m m為data set中的樣本數。
- 為什麼要在分子上加上2呢?這是因為在求解partial derivative(偏導數)中可以化簡出比較簡便的形式。
最後可以分别求得兩個參數的partial derivative:
j = 0 : ∂ ∂ θ 0 J ( θ ) = ∂ ∂ θ 0 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) j=0:\frac{\partial}{\partial \theta_0} J(\theta) = \frac{\partial}{\partial \theta_0} \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) j=0:∂θ0∂J(θ)=∂θ0∂2m1i=1∑m(hθ(x(i))−y(i))2=m1i=1∑m(hθ(x(i))−y(i))
j = 1 : ∂ ∂ θ 1 J ( θ ) = ∂ ∂ θ 1 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x ( i ) j=1:\frac{\partial}{\partial \theta_1} J(\theta) = \frac{\partial}{\partial \theta_1} \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 = \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) * x^{(i)} j=1:∂θ1∂J(θ)=∂θ1∂2m1i=1∑m(hθ(x(i))−y(i))2=m1i=1∑m(hθ(x(i))−y(i))∗x(i)
- Batch:每完成一次梯度更新,則預設為完成了一個batch。在batch裡面,梯度更新會計算所有的 m m m個樣本。
3.矩陣的介紹
- 機關(identity)矩陣: I I I(對角矩陣都為1)
- 轉置矩陣
-
矩陣的逆(matrix inverse):
A A − 1 = A − 1 A = I AA^{-1} = A^{-1}A = I AA−1=A−1A=I
其中矩陣 A A A的次元為 m × m m \times m m×m,它必定是一個方陣。如果一個矩陣沒有逆矩陣,則稱為奇異矩陣(Singular matrix),元素為0的矩陣就是一個奇異矩陣。
4.多元線性回歸和其梯度下降
4.1 多元線性回歸
之間已經簡要叙述過簡單的線性回歸模型,其公式為:
h θ ( x ( i ) ) = θ 0 + θ 1 x ( i ) h_{\theta}(x^{(i)}) = \theta_0 + \theta_1 x^{(i)} hθ(x(i))=θ0+θ1x(i)
為了引出多元線性回歸模型,引入一個預測房價的問題,其具體的特征如下:
在上面的房價預測問題中,共有4個特征:size,房間數量,樓層,使用年限,需要預測的是:價格。
- n n n:共有n個特征
- x ( i ) x^{(i)} x(i):表示在資料集中的第 i i i個樣本
- x j ( i ) x^{(i)}_j xj(i):表示在第 i i i個樣本中,第 j j j個特征。
最後可以列出多元線性回歸模型:
h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n = θ T x h_{\theta}(x) = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n \\ = \theta^{T}x hθ(x)=θ0x0+θ1x1+θ2x2+⋯+θnxn=θTx
其中, θ \theta θ和 x x x都為一維向量,同時 x 0 = 1 x_0=1 x0=1。
4.2 多元線性回歸的梯度下降
在2.3節中已經簡單介紹了線性回歸的梯度下降,那麼多元線性回歸的梯度下降也是一樣的,在一次疊代的過程當中,需要更新所有的參數 θ \theta θ:
θ j = θ j − α ∂ ∂ θ j J ( θ 0 , . . . , θ n ) \theta_j = \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta_0,...,\theta_n) θj=θj−α∂θj∂J(θ0,...,θn)
具體的,上述公式中的偏導數可以化簡為:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x j ( i ) ) − y ( i ) ) x j ( i ) \theta_j := \theta_j - \alpha \frac{1}{m} \sum^{m}_{i=1} (h_{\theta}(x^{(i)}_j) - y^{(i)}) x^{(i)}_j θj:=θj−αm1i=1∑m(hθ(xj(i))−y(i))xj(i)
4.3 多元線性回歸的梯度下降——特征縮放
在原始的算法當中,不同特征之間的取值範圍不同,會造成gradient descent時收斂過慢。例如,假設存在兩個特征:房子的面積和房子的年齡。房子面積 x 1 x_1 x1的取值範圍在**(1-2000),而房子年齡 x 2 x_2 x2的取值範圍為(1-10)**。這兩個特征對應的參數為: θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2。它們的代價函數contour圖像如下:
可以看出 θ 1 \theta_1 θ1的取值範圍會比 θ 2 \theta_2 θ2要小,這是因為隻要改變一點點的 θ 1 \theta_1 θ1,則代價函數 J ( θ ) J(\theta) J(θ)會影響比較大,是以它的取值會比較小。
這時候如果利用梯度下降算法,它會收斂速度比較慢。而如果把這兩個特征進行縮放,縮放到0-1之間,這時候圖像會變成:
此時收斂速度加快,能夠更快找到全局最優點。縮放特征有兩種比較常見的方法:
-
最大最小歸一化:
x ( i ) = x ( i ) − m i n m a x − m i n x^{(i)} = \frac{x^{(i)}- min}{max-min} x(i)=max−minx(i)−min
首先找出該特征所有值的最大值和最小值,然後按照公式對每個特征值進行縮放。
-
Z-score标準化:
x ( i ) = x ( i ) − μ σ x^{(i)} = \frac{x^{(i)}- \mu}{\sigma} x(i)=σx(i)−μ
其中 μ \mu μ為均值, σ \sigma σ為方差
4.4 多項式回歸
有些資料不能簡單用多元線性回歸來進行拟合,這時候可以利用多項式回歸來進行拟合。
具體的,polynomial regression可以拟合下圖:
可以用下面公式表示
θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 \theta_0 + \theta_1x + \theta_2 x^2 + \theta_3 x^3 θ0+θ1x+θ2x2+θ3x3
也即是說可以用cubic model(三次模型)來拟合曲線,同時作為多項式回歸方程。