1. 程式人生 > >跟著吳恩達學習機器學習 5多變數線性迴歸

跟著吳恩達學習機器學習 5多變數線性迴歸

1 多維特徵

在之前的單變數問題中,考慮的是房子的面積對房價的影響,實際上,地理位置、樓層、房子的臥室數量等都會對價格有影響。
在這裡插入圖片描述
上圖中分別列舉了樓層等其他影響對價格的影響,每一行資料表示多變數作用的房子價格。
在這裡插入圖片描述Xi表示特徵矩陣的第j行(從1開始),j表示第j個訓練例項的的特徵,也就是表示第i行的第j的特徵,如第二行的第三個特徵就是2。
多變數的預測h(x)如:
在這裡插入圖片描述
模型中的引數是一個n+1維的向量,則任何一個訓練例項也都是n+1維的向量,特徵矩陣X的維度是 m*(n+1)。
因此公式可以簡化為下圖,其中上標T代表矩陣轉置。
在這裡插入圖片描述

2 多變數梯度下降

多變數的代價函式和單變數一樣,代價函式是所有建模誤差的平方
在這裡插入圖片描述


那麼,這兒的目的就是找到使得代價函式值最小的一系列引數。
則多變數的梯度下降演算法為:
在這裡插入圖片描述
進行替換後也就是:
在這裡插入圖片描述
求導後可得(將公式化簡後)
在這裡插入圖片描述
那麼,這些引數就可以的到
在這裡插入圖片描述
這只是θ1的例子,θ0、θ2到θn都是如此。
所以需要隨機選擇一系列的引數值作為初始值,計算所有的預測結果後,再給所有的引數一個新的值,如此迴圈直到收斂。

3 梯度下降法特徵縮放

在面對多維特徵的時候,要保證這些特徵都具有相近的尺度,這將幫助梯度下降演算法更快地收斂。
以房價問題為例,假設我們使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值為 0-2000 平米,而房間數量的值則是0-5,以兩個引數分別為橫縱座標,繪製代價函式的等高線圖能,看出影象會顯得很扁(如下圖),梯度下降演算法需要非常多次的迭代才能收斂。
在這裡插入圖片描述


那麼,為了解決個特徵值不均衡的情況,解決的方法是嘗試將所有特徵的尺度都儘量縮放到-1到1之間。
下圖就解決這個問題給出了詳細的辦法。
在這裡插入圖片描述
左邊是特徵值不均衡的情況(x1表示房間的大小0-2000平米,x2表示房間1-5個),右邊是都把特徵值縮放在一定值得範圍內。右圖的x1x2明顯是進過公式計算得到。此公式如下。
在這裡插入圖片描述
中是μn表示的是平均值,sn是最大值-最小值(2000-0,5-0),當然這個sn也可以是標準差。
標準差=方差的算術平方根=s=sqrt(((x1-x)^2 +(x2-x)^2 +…(xn-x)^2)/n)。

4 梯度下降法-學習率

學習率的大小影響著loss函式的變化,一般在0.01-0.001,一個正常的loss函式值變化如下圖。
在這裡插入圖片描述


梯度下降演算法的每次迭代受到學習率的影響(可以通過看函式的變化得到是否收斂的資訊),如果學習率α過小,則達到收斂所需的迭代次數會非常高,則代價很大;如果學習率α過大,每次迭代可能不會減小代價函式,(loss函式的值表現會類似一個餘弦函式的【0,正無窮的】,下圖就是學習率設的過大的表現情況,loss值在左右晃動的情況下,一直在增大(右圖)),可能會越過區域性最小值導致無法收斂。當然,選取一個合適的學習率是很麻煩的。
在這裡插入圖片描述

5 特徵和多項式迴歸

線性迴歸並不適用於所有資料,有時我們需要曲線來適應我們的資料,比如一個二次方模型和三次方模型:
二次方 三次方
下圖的原始資料就不適合線性模型
在這裡插入圖片描述
通過下面的方法可以將高次方的轉換為線性模型
在這裡插入圖片描述
將x2、x3帶入三次方程,可得線性模型函式。

6 正規方程

除了梯度下降的方法求損失函式的最小值外,還可以通過正規方程求解。
在這裡插入圖片描述
對於這個一元二次方程,我們可以很熟練的知道它的最小值是多少,並且求出來。當然不能使高中的方法,這裡我們對引數求偏導,公式如下。
在這裡插入圖片描述
假設我們的訓練集特徵矩陣為 X(包含了 x0=1)並且我們的訓練集結果為向量 y,則利用正規方程解出向量。需要對每一個引數求偏導。
在這裡插入圖片描述
給出例子,第一個特徵都是1,是把常規理解的常量引數置為1
在這裡插入圖片描述
整理到表中
在這裡插入圖片描述
上圖就是x矩陣的表示,我們可以得到x矩陣的轉置,然後得到x矩陣x矩陣的轉置的結果進行矩陣的逆,再x的轉置,再*y。
什麼時候使用梯度下降,什麼時候又使用正規方程去求得損失函式的最小值值呢。
在這裡插入圖片描述
只要特徵變數的數目並不大,標準方程是一個很好的計算引數θ的替代方法。具體地說,只要特徵變數數量小於一萬,可以使用標準方程法,而不使用梯度下降法。
但是這麼久。我目前沒有使用過正規函式。