模式识别与机器学习笔记(一)
本系列博文是對研一課程《模式識別與機器學習》的隨堂筆記,希望將老師所講的與自己的見解記錄下來,方便加深自己的理解以及以后復習查看,筆記完全按照老師所講順序,歡迎交流。
一、模式識別與機器學習的基本問題
機器學習主要解決以下四類問題:
1.監(jiān)督學習:指的是訓練的數(shù)據(jù)既包括特征(feature)又包括標簽(label),通過訓練,讓機器可以自己找到特征和標簽之間的聯(lián)系,在面對只有特征沒有標簽的數(shù)據(jù)時,可以判斷出標簽。監(jiān)督學習主要分為兩類,分別為回歸問題(Regression)與分類問題(Classification)。回歸問題的目標是通過對已有數(shù)據(jù)的訓練擬合出恰當?shù)暮瘮?shù)模型,分類問題的目標是通過分析數(shù)據(jù)的特征向量與對應類別標簽的關系,對于一個新的特征向量得到其類別。兩者的區(qū)別是回歸針對連續(xù)數(shù)據(jù),分類針對離散數(shù)據(jù)。
2.非監(jiān)督學習:指的是在未加標簽的數(shù)據(jù)中,找到隱藏的結構,由于提供給學習者的實例是未標記的,因此沒有錯誤信號(損失)來評估潛在的解決方案。典型的非監(jiān)督學習類型包括聚類(Cluster)、隱馬爾可夫模型、使用特征提取的技術降維(主成分分析)。
3.半監(jiān)督學習:所給的數(shù)據(jù)有的是有標簽的,而有的是沒有標簽的,試圖利用大量的未標記示例來輔助對少量有標記示例的學習,常見的兩種半監(jiān)督的學習方式是直推學習(Transductive learning)和歸納學習(Inductive learning)。
4.強化學習(Reinforcement learning):指的是機器以“試錯”的方式進行學習,通過與環(huán)境交互獲得獎賞指導行為,目標是使機器獲得最大的獎賞。強化學習中由環(huán)境提供的強化信號對產(chǎn)生動作的好壞作評價,而不是告訴機器如何去產(chǎn)生正確的動作。
二、多項式曲線擬合(Polynomial Curve Fitting)實例
本課程講述的機器學習算法多為監(jiān)督學習算法和非監(jiān)督學習算法,此處用多項式曲線擬合的例子來簡述監(jiān)督學習的過程,作為全文開篇的算法來講解機器學習的共通性。
1.問題描述
輸入變量:x ,目標變量:t , 生成過程:實際問題中是未知的 , 給定訓練樣本:x,t
前文講述過監(jiān)督學習是指訓練的數(shù)據(jù)既包括特征,又包括標簽。在本例中,輸入變量x即為數(shù)據(jù)特征,目標變量t即為標簽,我們給定訓練樣本:x,t。生成過程也就是我們將使用的帶有參數(shù)的待擬合模型(實際問題中是未知的,需要根據(jù)人為的經(jīng)驗選取合適的模型),本例中采用的模型為多項式模型,公式如下,
我們的目標是當給定新的x值時,能夠通過此模型預測t的值,也就是說,我們需要利用給定的訓練樣本,估計模型中的參數(shù)w。如何計算出最佳的w值?采用誤差平方和最小的原理,即
?????????2.求解問題
問題中,參數(shù)w的個數(shù)M是模型的關鍵,我們假定有10個訓練樣本,分別取M=0,1,3,9來觀察模型的擬合情況。
當M=0,1時,模型的效果很差,很多點不在曲線上;當M=3時,模型效果良好,紅色線與綠色線基本一致;當M=9時,雖然所有訓練數(shù)據(jù)均在曲線上,但模型效果極差,紅色線與綠色線差別極大(10個方程,9個未知數(shù),相當于模型有確定的解),這種情況稱為過擬合(Over-fitting),與之相對應的是欠擬合(Under-fitting)。我們對M取值的不同情況進行考察,得到如下的結果,
此處的ERMSE_{RMS}ERMS?為均方誤差(root-mean-square),
當M=9時,此時的訓練誤差很小(為零),而測試誤差很大,這種情況我們稱為過擬合;相對應的,欠擬合是由于訓練量少導致的訓練誤差很大的情況。可見,當參數(shù)數(shù)量很多時,接近或超過訓練數(shù)據(jù)的數(shù)量,會導致過擬合,也就是說,模型復雜度越高過擬合越容易發(fā)生。對于一個模型來說,如果它能夠?qū)]見過的數(shù)據(jù)做出預測,我們就說它能夠從訓練集泛化到測試集,我們的目標是構造出泛化精度盡可能高的模型。在欠擬合與過擬合間存在一個最佳泛化模型,
上述是采用10個訓練樣本和9個模型參數(shù)的情況,我們嘗試增加訓練樣本的數(shù)量,觀察訓練結果,
????我們發(fā)現(xiàn),訓練樣本數(shù)量越多,模型的擬合效果越好,同時解決了過擬合的問題,說明增加數(shù)據(jù)集有效地解決了模型復雜度過高導致的過擬合問題。由此可以看出,模型復雜度與訓練集輸入的變化密切相關,當我們選擇模型時,數(shù)據(jù)集中包含的數(shù)據(jù)點的變化范圍越大,在不發(fā)生過擬合的前提下可以使用的模型就越復雜。
觀察訓練后的模型參數(shù),發(fā)生過擬合情況下的參數(shù)往往非常大,原因是擬合函數(shù)需要考慮每一個訓練樣本點,最終形成的擬合函數(shù)波動很大,在某些很小的區(qū)間里函數(shù)值的變化很劇烈,意味著在某些區(qū)間的函數(shù)導數(shù)值的絕對值會非常大,只有參數(shù)(系數(shù))足夠大,導數(shù)的絕對值才能更大。
為了約束參數(shù)的范圍,采用正則化 的方法,可以在一定程度上減少過擬合的情況。
在損失函數(shù)尾部所加的計算式即為正則項,直觀上來看正則項緩解了www的變化,可以假設當E(w)E(w)E(w)有同樣的ΔE(w)ΔE(w)ΔE(w)時,由于正則項始終為正,分擔了一部分的E(w)E(w)E(w)的變化,相對于不加上正則項,減緩了由于原損失函數(shù)項C0C_0C0?導致的www的變化(個人理解)。嚴格的數(shù)學推導如下,
CCC為添加正則項后的損失函數(shù),采用梯度下降法進行求解,
其中,η、λ、nη、λ、nη、λ、n都是正的,所以 1?ηλ/n1?ηλ/n1?ηλ/n小于1,它的效果是減小www(直接減小了www的值,防止過大或過小,限制www的范圍)。
λλλ是超參數(shù),需要人為設置,當λ=0λ=0λ=0時相當于不加入正則項,設置不同的λλλ有如下不同的結果,
模型參數(shù)值如下,
正則化有效的緩解了模型的過擬合問題,解決途徑:添加正則項→限制參數(shù)→解決過擬合。
未完待續(xù)
總結
以上是生活随笔為你收集整理的模式识别与机器学习笔记(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python asyncio 异步编程-
- 下一篇: OpenCV——读取视频文件并写入文件