Content:
1. Linear Regression
1.1 Linear Regression with one variable
1.1.1 Gradient descent algorithm
1.2 Linear Regression with multiple variable
1.2.1 Feature Scaling
1.2.2 Features and polynomial regression
1.2.3 Normal equation
1.2.4 Probalilistic interpretation for cost function
key words: Linear Regression, Gradient Descent, Learning Rate, Feature Scaling, Normal Equation
1. Linear Regression
1.1 Linear Regression with one variable
某個目標量可能由一個或多個變量決定,單變量線性回歸就是我們僅考慮一個變量與目標量的關系。例如,我們可以僅考慮房子的面積X與房價y的關系,如下圖。
通常將已有的可利用的數據成為data set or training set。
首先我們定義出線性的hypothesis function h,然后定義出cost function J,為了使得假設函數接近或等於實際值,目標是使得函數J取最小值。
1.1.1 Gradient descent algorithm (梯度下降法)
梯度下降法可以求解線性回歸問題,具體描述如下:
函數J是一個二元函數,為使得取最小值,分別對求偏導數,得到對應的變化率。然后,設定一個合適的learning rate,對theta進行更新。更新策略如下:
注意更新要同步,否則前一個theta0會影響后一個theta1更新(通過影響cost function : J)
其中對J函數求偏導數如下:
帶入得:
迭代次數和learning rate是影響梯度下降法是否成功收斂到最優值的重要因素。
- 迭代次數:
- 過少可能使得算法還沒有收斂就停止,
- 過多導致資源(時間等)的浪費;
- learning rate:
- 過小,使得每次迭代時theta的變化量過小,從而算法收斂過慢,換言之需要增加迭代次數使得算法收斂;
- 過大,使得每次迭代時theta的變化量過大,可能在變化(迭代)過程中越過最優(收斂)點。直觀地:
正常的收斂應大致如下:
1.2 Linear Regression with multiple variables
在實際生活中,一個量通常受很多變量的影響。同樣以房價為例:
此時相應的量(函數)有如下變化:theta從2維變成了n+1維向量;從而hypothesis function為下圖所示(注意定義x0=1的小細節):
同樣的,可以用梯度下降法來解決多變量線性回歸問題。
注意與單變量線性回歸對應的變化和聯系。事實上,單變量線性回歸是多變量線性回歸的特殊情況(n=1)。
1.2.1 Feature Scaling(數據規范化)
不同的特征量由於單位不同,可能在數值上相差較大,Feature Scaling可以去量綱,減少梯度下降法的迭代次數,提高速度,所以在算法執行前通常需要Feature Scaling。直觀上來說,考慮兩個特征量,規范化前的橢圓很癟,可能導致收斂的路徑變長,數據規范化后使得橢圓較均勻,縮短收斂路徑,如下:
下面給出一種規范化策略:
- 求每個特征量X的平均值mean
- 求每個特征量X的標准差segma (matlab中std()函數)
- 規范化:X = (X-mean) / sigma
1.2.2 Features and polynomial regression
有時候,我們可以將某些特征量聯合成一個新的特征量或許可以得到更好的結果,例如要預測房價,考慮到房價主要由area決定,不妨將特征量frontage和depth聯合成一個新的特征量area.
對於有些情況,線性回歸的結果可能不是很理想,可以考慮多項式回歸。注意應該結合實際考慮選擇幾次的多項式,例如下面的例子,特征量是size,目標量是price,所以就不應該選擇二次多項式,否則會出現size增大而price變小的情況,不符合實際情況。
1.2.3 Normal equation(正則方程)
Normal equation: Method to solve for analytically.
首先考慮cost function J的自變量theta為一維的情況,這時的J為關於theta的一元二次函數,可以直接求導得到最小值點,如下圖所示:
下面對Gradient Descent 和 Normal Equation做一下比較
- m = 20000, n = 10000,優先考慮Gradient Descent
- m = 20000, n = 10, 優先考慮Normal Equation
1.2.4 Probalilistic interpretation for cost function
參考:https://www.coursera.org/learn/machine-learning/