吳恩達-機器學習筆記(1)-模型表示、損失函式、梯度下降
無監督學習:一個程式被認為能從經驗E中學習,解決任務T,達到效能度量值P,當且僅當,有了經驗E,經過P的評判,程式在處理T時效能有所提升。
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 , improved with experience E. —— Tom Mitchell
無監督學習:給出資料並且已知正確的輸出,找到輸入和輸出之間的關係。可以分為迴歸問題和分類問題,在迴歸問題中,我們試圖在連續輸出中預測結果,這意味著我們正在嘗試將輸入變數對映到某個連續函式。在分類問題中,試圖在離散輸出中預測結果,換句話說,我們試圖將輸入變數對映到離散類別。
無監督學習:在無監督學習中,資料沒有屬性和標籤這一概念,所有的資料沒有區別;無監督學習允許我們能夠在很少或者根本不知道我們的結果的情況下學習,我們可以通過基於資料中變數之間的關係來推導資料的結構。
Model Representation
房價預測:根據房子的面積預測房子的價格
符號規範:
,表示輸入樣本
,表示試圖預測的輸出或目標變數
m,表示資料集
為了更精確地描述監督學習問題,我們的目標是,給定一個訓練集,學習函式h:x~y,使得H(x)是y的對應值的“好”預測器。由於歷史原因,這個函式H被稱為hypothesis。從圖畫上看,這個過程是這樣的:
當我們試圖預測的目標變數是連續的,例如在我們的住房例子中,我們把學習問題稱為迴歸問題。當y可以只接受少量離散值(例如,如果給定居住區,我們想預測住宅是房子還是公寓,比如說),我們稱之為分類問題。
Cost Function
假設函式為
,現在選擇合適的引數
和
,使得模型可以準確的預測y的值
我們可以通過使用代價函式來測量假設函式的精度,在這裡是計算的是hypothesis函式的輸出和真實輸出之間的平均差值,公式如下:
假設
=0則:
樣本有三個(1,1),(2,2),(3,3),當
=1時J的值為0,改變
得值求的J,就可以繪製出J(
)的圖,我們的優化目標是,通過選擇
的值,儘可能的減小J(
)。
當保留兩個引數的時候:
為了分析方便,使用等高線圖,每個橢圓對應的就是一組(
,
),同心圓的中心就是J(
,
)的最小值
Gradient Descent
對於代價函式J,可能有很多引數,為了簡單起見,這裡只討論兩個引數的情況:
在梯度下降演算法中要做的是,不停地一點點改變θ0 和θ1 ,通過這種改變使J變小。直到我們找到了J的最小值,或許是區域性最小值。
我們通過下面的圖片,說明梯度下降演算法是如何工作的。
當我們的代價函式在我們的圖中的凹坑的底部時,即當它的值是最小值時,我們就知道我們已經成功了。紅色箭頭顯示圖表中的最小點。
我們這樣做的方法是取我們的代價函式的導數。切線的斜率是這一點上的導數,它將給我們一個移動的方向。我們沿著代價函式最陡的方向向下移動。每一步的大小由引數α決定,這被稱為學習速率。
例如,上面圖表中的每個“星星”之間的距離代表了我們的引數α所決定的一個步驟。較小的α會導致較小的步長,較大的α會導致較大的步長。步步進的方向是由J的偏導數決定的。取決於在圖上的起點,可以在不同的點結束。上面的影象顯示了兩個不同的起點,它們在兩個不同的地方結束。
數學上的定義:
需要注意的是兩個引數需要同時進行更新,在這裡是使用temp臨時變數儲存然後頭同時更新
當只有一個引數
重複以下引數直到收斂,當斜率為正的時候
回減小,當斜率為負的時候
會增大
另一方面,我們應該調整引數α,以保證梯度下降演算法在合理的時間內收斂。未能收斂或過多的時間來獲得最小值意味著我們的步長是錯誤的。
當斜率趨近於0的時候,
得變化就會減小,直到斜率為0,
就不會改變
左邊為梯度下降演算法,右邊為線性迴歸模型
求偏導數結果如下
批量梯度下降:每一次梯度下降,都會使用全部的資料集