吳恩達機器學習課程筆記——第二周

1. 多變量線性回歸(Linear Regression with Multiple Variables)

也稱為多元線性回歸,一元就是一個變量,多元就是多個變量,在這里也可以叫做多個特征

1.1 多維特征(Multiple Features)

之前,我們討論過單變量/特征的回歸模型,但是單變量并不足以精確地預測房價,因此,我們需要對房價模型增加更多的特征,例如房間數(shù)樓層等,構成一個含有多個變量的模型。

多特征數(shù)據(jù)

現(xiàn)在需要引入新的注釋來建立和解釋新的模型↓

符號 意義
i 特征矩陣中的第 i 行
j 特征矩陣中第 i 行的第 j 個特征
m 訓練樣本的數(shù)量
n 特征的數(shù)量
新模型的注釋

在我們引入了新的特征之后,原來的那一條公式失去了作用,取而代之的是一條新的公式

多變量線性回歸公式表達1
多變量線性回歸公式表達2

多變量線性回歸方程:

多變量線性回歸方程

2. 多變量梯度下降(Gradient Descent for Multiple Variables)

2.1 代價函數(shù)

代價函數(shù)

2.2 批量梯度下降算法

原公式:

原公式

經(jīng)過修改,得到現(xiàn)在的公式:

現(xiàn)在的公式

代入多變量回歸公式,得:

未求導公式

求導后得到批量梯度下降算法

批量梯度下降算法公式

2.3 梯度下降法實踐 1-特征縮放(Feature Scaling)

在我們面對多維特征問題的時候,我們要保證這些特征都具有相近的尺度,這將幫助梯度下降算法更快地收斂。

在以下圖像中,我們就可以發(fā)現(xiàn),圖片非常地橢圓,這種橢圓使得我們在梯度下降的時候需要非常多次的迭代才能收斂。

迭代圖像

因此我們需要特征縮放去解決這個問題,它將所有的特征尺度都盡量==縮放到-1到1之間==,太大或者太小都不好,如下圖

特征縮放
2.3.1 特征均值標準化(mean normalization):
標準化公式
符號 含義 計算方法 python(matlab)函數(shù) 參數(shù)解釋
x_i 特征
μ_i 平均值 同一個x_n相加求再除以同一個x_n的數(shù)量 python:mean(x,axis=0) matlab:mean(x) x:數(shù)據(jù)集,axit:軸,為0計算每一列,為1計算每一行
s_i 標準差
標準差公式
,也可以簡單的使用最大值減去最小值
std(x) 方法同上

2.4 梯度下降法實踐 2-設置梯度下降法迭代次數(shù)(Debugging)

代價函數(shù)會隨著迭代次數(shù)的下降而收斂,不同的迭代算法需要不同的迭代次數(shù),有的可能需要30次,而有的可能則需要300萬次


梯度下降法迭代次數(shù)

我們要判斷代價函數(shù)是否收斂有兩個方法

  1. 看代價函數(shù)的曲線變化
  2. 自動收斂測試

當下降幅度少于一個θ值的時候(θ值自己取),則可以看作代價函數(shù)收斂

自動收斂測試

但是一般而言,θ值是比較難確定的,最好還是自己通過圖像去判斷是否達到了收斂的程度

2.5 梯度下降法實踐 3-學習率(Learning Rate)

2.5.1 學習率α過大

通常,隨著迭代次數(shù)的增加,代價函數(shù)應該是逐步下降的,但是當你看到代價函數(shù)的值增加的時候,很可能學習率過大所導致的,學習率過大使得函數(shù)錯過了最低點

學習率過大圖示1
學習率過大圖示2
2.5.2 學習率α過小

學習率過大會有問題,那么過小了,也會造成問題,如下圖的藍色畫筆所畫,當學習率過小,學習速度就會很慢,需要更多的迭代次數(shù)才能迭代到最低點

學習率過小圖示
2.5.3 如何選取學習率

在選取學習率的時候,我們通常都需要設置多個學習率進行測試,學習率之間的倍數(shù)通常是3倍和10倍,通過測試,我們就可以找到最好的那一個學習率

學習率選取

3. 特征與多項式回歸(Features and Polynomial Regression)

首先我們來舉一個例子:房價預測

房價預測
符號 含義
x1 frontage(臨街寬度)
x2 depth(縱向寬度)
x area(面積)

由此,我們可以建立一個初步的模型

線性回歸模型

但是這個線性回歸并不能很好的擬合我們的數(shù)據(jù),因此我們需要一些改變(曲線)更好地擬合數(shù)據(jù),比如一個二次方模型

二次方線性回歸模型

如下圖

二次方模型

但是我們發(fā)現(xiàn),二次方模型依然不能很好地擬合數(shù)據(jù),因為它會隨著Size的增加而下降,房價可不會因為房子面積的增加而下降,因此,我們需要一個三次方模型:

三次方模型
三次方模型

這樣子,就可以比較好地擬合我們的數(shù)據(jù)

接下來,我們通過以下方法,將多項式回歸轉變?yōu)槎嘣€性回歸方程

