天天看點

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

文章目錄

  • 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 代價函數圖像

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

上圖兩個坐标表示參數 θ 0 \theta_0 θ0​和 θ 1 \theta_1 θ1​,它們是動态變化的。

通常使用contour figure(等高線線)來描述上面的3D圖像:

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

在右圖的等高線中,每個圓圈上面的點的值是一緻的。目前紅色點處于參數 θ 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

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

當利用公式(2-1)可以求得導數為positive number,則 θ 1 \theta_1 θ1​會偏向于向最小值移動。

2.2 負導數:negative derivatvie

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

同樣的,求得的導數會出現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​+θ1​x(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(θ)=2m1​i=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​∂​2m1​i=1∑m​(hθ​(x(i))−y(i))2=m1​i=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​∂​2m1​i=1∑m​(hθ​(x(i))−y(i))2=m1​i=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​+θ1​x(i)

為了引出多元線性回歸模型,引入一個預測房價的問題,其具體的特征如下:

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

在上面的房價預測問題中,共有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)=θ0​x0​+θ1​x1​+θ2​x2​+⋯+θn​xn​=θ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​−αm1​i=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.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

可以看出 θ 1 \theta_1 θ1​的取值範圍會比 θ 2 \theta_2 θ2​要小,這是因為隻要改變一點點的 θ 1 \theta_1 θ1​,則代價函數 J ( θ ) J(\theta) J(θ)會影響比較大,是以它的取值會比較小。

這時候如果利用梯度下降算法,它會收斂速度比較慢。而如果把這兩個特征進行縮放,縮放到0-1之間,這時候圖像會變成:

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

此時收斂速度加快,能夠更快找到全局最優點。縮放特征有兩種比較常見的方法:

  • 最大最小歸一化:

    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可以拟合下圖:

機器學習——線性回歸1.代價函數(cost function)2.gradient descent(梯度下降)3.矩陣的介紹4.多元線性回歸和其梯度下降

可以用下面公式表示

θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 \theta_0 + \theta_1x + \theta_2 x^2 + \theta_3 x^3 θ0​+θ1​x+θ2​x2+θ3​x3

也即是說可以用cubic model(三次模型)來拟合曲線,同時作為多項式回歸方程。

繼續閱讀