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