多元線性回歸方程

這樣子,就可以得到我們的多元線性回歸方程

經(jīng)過整合的回歸方程

由此我們就可以得到3個特征,在讀者看來,這可能是更好地標記特征,size和size的平方不是同一樣東西

接下來還沒完,我們發(fā)現(xiàn)特征與特征之間相差非常大

特征差異

這就可能出現(xiàn)之前說過的迭代問題,因此,我們需要對特征進行縮放,從而使得方程能得到更好更快地迭代

特征縮放

當然,條條大路通羅馬,除了三次方模型外,我們還可以采用其他模型使得曲線更加擬合數(shù)據(jù),比如平方根模型(紫色線)

平方根模型
平方根模型

因此,我們需要深入了解數(shù)據(jù)和數(shù)據(jù)的本質,從而才能找到更好的模型去擬合數(shù)據(jù)

4. 正規(guī)方程(Normal Equation)

到目前為止,我們都在使用梯度下降算法求解最小值


梯度下降求解代價函數(shù)最小值

但在某些問題上,用正規(guī)方程可以更快求解出最優(yōu)值,通過正規(guī)方程可以一次性求到這一個值,那么什么是正規(guī)方程呢?

就拿上圖的J(θ)函數(shù)來說,要求最優(yōu)解,根據(jù)我們學過的微積分知識,對它進行一個直接求導就可以

求導

回到之前說的平方代價函數(shù),對于這么一個函數(shù),我們需要對它每一個變量都進行求偏導,得出每一個θ的值


多特征變量求導

因此,我們選擇使用線性代數(shù)的方法進行批量求導,使用以下正規(guī)方程就能解出向量θ

向量θ
正規(guī)方程符號解釋

完整推導過程:

http://blog.xiangjiang.live/derivations-of-the-normal-equation/

https://zhuanlan.zhihu.com/p/22757336

先來理解一下這個方程

首先,假設樣本數(shù)為m,每個樣本的期望值與實際值y相等

正規(guī)方程假設函數(shù)

轉化成向量表達的形式

向量表達

注:*符號是矩陣叉乘的意思

由于X不一定是方陣,所以X乘上X的逆不一定等于E(單位矩陣,就是對角線是1,其他為0的矩陣,單位矩陣肯定是一個方陣),因此X需要先乘上X的轉置,使它變成一個方陣,由于一個方陣的逆乘一個方陣等于I(單位矩陣),所以就消去了,最后得到結果:

正規(guī)方程運算

下面用數(shù)據(jù)來舉一個例子

正規(guī)方程舉例

得到以下兩個矩陣

正規(guī)方程矩陣

運用正規(guī)方程方法求解,得

正規(guī)方程求解過程

梯度下降與正規(guī)方程的比較:

梯度下降 正規(guī)方程
需要選擇學習率 α 不需要
需要多次迭代 不需要迭代
當特征數(shù)量 n 大時也能較好適用 如果特征數(shù)量 n 較大則運算代價大,因為矩陣逆的計算時間復雜度為 O(n3),通常 來說當 n 小于 10000 時還是可以接受的
適用于各種類型的模型 只適用于線性模型,不適合邏輯回歸模型等其他模型

總結一下,只要特征變量的數(shù)目并不大,正規(guī)方程是一個很好的計算參數(shù) θ 的替代方法。具體地說,只要特征變量數(shù)量小于一萬,我們通常使用標準方程法,而不使用梯度下降法。隨著我們要講的學習算法越來越復雜,例如,當我們講到分類算法,像邏輯回歸算法,我們會看到,實際上對于那些算法,并不能使用正規(guī)方程方法。

4.1 設計矩陣(design matrix)

統(tǒng)計學和機器學習中,設計矩陣是一組觀測結果中的所有解釋變量的值構成的矩陣,常用X表示。設計矩陣常用于一些統(tǒng)計模型,如一般線性模型,方差分析中。

4.2 矩陣X'X是奇異矩陣

原因有兩個:

  1. 有兩個成一定比例的特征值,使得矩陣不可逆
  2. 當訓練樣本比參數(shù)少很多的時候,可能會導致矩陣結果不可逆

解決方案:

  1. 查看特征里面是否有些重復或者多余的特征,比如呈線性相關的特征,刪除重復兩個重復特征中的其中一個
  2. 看特征值中是否有多余的特征,直到刪到不再多余為止,如果實在太多,需要考慮使用正則化方法

如果矩陣 X' X是不可逆的,(通常來說,不會出現(xiàn)這種情況),如果在 Octave 里,可以用偽逆函數(shù)pinv()來實現(xiàn)。這種使用不同的線性代數(shù)庫的方法被稱為偽逆。即使X'X的結果是不可逆的,但算法執(zhí)行的流程是正確的。總之,出現(xiàn)不可逆矩陣的情況極少發(fā)生,所以 在大多數(shù)實現(xiàn)線性回歸中,出現(xiàn)不可逆的問題不應該過的關注 X' X 是不可逆的。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內(nèi)容