學習筆記——機器學習(一)(吳恩達)

1.緒論

1.1 機器學習的定義:

  1. Arthur Samuel: " Field of study that gives computers the ability to learn without being explicitly programmed."

  2. Tom Mitchell: " A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P. improves with experiience E."
    (譯:計算機程序從經驗E中學習,解決某一任務T,進行某一性能度量P,通過P測定在T上的表現因經驗E而提高。)

1.2 監督學習:

利用一組帶標籤的數據, 學習從輸入到輸出的映射, 然後將這種映射關係應用到未知數據, 達到分類或者回歸的目的。
在這裏插入圖片描述

Regression Problem(迴歸問題):設法預測取值連續的數值輸出(房價預測)
Classification Problem (分類問題) :設法預測取值離散的數值輸出 (腫瘤良性/惡性預測)

1.3 無監督學習:
在這裏插入圖片描述

利用無標籤的數據學習數據的分佈或數據與數據之間的關係被稱爲無監督學習。

無監督學習最常應用的場景是聚類(clustering)和降維(Dimension Reduction)

有監督學習和無監督學習的最大區別在於數據是否有標籤

2.單變量線性迴歸

2.1模型描述

專用的術語以及假設函數h:
在這裏插入圖片描述
假設函數( Hypothesis function)表示從輸入到輸出的映射,通常寫作hθ(x)h_\theta(x)或簡寫爲h(x)h(x)
hθ(x)=θ0+θ1x h_\theta(x)=\theta_0+\theta_1x
其中,θ0\theta_0θ1\theta_1:模型參數(parameters of the model), 選取不同的模型參數會導致不同的假設函數。
在這裏插入圖片描述
2.2代價函數(cost function)

常用:平方誤差代價函數。
例如:在根據房子大小預測房子售價的問題中,令平方誤差代價函數爲J(θ0,θ1)J(\theta_0,\theta_1).
則由上述得:

  • Hypothesis function: hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1x
  • Parameters: θ0θ1\theta_0 、\theta_1
  • Cost function: J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2
  • Goal
    minJ(θ0,θ1)=min12mi=1m(hθ(x(i))y(i))2\min J(\theta_0,\theta_1)=\min \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2
    找出使得代價函數最小的θ0θ1\theta_0、\theta_1,即目標函數最小時對應的θ0θ1\theta_0、\theta_1,則找到了擬合訓練集的假設函數 hθ(x)h_\theta(x)

θ0=0\theta_0=0,即假設函數簡化爲hθ(x)=θ1xh_\theta(x)=\theta_1x

則根據不同的θ1\theta_1的值,可以繪製出相對應的hθ(x)h_\theta(x)函數曲線,根據圖中函數曲線與訓練集(含輸入x,實際輸出y)的差值,可以得出此時的J(θ1)J(\theta_1)的值。取不同的θ1\theta_1,繪製出J(θ1)J(\theta_1)的函數曲線(碗狀)。——凸函數
在這裏插入圖片描述
θ00\theta_0\neq0hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1x
在這裏插入圖片描述
或投影成等高線圖的形式:
在這裏插入圖片描述
若融入更多的參數時,會得到更加高維的代價函數曲線,甚至無法繪製、無法可視化,此時再手動讀取代價函數最小參數,不可取。
——>梯度下降算法可以解決這些問題

2.3 梯度下降算法(Gradient decent)


α\alpha 是學習速率,可控制算法以多大的幅度更新參數。換句話而言,就是以多大的步幅沿最陡下降路移動。
如果α\alpha過小,梯度下降算法可能會收斂得很慢。
如果α\alpha過大,可能導致不斷地震盪以至於無法收斂甚至發散,離局部地最優點越來越遠。J(θ)J(\theta)隨着迭代次數的增加,反而越來越大。例如:
在這裏插入圖片描述

當到達局部最優點時,導數部分爲0。
在這裏插入圖片描述利用梯度下降算法可求得局部最優解
2.4 線性迴歸算法——第一個機器學習算法
Batch Gradient Descent算法
(Batch:each step of gradient descent uses all the training examples)

思想:將梯度下降算法應用到最小化平方差代價函數
在這裏插入圖片描述
在這裏插入圖片描述
平方代價函數是凸函數,不存在局部最優解,只有一個全局最優。
在這裏插入圖片描述

3.線性代數的知識

4.配置Matlab

5.多變量線性迴歸

