【一起看花书1.1】——第五章 机器学习基础
第五章 機器學習基礎(1)
本章介紹的是關于機器學習中的一些模型評價方面的知識。深度學習火了很久,但是深度學習也是發(fā)源于ML的感知機方法。我們要想充分理解深度學習,必須對機器學習的基本原理有深刻的理解。
作者推薦的ML的書,有:
MA, USA. 56, 87, 126
之前也讀過一些推薦的中文數(shù)據(jù),比如西瓜書+南瓜書、統(tǒng)計學習方法等等,但是總是看的快,忘得快,理解不深刻。
這里,也希望自己不做抄書匠,有點自己的體會。
這里有個觀點:
- 機器學習本質(zhì)上屬于應用統(tǒng)計學,更多地關注于如何用計算機統(tǒng)計地估計復雜函數(shù),不太關注為這些函數(shù)提供置信區(qū)間;因此我們會探討兩種統(tǒng)計學的主要方法:頻率派估計和貝葉斯推斷(見【一起看花書1.2】).
本節(jié)內(nèi)容只涉及相關的概念與一些“啟發(fā)式思想”,對應于目錄5.1-5.3節(jié)
目錄
- 5.1 學習算法
- 5.2 容量、過擬合、欠擬合
- 5.3 超參數(shù)和驗證集
- 5.4 估計、偏差、方差
- 5.5.最大似然估計
- 5.6 貝葉斯統(tǒng)計
- 5.7 監(jiān)督學習
- 5.8 無監(jiān)督學習
- 5.9 隨機梯度下降
- 5.10 構建機器學習算法
- 5.11 促使深度學習發(fā)展
- 5.12 其他知識(補充)
5.1 學習算法
圍繞機器學習,有三方面內(nèi)容,是任務、性能度量和經(jīng)驗。從科學和哲學的角度來看,機器學習受到關注是因為提高我們對機器學習的認識需要提高我們對智能背后原理的理解,這是需要一些“數(shù)學上的洞察”。
5.1.1 任務
任務是一種能力,而不是學習本身,可以通過“指標”衡量。通常機器學習任務定義為機器學習系統(tǒng)應該如何處理樣本(sample),樣本由特征(feature)組成。
常見的任務包括:分類、回歸、生成、結構化預測。作者在這里給出了非常詳細的分類法,但是并不嚴格。
- 分類:典型的監(jiān)督學習任務,可以看作"學一個目標空間離散的函數(shù)“,即學得到一個f:Rn→1,2,3,...,kf:R^n \to {1,2,3,...,k}f:Rn→1,2,3,...,k,這就是學到kkk分類任務的模型fff。
- 輸入缺失分類:也是一種分類任務,但是各個樣本中會存在特征的缺失,這可能需要我們學習”一組分類映射“而非“一個分類映射”,有效的方法比如:“學習所有相關變量的概率分布,然后求邊緣概率”。
- 回歸:也是典型的監(jiān)督學習任務,可以看作學得f:Rn→Rf:R^n \to Rf:Rn→R,典型算法是“線性回歸”。
- 轉(zhuǎn)錄:機器學習系統(tǒng)觀測一些相對非結構化表示的數(shù)據(jù),并轉(zhuǎn)錄信息為離散的文本形式,作者舉的例子是"OCR"和"ASR"。個人人為其實這是一種“結構化不太強的分類任務”。
- 翻譯:這里單純指的是文本的翻譯,而不是所謂的“跨模態(tài)”、“跨領域(domain)”、“風格遷移”之類的翻譯。
- 結構化學習:輸出是向量或者其他包含多個值的數(shù)據(jù)結構,比如“樹、圖、線性表”等等其實都是結構化的學習,尤其是“語言序列”,它們內(nèi)部的各個元素有非常強、復雜的依賴關系。因此,翻譯和轉(zhuǎn)錄其實也是結構化學習
- 異常檢測:其實異常也是一種分類,但是問題在于“定義異常”。
- 合成和采樣:生成一些和訓練數(shù)據(jù)相似的新樣本,不能嚴格地說是分類、回歸,因為往往需要一些”隨機性“。
- 缺失值填補:填補樣本中的”缺失特征“。是一種監(jiān)督學習任務。
- 降噪:通過噪聲樣本還原為干凈樣本
- 概率(密度)預測:預測樣本的分布概率,其實以上很多任務都要隱式預測出概率分布。但是其實估計概率這件事非常難。
5.1.2 評估
之前保研面試時,一位在WWW發(fā)了一篇文章的同學竟然不知道評價指標F1是什么,真是令人大跌眼鏡。評估是很重要的,可以說訓練的目標就是為了有好的評估效果不是嗎?
分類、缺失輸入分類和轉(zhuǎn)錄任務,我們通常度量模型的準確率、召回率、F1等指標。“度量什么?怎么度量?”,著取決于我們的目標。
而密度估計、翻譯、生成和采樣任務的評估本身就非常困難,需要設計對應于設計對象的替代標準,或者設計一個理想標準的良好近似。
5.1.3 經(jīng)驗
其實機器學習中以上種種任務,根據(jù)數(shù)據(jù)集的樣本是否有標簽(label)可以分為監(jiān)督學習和無監(jiān)督學習。
-
簡單的說,監(jiān)督學習是為了學習”人定義的知識“,無監(jiān)督學習是根據(jù)“某種規(guī)則學習數(shù)據(jù)的結構/分布”。
-
從概率角度,無監(jiān)督學習試圖顯式或隱式地學習聯(lián)合分布分布 p(x)p(x)p(x)(這里并不包含顯式的y),或者分布的其他性質(zhì);而監(jiān)督學習通常是估計條件概率p(y∣x)p(y | x)p(y∣x)。
-
實際上二者也可以轉(zhuǎn)化,通過全概率公式和貝葉斯公式對聯(lián)合概率、條件概率的轉(zhuǎn)化也可見一斑。
傳統(tǒng)地,人們將回歸、分類或者結構化輸出問題稱為監(jiān)督學習。支持其他任務的密度估計通常被稱為無監(jiān)督學習。
其它諸如“強化學習”,和本范圍討論不同的是,其基于“行為主義”,即我們能給定“環(huán)境、智能體、交互”,但是具體的“樣本”和"標簽"來源于“交互過程”。
5.1.4 非參數(shù)算法
在5.2節(jié)的容量部分,討論了很多關于參數(shù)的問題。實際上,我們也可以設計一些實用的非參數(shù)模型,使它們的復雜度和訓練集大小有關,比如KNN算法。
不過,很多時候非參數(shù)模型僅是一些不能實際實現(xiàn)的理論抽象(比如搜索所有可能概率分布的算法),只能用作形式化表示。
在最近向量不唯一的情況下,如果允許算法對所有離 x 最近的 Xi,: 關聯(lián)的 yi 求平均,那么該算法會在任意回歸數(shù)據(jù)集上達到最小可能的訓練誤差。這樣其實相當于直接記住了所有數(shù)據(jù),并直接根據(jù)代價函數(shù)選擇結果
也可以將參數(shù)學習算法嵌入另一個增加參數(shù)數(shù)目的算法來創(chuàng)建非參數(shù)學習算法。例如,我們可以想象這樣一個算法,外層循環(huán)調(diào)整多項式的次數(shù),內(nèi)層循環(huán)通過線性回歸學習模型。這就是暴力窮舉。
5.2 容量、過擬合和欠擬合
泛化誤差(generalization error,也稱作測試誤差test error)指新輸入的誤差期望;期望的計算,實際上通過不同的廣泛采樣數(shù)據(jù)體現(xiàn)。機器學習和優(yōu)化不同的地方在于,我們不僅希望訓練誤差低,也希望 泛化誤差很低。
因此:假設我們有概率分布 p(x,y)p(x, y)p(x,y),從中重復采樣生成訓練集和測試集,隨機模型訓練誤差的期望和該模型測試誤差的期望是一樣的。
5.2.1 基礎概念
1.泛化性(generalization):在未觀測到的數(shù)據(jù)集上表現(xiàn)良好的能力。可以說是機器學習的主要挑戰(zhàn),也是我們?yōu)槭裁匆?#xff08;train,dev,test)集合的原因。
2.數(shù)據(jù)生成過程(data generating process):訓練集和測試集數(shù)據(jù)的生成,可以理解為在一個數(shù)據(jù)生成過程(data generating process)的概率分布采樣過程。
3.重要的假設:獨立同分布假設:每個數(shù)據(jù)集中的各樣本都是彼此相互獨立的,并且訓練集和測試集是同分布的(identically distributed),采樣自相同的分布。這個共享的潛在分布稱為數(shù)據(jù)生成分布(data generating distribution),記作 pdatap_{data}pdata?(這個可以理解為數(shù)據(jù)的真實分布嘛?)
4.機器學習模型的兩個目標:
5.模型容量:
通俗地,模型的容量是指其擬合各種函數(shù)的能力。容量低的模型可能很難擬合訓練集。容量高的模型可能會過擬合,因為記住了不適用于測試集的訓練集性質(zhì)。
表示容量:模型的理想容量。
有效容量:由于學習算法的不完美等等,使得模型實際得到的容量不足。
- 問:模型容量和什么有關?模型結構(CNN、attention)、輸入特征數(shù)、對應的超參數(shù)(幾層注意力、CNN的Kernal size,pide,stride等等)
6.假設空間(hypothesis space)。一種控制訓練算法容量的方法是選擇 假設空間,即學習算法可以選擇的解決方案函數(shù)集。例子是“線性回歸”中,可以引入其它關于x的函數(shù);例如,一個可以用3次函數(shù)達到較好效果的回歸模型,用1次函數(shù)模型,會“欠擬合”,而用10次函數(shù),可能“過擬合”。注意,選擇一個合適的函數(shù)本身就是很難的問題
7.奧卡姆剃刀原則:在同樣能夠解釋已知觀測現(xiàn)象的假設中,我們應該挑選 ‘‘最簡單’’ 的那一個。
8.Vapnik-Chervonenkis 維度理論(VC維):一種著名的量化模型容量的方法。相關統(tǒng)計學習理論的結論表明,“訓練誤差和泛化誤差之間差異”的上界,隨著模型容量增長而增長,但隨著訓練樣本增多而下降。也就是說,大容量的模型需要更多的訓練樣本,否則很容易過擬合
9.貝葉斯誤差(Bayes error):問題本身x→yx \to yx→y是有隨機的或者是非確定的。理想模型假設我們能夠預先知道生成數(shù)據(jù)的真實概率分布。從預先知道的真實分布 p(x,y)p(x, y)p(x,y) 預測而出現(xiàn)的誤差被稱為貝葉斯誤差 。這可能是因為分布中仍然會有一些噪聲。
- 提問:貝葉斯誤差是用來衡量數(shù)據(jù)噪聲帶來的不良影響的嘛?是不是和模型沒有關系——我覺得是。
5.2.2 一些經(jīng)驗:
通常,當模型容量上升時,訓練誤差會下降,直到其漸近最小可能誤差(假設誤差度量有最小值)。通常,泛化誤差是一個關于模型容量的 U 形曲線函數(shù)。
盡管在統(tǒng)計機器學習理論有很多誤差上界的估算,但是它們很少應用于實際中的深度學習算法。一部分原因是邊界太松,另一部分原因是很難確定深度學習算法的容量。
由于有效容量受限于優(yōu)化算法的能力,確定深度學習模型容量的問題特別困難。而且對于深度學習中的一般非凸優(yōu)化問題,我們只有很少的理論分析。這一小節(jié)所說也是很容易體會的
訓練誤差和泛化誤差會隨訓練集的大小發(fā)生變化:
5.2.3 no free lunch 規(guī)則
學習理論表明機器學習算法能夠在有限個訓練集樣本中很好地泛化。機器學習保證找到一個在所關注的大多數(shù)樣本上可能正確的規(guī)則。
no free lunch原理:在所有可能的數(shù)據(jù)生成分布上平均之后,每一個分類算法在未事先觀測的點上都有相同的錯誤率;也就是說,如果考慮所有可能的數(shù)據(jù)生成分布時,似乎沒有哪個算法一定最強。
但實際上,現(xiàn)實中的問題是有特定分布的。如果我們對遇到的概率分布進行假設的話,那么我們可以設計在這些分布上效果良好的學習算法。
因此,我們的目標是理解什么樣的分布與人工智能獲取經(jīng)驗的 ‘‘真實世界’’ 相關,什么樣的學習算法在我們關注的數(shù)據(jù)生成分布上效果最好。即,找最能解決具體問題的方法
原書的圖5.4可以再看看
5.2.4 正則化
什么是正則化(regularization):隱式或顯式地表示對不同解的偏好。正則化是指我們修改學習算法,使其降低泛化誤差而非訓練誤差。
沒有免費午餐定理暗示我們必須在特定任務上設計性能良好的機器學習算法。換句話說,在特定任務上做“過擬合”。
對于同一類算法,我們具體討論修改學習算法的方法只有,通過增加或減少學習算法可選假設空間的函數(shù)。以此增加或減少模型的表示容量。
在代價函數(shù)中引入一些其他項,可以看作是“某種偏好”;而排除某些函數(shù),就是“對具有相關特點的函數(shù)的無限反對”。
正則化是機器學習領域的中心問題之一,只有優(yōu)化能夠與其重要性相媲。但其實正則化方法也是**“沒有免費的午餐”**的,沒有一種通用方法能解決所有問題。
深度學習中普遍的(特別是本書中的)理念是大量任務(例如所有人類能做的智能任務)也許都可以使用非常通用的正則化形式來有效解決。
5.3 超參數(shù)和驗證集
超參數(shù)既包括“容量超參數(shù)”(控制模型的結構、正則化參數(shù))、“訓練超參數(shù)”(控制優(yōu)化過程)。
- 為什么有些參數(shù)被設置為超參數(shù)呢?
可能是因為它太難優(yōu)化了。更多的情況是,因為它不適合在訓練集上學習:如模型結構,因為模型容易趨向于在訓練集上過擬合——因此驗證集還是有必要的。
5.3.1 留出法:
一般的,我們對訓練集進行8-2切分,做成新的訓練集和驗證集。盡管驗證集的誤差通常會比訓練集誤差小,驗證集會低估泛化誤差。(也未必,我訓練的時候感覺測試集的loss也會比dev集低)。
5.3.2 k-fold交叉驗證:
當給定數(shù)據(jù)集 D 對于簡單的訓練/測試或訓練/驗證分
割而言太小難以產(chǎn)生泛化誤差的準確估計時(因為在小的測試集上,模型可能具有過高的方差),k-折交叉驗證算法可以用于估計學習算法 A 的泛化誤差。
挑戰(zhàn)是逐步加大難度的:在實際中,當相同的測試集已在很多年中重復地用于評估不同算法的性能,并且考慮學術界在該測試集上的各種嘗試,我們最后可能也會對測試集有著樂觀的估計。值得慶幸的是,學術界往往會移到新的(通常會更巨大、更具挑戰(zhàn)性)基準數(shù)據(jù)集上。
5.12 其他知識
新名詞表
總結
以上是生活随笔為你收集整理的【一起看花书1.1】——第五章 机器学习基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: COMSOL模拟卡门涡街的模型
- 下一篇: 贝叶斯网络(Belief Network