公開課地址:https://class.coursera.org/ml-003/class/index
授課老師:Andrew Ng
1、multiple features(多特徵)
在第一次課中我們假設房屋的價格僅和房屋的面積相關,顯然這與實際情況不符,為此,我們需要考慮更多的影響因素,也就是這裡說的房屋的特徵。比如,我們可以加入房屋中臥室的數量,房屋所在的樓層數和房屋的年齡這幾個因素:
顯然,我們之前定義的函數形式就作廢了,現在需要重新定義函數,這裡可以定義多變數的一階函數。
當然,如果變數再多,可以繼續擴充,像下面這樣:
這裡一共有n個自變數x,theta一共n+1個。如果懂一點線性代數的知識,可以發現這裡用向量的乘積來表示函數較好,我們假設存在一個x0=1,然後h就可以寫成theta向量和x向量的乘積形式了。
2、gradient descent for multiple variables(多變數梯度下降)
儘管這裡是多變數,但梯度下降還是一致的,定義出代價函數,然後迭代下降。由於變數過多,還是用向量形式表現較好:
把J代入得到:
3、gradient descent in practice 1:feature scaling(梯度下降實踐之特徵縮放)
當增加新特徵以後,我們會發現由於單位不同,特徵的數量級差距較大,有些特徵會因此佔據主導地位 ,這與我們希望各個特徵之間的影響力應該大體上相近不符。為此,我們需要對特徵進行歸一化,也就是所謂的特徵縮放。
上面是針對房屋面積和臥室數目的歸一化,通過除以特徵中最大值,我們把這兩個特徵縮放到[0,1]區間。當然還存在其他的歸一化方法,比如下面這種通過減去均值再除以最大值把特徵映射到[-0.5,0.5]區間:
4、gradient descent in practice 2:learning rate(梯度下降實踐之學習率)
前面提到過在梯度下降中學習率的選擇是需要考慮的,每次迭代後我們需要讓J不斷減少,直到到達一個最小值(以減少0.001為閾值表面收斂):
和之前講到一樣,alpha太大太小都不行
5、features and polynomial regression(特徵和多項式迴歸)
之前我們考慮樓價只和面積成線性關係,但是在二維空間中描出點後很可能發現完全不是線性相關的,於是我們要引入特徵的高階屬性:
上面就引入了房屋大小的二次方,三次方,當然也可以引入根號,總之函數不再是線性函數那麼簡單了。
6、normal equation(標準化等式)
之前介紹的都是梯度下降,其實還有另外一種方法可以用來求解代價函數最小的問題,也就是標準化等式。它是通過解析得到theta的取值,不需要迭代,學過微積分的人都知道如何求一個單變數函數的最值,就是讓其求導為0,那肯定是函數的最值點,這就是標準化等式的思想。
再考慮向量化,我們可以把求解轉換為向量運算:
這裡我們可以把梯度下降和標準化等式做一個對比:
從比較可以發現,標準化在n較大的情況下效果不好,不過其優點是不需要人工設定學習率,也不需要迭代。
7、normal equation non-invertibility(標準化等式無法復原性)
從上面的等式中我們知道計算theta需要求出X’X的逆,但是並不是什麼矩陣都可逆的,如果無法復原,我們只能進行特徵刪除,剔除掉一些冗餘的特徵,再求解。
-----------------------------------弱弱的分割線-------------------------------------------------
以上就是針對多變數的線性迴歸,可以看出思想和單變數的差不多,唯一不同的就是要多計算幾個值。為了方面,在這裡引入了向量的表現形式,同時在計算的時候也應該採用向量化計算加快計算速度。