機器學習入門基礎

//本文為作者原創,若有不足歡迎指正//

引言:丘成桐院士說過,假傳傳萬卷,真傳傳一例。意思是作為初學者通讀讀萬卷書,也很難參透出其中的奧秘,但是真正的智者只需一個簡單的例子,就可以直擊問題的精髓給人以醍醐灌頂的感覺。在吳恩達老師這裡我也有同樣的感受,吳老師以一個例子貫穿始終,深入淺出的講解機器學習,是機器學習初學者必看視頻。

機器學習是人工智能的一個重要分支,隨著近幾年大數據、雲計算的發展,機器學習能力得到了值得飛躍,未來5G技術將極大推動人工智能的發展。由於人工智能方面涉及到的數學公式不易理解,所以小編儘量不使用公式,用通俗的語言來描述機器學習算法的相關知識。

機器學習入門基礎

機器學習的分類:機器學習分為監督學習和非監督學習,本篇文章介紹監督學習部分。

監督學習的分類:監督學習又分為分類問題和迴歸問題,分類問題面向的是離散數據,使機器通過數據集的學習具有分類能力;迴歸問題面向的是連續數據,使機器從已知數據集的數據關係中擬合出預測曲線,從而具有線性預測能力。

線性迴歸問題原理:吳恩達老師以樓價數據集作為例子來講解線性迴歸問題,樓價作為機器學習算法的輸出值,輸入值是房屋的面積,房間數,位置等變量。原理類似於初中數學中的已知兩點求過這兩點的一條直線,再給定X值就可得出相應的y值,這就是機器學習最簡單的過程。X是變量,Y是預測值,求直線的過程就是線性迴歸的過程。只不過在機器學習算法中變量X是一個向量,裡面包含很多與Y值有關的特徵變量x。

分類問題原理:分類問題實際是邏輯迴歸的過程,吳恩達老師以癌症診斷為例講解此類問題。其中輸入值是與癌症有關的相應檢查結果,輸出值是癌症檢查結果。很顯然這是一個二分類問題,結果輸出為0或1,故也稱邏輯迴歸問題。邏輯迴歸就是在一定的特徵輸入時得到相應的結果的概率。

假設函數:假設函數用於擬合線性迴歸中數據分佈和輸出邏輯迴歸中的概率。在線性迴歸過程中,假設函數可以通過提高函數的最高次數來達到非線性擬合的目的,邏輯迴歸函數是一個sigmoid函數,輸出值在0-1之間。

代價函數:代價函數是機器學習算法的關鍵,是用來評判模型好壞的標準。無論是邏輯迴歸還是線性迴歸都要用到代價函數,在線性迴歸中代價函數的概念比較好理解,即在給定用於擬合曲線的假設函數的情況下,計算訓練集中所有點到假設函數的距離的方差,實際上是最小二乘法。在邏輯迴歸中代價函數用來描述數據分類的準確率,用的是最大似然的方法,值得一提的是該方法不存在局部最優解問題。

梯度下降法:梯度下降法是調整模型中參數的關鍵,機器學習算法要求代價函數值越小越好,這就要用到梯度下降法來尋找代價函數的最小值,在梯度下降法下降每一步都會對模型的參數做出調整,直到下降到最小值,模型的參數也是最值。目前有一些更先進的梯度下降法可以自動選擇學習率。

學習率:學習率決定了梯度下降法下降步幅,學習率太小會導致損失函數的值收斂過慢,如果學習率太大則會導致損失函數不會收斂。

標準方程法:標準方程法是求解代價函數最小值的一種方法。與梯度下降法不同,標準方程法通過求解矩陣的方法直接獲得代價函數的最小值,從而求出模型參數。但是矩陣求逆的過程中維數過高會導致計算量猛增。所以在低維數時標準方程法效果較好,高維度時梯度下降法較為有效。

特徵歸一化:當特徵數據範圍差距很大時,需要將不同的特徵歸一化,這樣有利於梯度下降法平穩快速下降。當然採用標準方程法求解代價函數最小值時不需要對不同範圍的特徵進行歸一化。

局部最優解:在梯度下降的過程中容易陷入局部最優解,在局部最優解求得的代價函數最小值並不是全局最優值。上文提到的線性迴歸中使用最小二乘法擬合數據以及在邏輯迴歸中使用最大似然法擬合數據都不存在局部最優解的問題。

正則化:正則化是指在代價函數中加入懲罰項,在代價函數最小化的過程中使模型中作用較小的參數最小化。加入正則化的代價函數同樣可以使用梯度下降法和標準方程法。正則化項中的常數項的大小控制著對模型參數的懲罰力度。

過擬合:在使用機器學習算法的過程中,受一些特殊點的影響會使擬合曲線超出該有的位置,變得扭曲,容易造成模型不準確。解決過擬合問題可以使用正則化和減少特徵數目的方法。

神經網絡: 神經網絡是在解決複雜非線性問題ju更好的效果,神經網絡應用在分類問題每個神經元內部都有一個激活函數,每個神經元相互連接都有相應的權值。其實神經網絡是一種組合在一起的機器學習算法,神經網絡前向傳播過程就是假設函數求解數據的過程,神經網絡的權值就是對應模型的參數。神經網絡的反向傳播訓練權值就是求模型參數的過程。神經網絡的代價函數因為權值的分佈問題也發生了相應的改變。

神經網絡訓練步驟:

1、將權值隨機初值化

2、前向傳播

3、計算代價函數

4、反向傳播優化權值

5、運行梯度檢查

6、應用梯度下降法減小代價函數

訓練神經網絡中需要注意的問題:

1、使用梯度檢查的方法排查算法是否有問題,注意在訓練過程中要關掉要不然會拖慢運行速度,做無用功。

2、權值參數初始化切不可相同,因為相同的權值會導致訓練後權值也相同。

3、數據集通常按照6:2:2分為訓練集,交叉驗證集,和測試集。在測試集上訓練,在驗證集上驗證取驗證集代價函數最小的模型,在整個訓練過程中不斷參與調參,可以防止過擬合。

4、懲罰項中常數值的選擇也時在不斷嘗試中選擇驗證集代價函數最小的值。

5、如果繪製的學習曲線具有高方差,可以通過增加訓練樣本,減少特徵的方法,如果學習曲線具有高偏差,可以通過增加特徵,增加多項式特徵以及調整懲罰項常數的方法。

SVM算法

SVM是對對邏輯迴歸函數進行改進,並且對代價函數進行相應的改進。SVM是一類大間距分類器,具有較好的魯棒性,其代價函數的常數C與上文講的懲罰項常數具有相似的特性。無核SVM即線性SVM和邏輯迴歸方法效果差不多,有核SVM在解決複雜非線性迴歸問題具有很好的效果,神經網絡基本可以解決線性迴歸、邏輯迴歸、SVM能解決的問題,但是SVM訓練和運行更快一些。


分享到:


相關文章: