1. 程式人生 > >機器學習公開課筆記(2):多元線性迴歸

機器學習公開課筆記(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 公開課第二週

相關推薦

機器學習開課筆記(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$ 引數 (Para

斯坦福機器學習開課筆記(一)--單變數線性迴歸

授課老師:Andrew Ng 1、model representation(建立模型) 考慮一個問題,如果給定一些房屋售價和房屋面積的資料,現在要預測給定其他面積時的房屋售價,那該怎麼辦?其實這是一個線性迴歸問題,給定的資料作為訓練樣本,用其訓練得到一個表示售價和麵積關

機器學習開課筆記(8)k-means聚類和PCA降維

K-Means演算法 非監督式學習對一組無標籤的資料試圖發現其內在的結構,主要用途包括: 市場劃分(Market Segmentation) 社交網路分析(Social Network Analysis) 管理計算機叢集(Organize Computer Clusters) 天文學資料分析(A

機器學習開課筆記(7)支援向量機

支援向量機(Support Vector Machine, SVM) 考慮logistic迴歸,對於$y=1$的資料,我們希望其$h_\theta(x) \approx 1$,相應的$\theta^Tx \gg 0$; 對於$y=0$的資料,我們希望$h_\theta(x) \approx 0$,相應的$\

機器學習開課筆記(1)機器學習簡介及一元線性迴歸

初步介紹 監督式學習: 給定資料集並且知道其正確的輸出應該是怎麼樣的,即有反饋(feedback),分為 迴歸 (Regressioin): map輸入到連續的輸出值。 分類 (Classification):map輸出到離散的輸出值。 非監督式學習: 給定資料集,並不知道其正確的輸出是什麼,

機器學習開課筆記(6)應用機器學習的建議

應用機器學習的建議 1. 評估學習演算法 在實際中應用學習演算法時,如何評估一個學習演算法的好壞?進一步地,如果學習的演算法的效果不太好,如何改進學習演算法?例如,對於一個簡單的線性擬合模型,改進演算法效果的策略包括: 採用更多的訓練例項訓練模型 採用更小的特徵集合 增加額外的特徵 嘗試高次項

機器學習開課筆記(10)大規模機器學習

批梯度下降 (Batch Gradient Descent) 以線性迴歸為例,用梯度下降演算法進行引數更新的公式為$$\theta_j=\theta_j-\alpha\frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}$$可

機器學習開課筆記(9)異常檢測和推薦系統

異常檢測(Anomaly Detection) 基本假設:多數情況下資料點落入正常的取值範圍,但是當異常行為發生時,資料點的取值落入正常取值範圍之外(如圖1所示)。所以可以利用高斯分佈,計算行為發生的概率,如果是概率小於給定閾值,則認為發生了異常行為。基本過程是利用訓練資料點建立模型$p(x)$,對於新的資

機器學習開課筆記(5)神經網路(Neural Network)——學習

這一章可能是Andrew Ng講得最不清楚的一章,為什麼這麼說呢?這一章主要講後向傳播(Backpropagration, BP)演算法,Ng花了一大半的時間在講如何計算誤差項$\delta$,如何計算$\Delta$的矩陣,以及如何用Matlab去實現後向傳播,然而最關鍵的問題——為什麼要這麼計算?前面計算

機器學習開課筆記(4)神經網路(Neural Network)——表示

動機(Motivation) 對於非線性分類問題,如果用多元線性迴歸進行分類,需要構造許多高次項,導致特徵特多學習引數過多,從而複雜度太高。 神經網路(Neural Network) 一個簡單的神經網路如下圖所示,每一個圓圈表示一個神經元,每個神經元接收上一層神經元的輸出作為其輸入,同時其輸出訊號到下一

機器學習開課筆記第九周之大數據梯度下降算法

機器學習 nbsp gradient min 三種 依次 再看 獲得 mini 一,隨機梯度下降法(Stochastic Gradient Descent) 當訓練集很大且使用普通梯度下降法(Batch Gradient Descent)時,因為每一次\(\theta\)

廣義線性模型 - Andrew Ng機器學習開課筆記1.6

sans luci art 能夠 tro ron 便是 import grand 在分類問題中我們如果: 他們都是廣義線性模型中的一個樣例,在理解廣義線性模型之前須要先理解指數分布族。 指數分

斯坦福機器學習開課筆記 十三 推薦系統

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                授課老師:Andrew Ng1、problem formulation(問題產生)在平時購物的時候我們都會看到網站把向我們推薦的商品放在醒目位置,其實這就是推薦

【Andrew NG 機器學習開課】CS229Introduction、Linear Regression

這份筆記來源於Andrew NG在Coursera上的公開課和講義。 Introduction 機器學習問題 (一)有監督學習(Supervised Learning) 基本思想是:given the right answer for each example i

斯坦福機器學習開課筆記(十五)--[應用]照片OCR技術

1、problem description and pipeline(問題描述和流水線) OCR是optical character recognition的縮寫,翻譯過來就是光學字元辨識。照片中的OCR技術其實就是識別中照片中存在的字元,例如下面這幅圖: 關於過程

斯坦福機器學習開課筆記(十三)--推薦系統

授課老師:Andrew Ng 1、problem formulation(問題產生) 在平時購物的時候我們都會看到網站把向我們推薦的商品放在醒目位置,其實這就是推薦系統。現在考慮一個電影推薦系統的例子,我們擁有一些使用者對於一些電影的評分,如下: 從上面可以看到,使

吳恩達機器學習開課學習筆記(一)

吳恩達機器學習公開課學習筆記(一) 一些規範表達形式 線性迴歸/單變數線性迴歸 代價函式 公開課連結: https://study.163.com/course/courseLearn.htm?courseId=1004570029#/lea

斯坦福機器學習開課--整理筆記(…

跟老闆聊了很久之後,決定換一個研究方向,本來想專門寫一篇博文說說資料探勘與機器學習,後來轉念也想也算了,畢竟之前還是有很多可以用上的知識,這幾天準備把Andrew大牛的機器學習公開課重新刷一遍,簡單做一下筆記好了。 第一課是基本介紹,略過。 第二課:監督學習應用.梯度下降: 這節課主要探究的是監督

機器學習實戰讀書筆記(2)--決策樹

決策樹 決策樹的一個重要任務是為了資料中所蘊含的知識資訊,因此決策樹可以使用一系列不熟悉的資料集合,並從中提取系列規則,在這些機器根據資料集建立規則時,就是機器學習的過程.專家系統中經常使用決策樹 決策樹的構造 優點:計算複雜度不高,輸出結果易於理解,對中間值缺失不敏

斯坦福機器學習開課

視訊 http://open.163.com/movie/2008/1/M/C/M6SGF6VB4_M6SGHFBMC.html 相關筆記 http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in