本人在學(xué)習(xí)斯坦福大學(xué)的機(jī)器學(xué)習(xí)課程,特記錄課程概要內(nèi)容。課程地址: Andrew Ng機(jī)器學(xué)習(xí)課程
多個(gè)特征值
多個(gè)特征值的線性回歸也被稱為“多元線性回歸”。
下面介紹的公式符號(hào),可以有任意數(shù)量的輸入變量。
- x(i)j = 第ith個(gè)訓(xùn)練集實(shí)例中的第j個(gè)特征值
- x(i) = 第ith個(gè)訓(xùn)練集實(shí)例的輸入集合(特征值)
- m = 訓(xùn)練集實(shí)例個(gè)數(shù)
- n = 實(shí)例的特征值個(gè)數(shù)
對(duì)應(yīng)多元特征值的假設(shè)函數(shù)的變形式如下:
hθ(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + ... + θnxn
為了直觀的表示這個(gè)方程,我們可以將 θ0 作為房子的基本價(jià)格,將 θ1 作為每平方的價(jià)格, θ2 作為每層樓的價(jià)格等等。x1 將是房子的平方數(shù),x2 是房子的樓層數(shù)等。
使用矩陣乘法的定義,我們的多元假設(shè)函數(shù)可以簡(jiǎn)潔地表示為:
這是我們對(duì)一個(gè)訓(xùn)練集示例的假設(shè)函數(shù)的向量化。
備注:請(qǐng)注意,為了方便起見(jiàn),我們假設(shè) x(i)0 = 1 (i∈1,...,m)。這使得我們可以用 θ 和 x 進(jìn)行矩陣運(yùn)算。因此我們讓兩個(gè)向量 'θ' 和 x(i) 的維度保持一致(即具有相同數(shù)量的元素: n + 1 個(gè))。
多元梯度下降
梯度下降方程本身通常是相同的形式; 我們只需重復(fù)一下我們的 'n' 功能:
重復(fù)直到收斂: {
}
就是說(shuō):
重復(fù)直到收斂: {
}
以下圖將一個(gè)變量與多個(gè)變量的梯度下降進(jìn)行了比較:
梯度下降實(shí)例 I - 特征縮放
我們可以通過(guò)使每個(gè)輸入值在大致相同的范圍內(nèi)來(lái)加快梯度下降。這是因?yàn)樵谳^小的范圍內(nèi),θ 會(huì)快速下降,而在較大的范圍內(nèi)會(huì)緩慢下降,因此當(dāng)變量非常不均勻時(shí),它會(huì)低效地?cái)[動(dòng)到最佳狀態(tài)。
防止這種情況的方法是修改輸入值的范圍,使其大致相同。理想的情況是:
?1 ≤ x(i) ≤ 1
或者
?0.5 ≤ x(i) ≤ 0.5
這些不需要很精確; 我們只是想加快速度。目標(biāo)是將所有輸入值大致分到這些范圍。
做到這點(diǎn)的兩種技術(shù)是特征縮放和均值歸一化。特征縮放包括將輸入值除以輸入值的范圍(即最大值減去最小值),使得新值的范圍為 1。均值歸一化指把輸入值減去輸入值的平均值,使新輸入值的平均值為零。要實(shí)現(xiàn)這兩種技術(shù),需如以下公式所示調(diào)整輸入值:
其中 μi 是所有特征值(i)的平均值,si 是值(最大值-最小值)的范圍,或是標(biāo)準(zhǔn)偏差。
需要注意的是除以的范圍或除以標(biāo)準(zhǔn)偏差,會(huì)得到不同的結(jié)果。
例如,如果 xi 代表100到2000范圍內(nèi)的房?jī)r(jià),平均值為1000,那么:
梯度下降實(shí)例 II - 學(xué)習(xí)速率
調(diào)試梯度下降: 可以以 x 軸為迭代次數(shù)繪制一個(gè)圖。然后梯度下降次數(shù)上繪制代價(jià)函數(shù)J(θ)。如果J(θ)增加,那么您可能需要減小 α 值。
自動(dòng)收斂測(cè)試: 如果在一次迭代中 J(θ) 減小值小于 E ,則代表其已經(jīng)收斂,其中 E 是一些較小的值,例如 10-3 。但實(shí)際上這個(gè)閾值很難選擇。
已經(jīng)證明,如果學(xué)習(xí)率 α 足夠小,則 J(θ) 將在每次迭代時(shí)減小。
總結(jié):
- 如果 α 值太小: 收斂緩慢。
- 如果 α 值太大: 每次迭代可能不會(huì)減小,從而可能不會(huì)收斂。
特征值和多項(xiàng)式回歸
我們可以通過(guò)幾種不同的方式改進(jìn)特征值和假設(shè)函數(shù)的形式。
我們可以將多個(gè)特征值合成一個(gè)。例如,我們可以以 x1x2 合并 x1 和 x2 組成新的特征值 x3 。
多項(xiàng)式回歸
如果直線不能很好的擬合數(shù)據(jù),我們的假設(shè)函數(shù)也不需要是一條直線。
我們可以通過(guò)使其成為二次,立方或平方根函數(shù)(或任何其他形式)來(lái)改變假設(shè)函數(shù)的行為或曲線。
例如,如果我們的假設(shè)函數(shù)是 hθ = θ0 + θ1x1 ,然后我們可以在 x1 基礎(chǔ)上增加特征值,獲得二次函數(shù) hθ = θ0 + θ1x1 + θ2x12 或者立方函數(shù) hθ = θ0 + θ1x1 + θ2x12 + θ3x13
在立方函數(shù)里,我們可以創(chuàng)建新的特征值 x2 和 x3 , 分別為 x2 = x12 和 x3 = x13
使它成為平方根函數(shù)則可以是:
一個(gè)重要事情是,如果以這種方式選擇特征值,則特征縮放將變得非常重要。
例如,如果 x1 的范圍為 1 - 1000 ,那么 x12 的范圍將變?yōu)?1 - 1000,000 ,x13 的范圍將變?yōu)?1 - 1000,000,000