李宏毅机器学习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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五人表决器课程设计单片机c语言,基于单片
- 下一篇: 李宏毅机器学习总结