上回說到當假設函式的引數增多的時候,代價函式的維度就會變高,描點畫圖這種方法就不適用了,那得咋整呢?所以我們就要採用數學的方法找到代價函式的最小值。這個方法就是大名鼎鼎的梯度下降法。
啥叫梯度下降呢?來看這張圖。
這張圖的outline就是梯度下降的基本思想,先給定一組引數θ0,θ1,然後不斷調解上面兩個引數,來減小代價函式,知道代價函式減到最小。當然,梯度下降法不僅適用於兩個引數的情況,也適用於多個引數的情況。那麼,通過啥來調節呢?答案就是梯度,先用兩個圖說明下梯度下降法是怎麼工作的。
假如現在你在山上那個畫紅圈的地方,你想知道怎麼才能最快下上(先不考慮山的陡峭情況),假如山是筆直的懸崖,是不是直接跳下去下山最快(當然,這只是乙個比喻),可是現在山有坡度,下山最快是不是就要沿著最陡峭的方向走?何為最陡峭,用乙個數學名詞來說就是梯度最大。後來發現第二個點是周圍梯度最大的,然後就走到了第二個點,然後在環顧周圍,發現第三個點最陡峭(梯度最大),又走到了第三個點,後來走著走著,發現自己走到坑里了(最後乙個點),發現周圍的位置都比你的位置高,這是你就知道你處在最低點了。你在的位置就是代價函式最小的地方。
假如你的初始位置不在紅圈的位置了,而在他旁邊一點,重複上述過程,你會發現,最後會走到這個坑里,如下圖所示:
那麼,你可能會問,哪個是最優點?答案是,都是最優點,只不過都是區域性最優點,區域性最優解與初始點的選擇有關係,初始點咋選,不知道,看命。。。運氣好一點是全域性最優,運氣不好只能是區域性最優。而且,當進入乙個區域性最優點之後,就會發現進入乙個永遠出不來的坑里。這就是所謂的陷入區域性最優。這其實也是梯度下降法的兩個缺點,有待改進。
說了這麼多,如何用數學過程把上述過程描述出來呢?看下面的圖
重上到下第乙個公式就是梯度下降法的定義,:=表示的是賦值,α表示的是乙個叫學習率的引數,這個引數主要用來調節引數衰減或增加的速度,太大太小都不行,也是個憑經驗選取的引數。後兩個公式的第乙個就是梯度下降法的過程,第二個是與第乙個做對比的,目的是為了強調,引數θ1,θ2更新的時候要同時更新,更新到啥時候是個頭呢,就是更新到偏導數項為零時為止。
那麼根據上面的公式,可以來看一下線性回歸問題如何用梯度下降法求取代價函式的最小值,還是先從乙個引數的看起:
計算過程如上圖所示,由前一次的教程可知,單變數的線性回歸的代價函式是個一元二次函式,由圖中可見,當θ是乙個很大的值,θ點的梯度大於等於0,也就是說,θ的更新過程是通過初始值減去學習率和梯度的乘積(是個正數)來讓θ不斷的減小,從不斷趨近代價函式的最小值。同理,當θ是乙個很小的值,θ點的梯度小於等於0,θ的更新過程是通過初始值減去乙個負數來讓θ不斷的變大,從不斷趨近代價函式的最小值。
除了引數初始值的選取導致趨近方向不同,那學習率α是怎麼影響趨近過程的呢?再來看另一張圖
考慮下極限情況,假如α為零,那麼就會導致引數θ原地不動,不會更新,無論梯度是多少,迭代的時間將會是無窮大,所以如果學習率太小,就會導致迭代的速度很慢。假如學習率味無窮大,那麼引數θ就為無窮大,那麼是不是就意味著無論怎麼迭代更新,也永遠不會到達代價函式的最小值,而且還是發散的,不收斂,所以學習率太大就會導致引數θ不收斂,發散,所以學習率α要取適當的值。
乙個引數的講完了,兩個引數的也是同理,只不過計算量稍微大一點,再次給出梯度下降公式和線性回歸的假設函式和代價函式
當求θ0偏導時,θ1看做常量,做導數運算,求θ1偏導時,θ0看做常量,在做導數運算
最後的迭代公式如下:
按照這個公式迭代,就能找到上個教程說的含有兩個引數的代價函式的最小值,找的過程在下面這個gif裡,gif做的不好,如果有更好的辦法還請大家告訴我,注意,引數θ0和θ1要同時更新迭代
這個過程其實就是根據已有資料集做訓練的過程。迭代完之後,就找到了能使代價函式為最小值的引數θ0和θ1,這節課的可見在教程二中已經給出。
機器學習(Coursera吳恩達)(七)
標籤 空格分隔 機器學習 降維 pca 第二種無監督學習問題,稱為降維。比如我們有兩個特徵量 x1長度 cm x2 英吋 兩種儀器對同乙個東西測量結果不完全相等,而將兩個都作為特徵有些重複,因而我們希望將這個二維的資料降維至一維。x原本是二維的,然後降成一維的z。同理也可以將1000維降維100維。...
吳恩達機器學習筆記
為了解決實際生活中的問題,我們通常需要乙個數學模型。比如,小明有乙個房子 他想賣掉房子 為了知道房子的 小明收集了該地區近兩年的房屋交易 他發現房屋 與房屋大小呈正相關,所以他畫了了一幅圖 小明的房屋大小用紅色的 代替。可見和小明房屋一樣大小的房子並不存在,而類似的房屋 又有很大差別,如此小明決定用...
吳恩達機器學習感悟
吳恩達機器學習,斯坦福2014筆記 由8.2 神經元和大腦想到的 神經重連實驗,比如眼睛連到聽覺皮層,則聽覺皮層學會了看 眼睛連到觸覺皮層,則觸覺皮層學會了看 舌頭上加攝像頭關聯的電極陣列,則負責舌頭感知的皮層學會了看。這寫neuron re wiring實驗,給出的結論是大腦各區使用的是同一種演算...