5.1 多元梯度下降算法
在這裏插入圖片描述
相比較單變量線性迴歸,多變量線性迴歸有以下特徵:
(1)表示特徵數目的變量:n,每個特徵用xjx_j表示,j=1,2…n ;
(2)訓練集的樣本中每一對輸入和輸出分別是一個n維向量,第i個輸入樣本表示爲x(i)x^{(i)},輸出爲y(i)y^{(i)}
(3)xj(i){\rm{x}}_j^{(i)} 表示:第i個訓練樣本的第j個特徵量的值。
(4)假設函數:hθ(x)=θ0+θ1x1+θ2x2++θnxn{h_\theta }(x) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + \ldots + {\theta _n}{x_n}。可以看作是x0=1x_0=1的兩個n+1維向量的內積。
x=[x0,x1xn]Tx = {\left[ {{x_0},{x_{\rm{1}}} \ldots {x_{\rm{n}}}} \right]^T} θ=[θ0,θ1θn]T\theta = {\left[ {{\theta _0},{\theta _{\rm{1}}} \ldots {\theta _{\rm{n}}}} \right]^T}
hθ(x)=θTx{h_\theta }(x) = {\theta ^T}x
(5)代價函數:J(θ)=12mi=1m(hθ(x(i))y(i))2J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2
(6)梯度下降算法應用到多變量線性迴歸問題中的改變:(多元梯度下降算法)
在這裏插入圖片描述
5.2特徵縮放
當模型的某些特徵值xjx_j過大,而其他的過小時,通常會造成代價函數的等值線圖過於橢圓(擁擠),使得梯度下降的過程變得更加緩慢,反覆來回振盪,才能找到一條通往全局最小的路。
此時要對這些特徵值進行適當處理,使其值相近,即特徵縮放。通常採用的方法是歸一化處理。
在這裏插入圖片描述
5.3學習率
在單變量線性迴歸算法中,曾經提到,α\alpha過大過小都不好。在多變量裏同理。
因此,選取一個合適的學習率α\alpha很重要。
可以嘗試不同的α\alpha值,觀察代價函數J(θ)J(\theta)隨迭代次數變化的曲線。(正常情況下,應該是單調遞減曲線)
在這裏插入圖片描述

5.4正規方程
正規方程通常在特徵不多的情況下使用,特徵過多時最好使用梯度下降。
舉例:
在這裏插入圖片描述
樣本數爲4,特徵數爲4。

如前所述:
假設函數hθ(x)=θ0+θ1x1+θ2x2++θnxn{h_\theta }(x) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + \ldots + {\theta _n}{x_n}。可以看作是x0=1x_0=1的兩個n+1維向量的內積。
x=[x0,x1xn]Tx = {\left[ {{x_0},{x_{\rm{1}}} \ldots {x_{\rm{n}}}} \right]^T} θ=[θ0,θ1θn]T\theta = {\left[ {{\theta _0},{\theta _{\rm{1}}} \ldots {\theta _{\rm{n}}}} \right]^T}
hθ(x)=θTx{h_\theta }(x) = {\theta ^T}x

代價函數J(θ)=12mi=1m(hθ(x(i))y(i))2J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2
增加一個特徵:即x0=1x_0=1
在這裏插入圖片描述
則必然有:
其中,第i個樣本 x(i)=[x0(i)x1(i)x2(i)xn(i)]TRn+1{{x}^{(i)}}={{\left[ \begin{matrix} x_{0}^{(i)} & x_{1}^{(i)} & x_{2}^{(i)} & \ldots & x_{n}^{(i)} \\ \end{matrix} \right]}^{T}}\in {{R}^{n+1}}

在這裏插入圖片描述
即:X=[12104514511416324011534323018522136]X=\left[ \begin{matrix} 1 & 2104 & 5 & 1 & 45 \\ 1 & 1416 & 3 & 2 & 40 \\ 1 & 1534 & 3 & 2 & 30 \\ 1 & 852 & 2 & 1 & 36 \\ \end{matrix} \right]

y=[460232315178]y=\left[ \begin{matrix} 460 \\ 232 \\ 315 \\ 178 \\ \end{matrix} \right]

θ=[θ0,θ1θn]T\theta = {\left[ {{\theta _0},{\theta _{\rm{1}}} \ldots {\theta _{\rm{n}}}} \right]^T}

因此,Xθ=yX\theta =y,又寫作:θ=(XTX)1XTy\theta ={{({{X}^{T}}X)}^{-1}}{{X}^{T}}y

P.S:若XTXX^{T}X不可逆,即奇異矩陣,這種情況很少發生。
如果發生:可能是包含了多餘的特徵(有類似的,導致矩陣某幾行成正比)或者特徵過多(m<=n),此時應該刪除一些特徵或考慮正規化的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章