1. 程式人生 > >吳恩達機器學習之過擬合問題

吳恩達機器學習之過擬合問題

一、過擬合問題:———什麼是過度擬合問題?

1.1兩個例子:

例子一:     

      
           

模型假設函式

的形式:             一次函式                 二次函式                高階多項式

 

模型擬合效果:      演算法模型沒有很好地擬合訓練集資料      演算法模型擬合訓練集資料效果很好       演算法模型很好地擬合了訓練集資料

                                                         (因為,該模型的曲線正好通過了所有的資料點)

                                                         但是,該曲線很扭曲

結論:          ——欠擬合/演算法有高偏差          ——剛好合適                 ——過擬合/演算法具有高方差

 

    總結:過度擬合的特點

    1. 過擬合將在變數的數目過多時出現。
    2. 訓練出來的假設能很好地擬合訓練集中的資料——>導致,代價函式J會很小,接近於0。                                                                                                                                                                   
    3. 訓練出來的模型假設,無法泛化到新的樣本中,即:模型假設函式,無法預測新樣本的輸出值y(新樣本中房子的價格)。                                                                                                        注:泛化:一個模型假設,應用到新樣本(沒有出現在訓練集的資料)
      中的能力。
    4. 過擬合的假設函式,和可用的資料(訓練資料)相吻合,但是不能很好地推廣到新資料(新樣本)上面。
    5. 過擬合的原因:1.模型太龐大、太複雜,引數過多,導致沒有足夠的資料去約束;2.假設函式太複雜,導致函式影象,產生了很多和資料無關的不必要的,曲線和角度。
    6. 模型的變數過多,樣本少時,會發生過擬合。  

      

        

  

    例二:邏輯迴歸

            

      演算法模型:      一次函式直線              加入二次項——>二次函式         加入許多高次項——>高階多項式函式       

      假設函式:    hθ(x) = g(θ0+ θ1x1+ θ2x2)                          hθ(x) = g(θ0+ θ1x1+ θ2x2+          hθ(x) = g(θ0+ θ1x1

                                                          θ3x12θ4x22+ θ5x1x2)          θ2x12+ θ3x12x2+ θ4x12x22 + 

                                                          θ5x13x23+ θ6x13x2 + .....) 

                      影象結果:   模型沒有很好地擬合訓練資料          擬合效果比一次函式直線強         模型千方百計地去找一個判定邊界

                                                          去符合每一個訓練樣本

 

                 結論:      欠擬合/高偏差                  剛剛好               過擬合/高方差

                                                          無法泛化到新的樣本上      

    1.2如何解決過擬合問題:

     1.2.1解法一:減少選取的變數(feature)的數量

        方法1:人工檢查:人工檢查,變數(feature)的清單,決定哪些變數更重要,哪些變數保留,哪些變數捨棄。

        方法2:模型選擇演算法:演算法自動決定哪些變數保留,哪些捨棄。

        該解法的缺點:捨棄變數,會意味著,捨棄一些關於問題的資訊。

    

    1.2.2解法二:正則化:

        1:保留所有變數(feature),但是減小各個引數θj 的量級大小。

        解法特點:當有很多特徵(feature)時,且每個feature變數對於預測結果y都有用時,我們不希望捨棄任何一個變數,正則化方法的效果很好。

 

二、代價函式:

      ——1.正則化,如何進行?

      ——2.當進行正則化時,需寫出代價函式。

  2.1例三:房屋價格預測(1)

    

            二次函式擬合                    高階函式擬合

         hθ(x) =g(θ0+ θ1x+ θ2x2)                 hθ(x) =g(θ0+ θ1x+ θ2x2+ θ3x34x4)

          剛剛好擬合數據                    過擬合(泛化差)

 

         解決方法:加入懲罰項,使得θ3、θ4值很小。

                

 

    2.2正則化思想

        通過加入懲罰項,使得引數儘可能的小、儘可能地接近於0,從而使模型假設h變得更簡單,更不容易出現過擬合問題。  

 

 

    2.3例四:房屋價格預測(2)        

       

      有100個特徵(feature):x1,x2,x3,x4,........,x100  

      有101個引數(parameter):θ0,θ1,θ2,.........,θ100 

      注:與例三的區別:

          1.例三知道所有引數中,θ3,θ4 是高階項引數,即:所有引數中,相關度低的引數是θ3,θ4 ,知道要縮小的引數為θ3,θ4

          2.例四中,不知道所有特徵x1~x100哪個是相關度低的特徵。

          核心:例四中,不知道要縮小哪些引數的值

          解決方案:修改代價函式J(θ),來縮小所有的引數

          

       Q:如果例三中的λ被取值很大會怎樣?比如λ=1010

       A: λ值過大——>對θ1,θ2,θ3,θ4懲罰程度過大——>θ1,θ2,θ3,θ4 ≈ 0  (θ1,θ2,θ3,θ4 的值均接近於0)

        ————>

        ————>h(x) = θ0

                                             

                用一條水平直線去擬合數據,欠擬合

                所以,為了讓正則化起到應有的效果,應該如何選取合適的J(θ)???

 

三、線性迴歸的正則化:

  3.1正則化線性迴歸的優化目標:

      最小化:

        

        

 

  3.2梯度下降法:

      3.2.1原始版:

        

      3.1.2正則化版

        

  

    

  3.2正規方程(normal equation):

    

    

      

              注:n = 2 時,

                  

 

       

 

四、邏輯迴歸的正則化:

  4.1代價函式:

    

 

 

  4.2梯度下降法:

    

 

 

  4.3高階演算法優化:

      沒搞懂。。。。。><

 

 

 

五、程式設計作業:

    

 

六、總結、

  6.1

    邏輯迴歸的梯度下降問題:

      

        邏輯迴歸的,正則化的梯度下降法,引數更新,應該使用下圖這兩個公式:

 

 

 

        

          

 

                     

                                

    

    6.2

      使用梯度下降法時,監測梯度下降法是否正確工作的方法:

                  畫圖,畫出作為迭代次數的函式的梯度影象,確保它是遞減的即可。