機器學習公開課筆記(2):多元線性回歸


多元線性回歸

一元線性回歸只有一個特征$x$,而多元線性回歸可以有多個特征$x_1, x_2, \ldots, x_n$

假設 (Hypothesis):$h_\theta(x)=\theta^Tx=\theta_0x_0+\theta_1x_1+\ldots+\theta_nx_n$

參數 (Parameters):$\theta_0, \theta_1, \ldots, \theta_n$

代價函數 (Cost function):$J(\theta_0, \theta_1, \ldots, \theta_n)=\frac{1}{2m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2$

目標 (Goal):$\min_\theta J(\theta)$

梯度下降 (Gradient Descent)

迭代更新參數$\theta$: $\theta_j = \theta_j - \alpha \frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}$   for $j = 0, 1, 2, \ldots, n$

向量化實現 (Vectorized Implementation):$\theta = \theta - \alpha \frac{1}{m}(X^T(X\theta-y))$

Feature Scaling

動機:如果不同特征之間的數值量級差別太大,那么梯度下降的速度非常慢,為了加快算法的收斂速度,將各個特征划歸到統一數量級,一般是[0, 1]或者[-1, 1]之間

Trick1: $x_j = \frac{x_j - \mu_j}{s_j}$, 其中 $\mu_j$表示第j個特征的均值, $s_j$表示第j個特征的范圍(max - min)或者標准差(standard deviation)

Trick2: 學習速率的選擇

  • 合理的選擇學習速率,保證$J(\theta)$的值在每一次迭代后都是下降的;
  • 如果$J(\theta)$隨迭代次數單調遞增或者$J(\theta)$隨迭代次數成波浪形(例如: \/\/\/\/\/\/), 這時候應該考慮選擇較小的$\alpha$; 但是$\alpha$太小會導致收斂速度過慢
  • 為了正確的選擇 $\alpha$,嘗試序列 0.001, 0.01, 0.1, 1等

Normal Equation的數學推導

解析推導過程:
$$J(\theta)=\frac{1}{2m}\sum\limits_{i=1}^{m}\left(h_\theta(x^{x(i)})-y^{(i)}\right)$$
可以簡化寫成向量的形式:
$$J(\theta)=\frac{1}{2m}||X\theta-y||^2=\frac{1}{2m}(X\theta-y)^T(X\theta-y)$$
展開可得:
$$J(\theta)=\frac{1}{2m}[\theta^TX^TX\theta-y^TX\theta-\theta^TX^Ty+y^Ty]$$ 注意到$y^TX\theta$是一個標量,因此它與其轉置$\theta^TX^Ty$是相等的,即中間兩項是相等的,從而$J(\theta)$可以進一步化簡為:
$$J(\theta) = \frac{1}{2m}[X^TX\theta-2\theta^TX^Ty+y^Ty]$$
對向量的求導與單變量的求導法則有諸多不同,這里不加證明給出如下兩個重要的向量求導結論(具體可參照向量矩陣求導
\begin{equation}d(X^TAX)/dX = (dX^T/dX)AX + (d(AX)^T/dX)X = AX + A^TX \end{equation}
\begin{equation}d(X^TA)/dX = (dX^T/dX)A + (dA/dX)X^T = IA + 0X^T = A\end{equation}
根據結論(1), 第一項的求導結果為$X^TX\theta+X^TX\theta=2X^TX\theta$; 根據結論(2),第二項的求導結果為$-2x^Ty$;第三項不含$\theta$,求導結果當然為0,整合三項我們可以得到$J(\theta)$的導數$\frac{dJ(\theta)}{d\theta}$,
$$\frac{dJ(\theta)}{d\theta}=\frac{1}{2m}(2X^TX\theta-2X^Ty)$$
令該導數等於0,我們很容易得到
$$\theta=(X^X)^{-1}X^Ty$$
這就是使得代價函數$J(\theta)$取得最小值對應的$\theta$。

梯度下降和Normal Equation優劣對比

 
Gradient Descent Normal Equation
需要選擇合適的$\alpha$ 不需要選擇$\alpha$
需要不斷的迭代 不需要迭代
當特征非常多時(n非常大),算法依然表現良好 當n非常大時,計算速度非常慢,因為需要計算$(X^TX)^{-1}$復雜度為$O(n^3)$

參考文獻

[1] Andrew Ng Coursera 公開課第二周


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM