日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

李宏毅机器学习Regression

發布時間:2023/12/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅机器学习Regression 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.回歸定義

  • regression就是尋找一個函數,通過輸入特征,然后輸出一個數值

2.模型步驟

  • Step1:模型假設,選擇模型框架(linear model)
  • Step2:模型評估,如何判斷眾多模型的好壞(loss function)
  • Step3:模型優化,如何篩選最優的模型(Gradient Descent)

Step1:模型假設–linear model

一元線性模型(單個特征):最簡單的模型(線性模型),并且假設因變量只有一個,即寶可夢進化前的cp值,則表達式為y=b+w?xcpy=b+w\cdot x_{cp}y=b+w?xcp?。
多元線性模型(多個特征):對單變量模型進行泛化,生成多變量線性模型,表達式為y=b+∑wixiy=b+\sum w_ix_iy=b+wi?xi?。其中xix_ixi?表示的是每個特征的取值,wiw_iwi?表示的是每個特征對應的權重,b表示的是偏置(bias).

Step2:模型評估–loss function

  • 使用損失函數(loss function)來衡量模型的好壞

統計10組原始數據L(f)=L(w,b)=∑n=110(yn?(b+w?xcpn))2L(f)=L(w,b)= \sum_{n=1}^{10} ( y^n?(b+w?x _{cp}^n)) ^2L(f)=L(w,b)=n=110?(yn?(b+w?xcpn?))2的值,和越小模型越好。
其中yyy表示的是真實值,后者表示的是預測值。
公式是對所有樣本的誤差求平方和。

Step3:模型優化–Gradient Descent

從理論上來說,如果存在評估標準和函數空間,就可以使用窮舉法選擇出最優函數。但實際上來說,這是不可取的,因為計算量太大而且耗時太長。所以我們需要在有限時間內(而且不能太慢),求出最優函數。
由此引出梯度下降法:


這里需要引入一個學習率的概念:移動的步長,上圖中的η\etaη

  • 步驟1:隨機選取一個w0w^0w0
  • 步驟2:計算微分,也就是當前的斜率,根據斜率來判定移動的方向:
    • 大于0減小w值
    • 小于0增加w值
  • 步驟3:根據學習率移動
  • 重復步驟2和步驟3,直到找到最低點

    梯度下降存在的問題
  • 局部最優點
  • 學習率太低導致迭代至收斂太慢
  • 學習率太高導致直接越過谷底,算法發散

不過對于局部最優點,線性回歸問題不大,因為線性回歸中的損失函數為凸函數,所以不存在局部最優點

3.驗證模型好壞

  • 使用訓練集和測試集的平均誤差來驗證模型的好壞

訓練集上

測試集上

測試集上的誤差大于訓練集上的誤差很正常。
但是是否存在更好的函數,使得訓練數據和測試數據的評估誤差都變小呢?根據泰勒公式,任何形式的函數都可以近似表示為若干個多項式函數之和。而我們現在使用的是線性函數,則可以嘗試使用多項式函數降低數據誤差。

4.優化模型

Step1:1元N次線性模型


可見,二次模型在訓練集和測試集上的表現都比之前更優秀。
然后可以再試試三次,四次,五次……

  • 注意:其實不是只有圖像是直線的就是線性模型,其他各種復雜的曲線也可以是線性模型,因為把xcp1=(xcp)2x_{cp}^{1}=(x_{cp})^2xcp1?=(xcp?)2看作一個特征,那么y=b+w1?xcp+w2?xcp1y = b + w_1\cdot x_{cp} + w_2\cdot x_{cp}^1y=b+w1??xcp?+w2??xcp1?其實就是線性模型

結果顯示,到四次的時候,訓練和測試綜合效果最好,而五次中雖然訓練誤差最小,但是測試誤差很大,此時過擬合——即在訓練集上表現很好,但在測試集上表現很差(相對為欠擬合——訓練集和測試集上表現都很差)。

由于高冪次函數空間包括了低冪次函數空間。雖然冪次的上升,會使得訓練數據的誤差不斷減小,但是可能也會使得測試數據的誤差急劇增加。

Step2:步驟優化

通過對Pokemons種類判斷,將4個線性模型合并到一個線性模型中:



加入寶可夢種類作為自變量以后,即使是線性模型,訓練和測試誤差都很小:

考慮把寶可夢的體重、身高、HP都加入到自變量中:

把寶可夢種類加入到自變量中,如果使用二次函數進行擬合,就會出現過擬合的現象:

Step3:正則化

  • 更多特征,但是權重w可能會使某些特征權值過高,仍舊導致overfitting,所以加入正則化
  • 注意正則化項不包括偏置項
  • 正則化公式中的λ\lambdaλ取值越大,會使得函數越平滑。這是由于λ\lambdaλ的值越大,在盡量使損失函數變小的前提下,就會使得w越小,w越小就會使得函數越平滑(在很多應用場景中,并不是w越小模型越平滑越好,但是經驗告訴我們 w 越小大部分情況下都是好的)。
  • λ\lambdaλ本質上表示的是懲罰項,懲罰項過大可能就會影響學習的效果,因為懲罰項過大,就會導致參數空間變得比較小,所以最終結果一般。

總結

以上是生活随笔為你收集整理的李宏毅机器学习Regression的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。