0
本文作者: 汪思穎 | 2017-09-30 17:37 |
雷鋒網(wǎng) AI科技評(píng)論按,本文作者Frankenstein,首發(fā)于知乎專欄閑敲棋子落燈花,雷鋒網(wǎng) AI科技評(píng)論獲其授權(quán)轉(zhuǎn)載。
關(guān)鍵詞:有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)、回歸、分類、誤差函數(shù)、泛化、正則化、超參數(shù)、驗(yàn)證集。
序言
從去年5月入坑以來,線上線下都上過機(jī)器學(xué)習(xí)的課(線上是看了Coursera的課入門,線下上了DS-GA 1003 Machine Learning and Computational Statistics),但從沒有完整讀過一本書。
暑假和小伙伴們約好一起讀Pattern Recognition and Machine Learning(模式識(shí)別與機(jī)器學(xué)習(xí),下簡稱PRML)。初步打算每周讀一章,大家輪流主講。開了專欄以后一直沒寫過東西,第一部分內(nèi)容就準(zhǔn)備貢獻(xiàn)給PRML了。
可能有用的鏈接:
Christopher Bishop at Microsoft Research (https://www.microsoft.com/en-us/research/people/cmbishop/)在這里可以找到部分章節(jié)的PPT、書的勘誤、部分答案。
PRML/PRMLT (https://github.com/PRML/PRMLT)陳默(他也上知乎,沒關(guān)注的可以關(guān)注一發(fā))用MATLAB給出了書里的所有模型實(shí)現(xiàn)。
scikit-learn/scikit-learn (https://github.com/scikit-learn/scikit-learn)視情況我可能會(huì)給出少量代碼,但大部分內(nèi)容還是會(huì)更加側(cè)重模型的理論和動(dòng)機(jī),結(jié)合適當(dāng)?shù)臄?shù)學(xué)推導(dǎo)。如果想要了解一些代碼的實(shí)現(xiàn)的話,scikit-learn應(yīng)該還是現(xiàn)在最常用的實(shí)現(xiàn),可以考慮學(xué)習(xí)一下它的模型源代碼。
書的完整答案理論上是只對(duì)教師開放的,但由于大家都可以想見的原因搜一下就可以搜到了。
華盛頓大學(xué)的Pedro Domingos教授認(rèn)為機(jī)器學(xué)習(xí)有以下幾個(gè)門派:
基于邏輯、哲學(xué),出發(fā)點(diǎn)為填補(bǔ)現(xiàn)存知識(shí)中空白的符號(hào)學(xué)派
基于神經(jīng)科學(xué),出發(fā)點(diǎn)為模擬大腦的聯(lián)結(jié)學(xué)派
基于進(jìn)化生物學(xué),出發(fā)點(diǎn)為模擬進(jìn)化的進(jìn)化學(xué)派
基于統(tǒng)計(jì),出發(fā)點(diǎn)為系統(tǒng)的降低不確定性的貝葉斯學(xué)派
基于心理學(xué),出發(fā)點(diǎn)為發(fā)現(xiàn)新舊事物之間相似度的類推學(xué)派
在這之外還有基于動(dòng)物學(xué)習(xí)、最優(yōu)控制、動(dòng)態(tài)規(guī)劃的強(qiáng)化學(xué)習(xí)以及更加接近傳統(tǒng)頻率學(xué)派的期望最大化。Domingos的slides(https://learning.acm.org/webinar_pdfs/PedroDomingos_FTFML_WebinarSlides.pdf)里有更多這方面的內(nèi)容。他的《終極算法--機(jī)器學(xué)習(xí)和人工智能如何重塑世界》一書詳細(xì)科普了五個(gè)學(xué)派,挺有意思的,感興趣的可以去看一下(提醒:翻譯的不怎么樣)。
PRML就是貝葉斯學(xué)派的一本經(jīng)典教科書,從貝葉斯學(xué)派的視角系統(tǒng)梳理了機(jī)器學(xué)習(xí)的知識(shí),給人一種萬物皆可貝葉斯化的感覺。
在這一系列筆記里,我希望梳理每一章節(jié)里比較重要的內(nèi)容,并結(jié)合一些我到目前為止對(duì)機(jī)器學(xué)習(xí)的理解做一些適當(dāng)?shù)耐卣购吞骄?。這些內(nèi)容基本假設(shè)讀者上過一節(jié)機(jī)器學(xué)習(xí)入門課,可能不是self-contained的,可能不適合完全不了解的人閱讀,但希望對(duì)有一些初步了解的讀者能有幫助,也歡迎大家不吝指正。
如無另外點(diǎn)明,每一講內(nèi)容都有參考PRML,每一講其余的參考內(nèi)容會(huì)列在文章末尾。
第一章節(jié)(1. Introduction)內(nèi)容始于多項(xiàng)式曲線擬合的例子,終于信息論。
從機(jī)器學(xué)習(xí)里主流的三類問題——有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)的定義開始,Bishop用一個(gè)有監(jiān)督學(xué)習(xí)里的回歸問題引出了對(duì)誤差函數(shù)、泛化、模型復(fù)雜度、正則化、過擬合、驗(yàn)證集等核心概念。PRML這本書號(hào)稱是self-contained的,只假設(shè)讀者具備多元微積分、線性代數(shù)水準(zhǔn)的數(shù)學(xué)能力,因此不嚴(yán)格地介紹了概率論里的基本知識(shí)以保證讀者具備讀完余下內(nèi)容的基礎(chǔ)知識(shí)。當(dāng)然還是存在一些小的問題,比如隨機(jī)變量到底是什么?誤差條又是什么?當(dāng)然瑕不掩瑜,在大部分情況下,本書很好展現(xiàn)了方法和問題的動(dòng)機(jī)。
正文
1. Introduction
機(jī)器學(xué)習(xí)問題可以做如下分類:
有監(jiān)督學(xué)習(xí)(supervised learning): Applications in which the training data comprises examples of the input vectors along with their corresponding target vectors.
分類(classification): to assign each input vector to one of finite number of discrete categories.
例子:識(shí)別手寫數(shù)字并將其標(biāo)記為0~9這10個(gè)數(shù)字中的一個(gè)。
回歸(regression): the desired output consists of one or more continuous variables.
例子:基于反應(yīng)物、溫度、壓力預(yù)測(cè)化學(xué)制造過程的產(chǎn)出。
無監(jiān)督學(xué)習(xí)(unsupervised learning): Pattern recognition problems in which the training data consists of a set of input vectors without any corresponding target values.
聚類(clustering): to discover groups of similar examples within the data
密度估計(jì)(density estimation): to determine the distribution of data within the input space
降維(dimensionality reduction): to project the data from a high-dimensional space down to two or three dimensions
數(shù)據(jù)點(diǎn)/樣本生成(data point/sample generation): to obtain new samples from the probability distribution that is close to the underlying probability distribution of the data points/samples
強(qiáng)化學(xué)習(xí)(reinforcement learning): Problems about finding suitable actions to take in a given situation in order to maximize a reward, where optimal outputs are unknown.
例子:Play the game of backgammon to a high standard with a neural network using appropriate reinforcement learning techniques (Tesauro, 1994). (這可能是深度強(qiáng)化學(xué)習(xí)最早成功的案例之一了。)
上面的案例也可作為credit assignment的一個(gè)例子。具體地說,在一局游戲結(jié)束后,勝利或失敗被以某種形式歸因于游戲中采取的所有行動(dòng)。個(gè)人認(rèn)為這里credit assignment是指在一個(gè)episodic task結(jié)束后,如何恰當(dāng)?shù)慕o特定行動(dòng),或者在某個(gè)特定狀態(tài)采取特定行動(dòng)賦予合適的reward。
這里也有提到explore v.s. exploit和trial and error的思想。但總的來說因?yàn)楸緯緵]怎么觸及強(qiáng)化學(xué)習(xí),講的不是特別好。如果要比較好了解強(qiáng)化學(xué)習(xí)的話還是應(yīng)該看Sutton & Barto (http://incompleteideas.net/sutton/book/bookdraft2016sep.pdf)那本書。
本章主要介紹了一些最重要的概念和一些簡單的例子。在這之中包括將貫穿全書的三個(gè)工具:概率論、決策論以及信息論。
1.1 Example: Polynomial Curve Fitting
Example/Motivation: (a simple regression problem)
Given a real-valued target variable t, we wish to use this observation to predict the value of a real-valued target variable t. In particular, given N observations of x written as together with corresponding observations of t written as
, can we fit the data so that we can make predictions of the value
of the target variable for some new value
of the input variable?
這是一個(gè)典型的二維回歸問題。上過Andrew Ng Coursera 公開課的朋友們應(yīng)該還記得一上來遇到的那個(gè)給定住宅面積預(yù)測(cè)住宅價(jià)格的問題。Bishop這里給的訓(xùn)練數(shù)據(jù)則是 在
個(gè)均勻分布點(diǎn)上的取值加以基于同一高斯分布產(chǎn)生的隨機(jī)噪聲。如下圖是
時(shí)的情況。
首先我們考慮用一個(gè)階多項(xiàng)式擬合數(shù)據(jù),
,
(1.1)
是一個(gè)關(guān)于
的線性方程。
定義:關(guān)于未知參數(shù)的線性方程被稱為線性模型(linear models)。
我們基于訓(xùn)練數(shù)據(jù)決定的取值,一個(gè)潛在的假設(shè)是我們需要預(yù)測(cè)的
和訓(xùn)練數(shù)據(jù)來自同一分布或兩者分布非常接近,否則就沒有意義了。
a. 誤差函數(shù)
怎樣的 取值是好的呢?我們需要一把尺子來度量,這就是誤差函數(shù)(error function)。通過累加每一個(gè)訓(xùn)練數(shù)據(jù)的預(yù)測(cè)目標(biāo)變量
相對(duì)真實(shí)目標(biāo)變量
的偏移程度,誤差函數(shù)負(fù)責(zé)衡量訓(xùn)練好的模型,即
和訓(xùn)練數(shù)據(jù)分布之間的相似程度,其取值一般為非負(fù)。誤差函數(shù)的值越大,對(duì)于訓(xùn)練數(shù)據(jù)而言模型越糟。
例子:(平方誤差函數(shù))
很自然地,在回歸問題中,當(dāng)模型完美擬合訓(xùn)練數(shù)據(jù)時(shí),誤差一般會(huì)降到0。但值得注意的是在分類問題中,即便分類完美無缺誤差也可能不為0。
以下圖為例,我們有一個(gè)二元分類問題。在二維平面上有一個(gè)紅色類和一個(gè)藍(lán)色類。假設(shè)我們想用一條直線(在第二講里我們會(huì)提到,它們被稱為決策邊界)來把它們分開。圖中同樣①和②都完美進(jìn)行了分類,但我們會(huì)更希望模型訓(xùn)練得到的是①而不是②因?yàn)棰匐x兩個(gè)類最短距離之和要大于②。直覺來說當(dāng)我們有更多數(shù)據(jù)樣本而不只是眼前6個(gè)的時(shí)候①成功的可能性更高。這個(gè)問題的正式名稱是泛化,我們?cè)诤竺鏁?huì)提到。因此我們可能設(shè)計(jì)一個(gè)誤差函數(shù)使得②的誤差高于①。因此同樣①、②在數(shù)據(jù)上都能沒有錯(cuò)誤地進(jìn)行分類,②的誤差可能仍然不為0。
訓(xùn)練模型的過程中,我們希望調(diào)整 來減少誤差函數(shù)的值,可以說是面向減少誤差建模,故用
來表示誤差的值。
對(duì)于某些誤差函數(shù)(涉及函數(shù)的convexity,凸性),如平方誤差,我們可以通過對(duì)表達(dá)式關(guān)于未知參數(shù)(如之于
)進(jìn)行求導(dǎo),令求導(dǎo)后的表達(dá)式等于0來得到最優(yōu)參數(shù)
,這樣得到的參數(shù)有閉型(有限次常見運(yùn)算組合給出的表達(dá)式)。
b. 由泛化而來的模型選擇問題
現(xiàn)在我們知道了對(duì)于一個(gè)給定的正整數(shù)M,如何擬合訓(xùn)練數(shù)據(jù)。一個(gè)接踵而來的問題是我們要如何決定M的取值。
考慮的四種情況,對(duì)于每一種情況,我們都基于平方誤差找到擬合訓(xùn)練數(shù)據(jù)最好的多項(xiàng)式,如下圖。紅線為多項(xiàng)式圖形,綠線為
的圖形。
由上圖可知,越大,多項(xiàng)式擬合數(shù)據(jù)的能力越強(qiáng)。當(dāng)
時(shí),多項(xiàng)式甚至完美擬合了所有數(shù)據(jù)。然而我們從形狀上可以發(fā)現(xiàn)此時(shí)多項(xiàng)式的形狀與
相去甚遠(yuǎn)??梢灶A(yù)見當(dāng)我們?cè)?img src="https://www.zhihu.com/equation?tex=%5Csin%282%5Cpi+x%29" alt="模式識(shí)別與機(jī)器學(xué)習(xí)第一講(上)" eeimg="1" style="font-size:16px;font-style:normal;font-weight:normal;color:rgb(51, 51, 51);"/>上取新的數(shù)據(jù)點(diǎn)的話,多項(xiàng)式很難較好擬合這些新的數(shù)據(jù)點(diǎn)。相較之下,
時(shí)我們得到的多項(xiàng)式形狀則相當(dāng)接近
的形狀。像
時(shí)我們得到的模型這樣能很好擬合訓(xùn)練數(shù)據(jù)卻對(duì)于從同一概率分布得到的新數(shù)據(jù)擬合能力極差的情況,被稱為過擬合。像
時(shí)這樣模型連訓(xùn)練數(shù)據(jù)都無法很好擬合的情況被稱為欠擬合。
回到問題的出發(fā)點(diǎn),我們希望訓(xùn)練出的模型能盡可能學(xué)習(xí)到數(shù)據(jù)的原始分布(或者不妨稱之為數(shù)據(jù)的生成器),使得模型能精準(zhǔn)預(yù)測(cè)來自該分布的新數(shù)據(jù)。模型不光需要在訓(xùn)練數(shù)據(jù)上有好的表現(xiàn),在新的數(shù)據(jù)上也應(yīng)如此。正確預(yù)測(cè)新數(shù)據(jù)標(biāo)簽(即里的
)的能力被稱為泛化。
由此,我們可以提出一種衡量模型泛化能力的量化方法。除了訓(xùn)練數(shù)據(jù)外,我們另外取一組測(cè)試數(shù)據(jù)。在知道數(shù)據(jù)真實(shí)分布的情況下(如例子中的),我們直接從數(shù)據(jù)分布里采集新的數(shù)據(jù)點(diǎn)。否則我們可以預(yù)先把手頭的數(shù)據(jù)集劃分成訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)。在訓(xùn)練模型(擬合訓(xùn)練數(shù)據(jù))的過程中,擬合僅僅基于訓(xùn)練數(shù)據(jù)。在訓(xùn)練完后,我們用測(cè)試數(shù)據(jù)檢測(cè)模型的泛化能力,計(jì)算誤差函數(shù)的數(shù)值。
當(dāng)我們用這一方法應(yīng)用到多項(xiàng)式模型上時(shí),我們會(huì)發(fā)現(xiàn)時(shí)模型在測(cè)試數(shù)據(jù)上的表現(xiàn)相比
時(shí)所有模型的表現(xiàn)都要糟糕的多?;氐绞?.1,當(dāng)
時(shí),考慮標(biāo)量的話,我們有十個(gè)未知參數(shù)
。當(dāng)我們有十個(gè)線性獨(dú)立的數(shù)據(jù)點(diǎn)時(shí),我們可以精確得到每個(gè)未知參數(shù)的唯一解,因而得到的多項(xiàng)式模型完全依賴于訓(xùn)練數(shù)據(jù)點(diǎn)。事實(shí)上我們應(yīng)該可以通過插值法得到近乎完全一樣(考慮到可能存在數(shù)值誤差)的多項(xiàng)式。我們注意到
時(shí)多項(xiàng)式對(duì)訓(xùn)練數(shù)據(jù)的擬合其實(shí)已經(jīng)相當(dāng)不錯(cuò)了。一個(gè)由此而生的想法是在數(shù)據(jù)擬合改進(jìn)有限的情況下,我們應(yīng)該盡可能選擇簡單的模型,在多項(xiàng)式模型里就是選擇盡可能小的
。上述原則也可以被概括為“如無必要,勿增實(shí)體”,即是著名的奧卡姆剃刀原理。當(dāng)然不同人對(duì)于這個(gè)問題可能存在不同看法(https://www.quora.com/Does-Occams-Razor-apply-in-machine-learning)。有人就認(rèn)為我們?cè)诳紤]泛化能力的前提下還是要盡可能選擇復(fù)雜的模型從而盡可能避免關(guān)于數(shù)據(jù)分布信息的丟失。
對(duì)于某一特定模型,避免過擬合還有一種方法是使用盡可能多的訓(xùn)練數(shù)據(jù)。同樣在的情況下,當(dāng)我們?nèi)?5個(gè)數(shù)據(jù)點(diǎn)乃至100個(gè)數(shù)據(jù)點(diǎn)時(shí),隨著訓(xùn)練數(shù)據(jù)集越來越大,我們曲線擬合的結(jié)果也越來越好。
在這100個(gè)數(shù)據(jù)點(diǎn)上,時(shí)得到的模型很可能不如
來得好。通常數(shù)據(jù)集越大,我們所能擬合的模型的復(fù)雜程度或表示能力越高,因此得到的模型可能更接近于數(shù)據(jù)的真實(shí)分布。一種粗略的機(jī)制是訓(xùn)練數(shù)據(jù)的樣本數(shù)量應(yīng)當(dāng)不小于未知參數(shù)數(shù)量的某一固定倍數(shù)(如5倍或10倍)。值得一提的是未知參數(shù)的數(shù)量并不能完全衡量模型的復(fù)雜度,在第三章我們會(huì)接觸到更多這方面的內(nèi)容。
c. 正則化(regularization)
動(dòng)機(jī):復(fù)雜的模型擁有更強(qiáng)的表示能力,有沒有可能在無法隨意增加數(shù)據(jù)集的情況下,避免或改善過擬合的問題呢?
回到之前的回歸問題,當(dāng)時(shí),如果我們具體寫出擬合得到多項(xiàng)式的系數(shù)值的話會(huì)發(fā)現(xiàn)系數(shù)的絕對(duì)值非常大。系數(shù)越大,模型上下起伏越厲害。而系數(shù)越小,模型的形狀越平滑。我們希望能在擬合訓(xùn)練數(shù)據(jù)程度和模型波動(dòng)程度之間達(dá)成一個(gè)平衡,并寄希望于這種平衡能在一定程度上反映出模型對(duì)于真實(shí)數(shù)據(jù)分布的學(xué)習(xí)程度。我們引入一種叫正則化的方法。
具體地,我們給原本的誤差函數(shù)加上一個(gè)正則項(xiàng),令(或者在更一般的情況下我們考慮
,預(yù)測(cè)函數(shù)的復(fù)雜度),
決定了正則項(xiàng)的權(quán)重,
可以看做是一個(gè)衡量模型復(fù)雜度的函數(shù)。最常見的
就是
范數(shù)(
-norm),
。上述正則化采取的是Tikhonov形式(form),另外一種正則化的形式是Ivanov形式:
使得
。
一般由交叉驗(yàn)證(cross validation)決定。
我們定義Tikhonov形式和Ivanov形式等價(jià),如果:
, Ivanov解,
使得
,對(duì)于某些
也是一個(gè)Tikhonov解:
,
。
反過來,,
使得與
對(duì)應(yīng)的Tikhonov解為一個(gè)與
對(duì)應(yīng)的Ivanov解。
換言之,兩者的解空間相同。
兩種形式是否滿足上述等價(jià)的定義要根據(jù)具體的誤差函數(shù)和模型復(fù)雜函數(shù)來決定。
范數(shù)可能是最常見的正則項(xiàng)了:
,
(1.4)。值得注意的是通常我們不選擇把
納入正則項(xiàng),因?yàn)檫@會(huì)導(dǎo)致結(jié)果取決于對(duì)目標(biāo)變量/標(biāo)簽的原點(diǎn)的選擇。
加入正則項(xiàng)這樣的技巧在統(tǒng)計(jì)里被稱為收縮(shrinkage),因?yàn)樗麄兘档土讼禂?shù)的數(shù)值。在神經(jīng)網(wǎng)絡(luò)里,這種途徑被稱為權(quán)重下降(weight decay)。
在式1.4中,我們選擇了一個(gè)二階正則式。當(dāng)為平方誤差函數(shù)時(shí),目標(biāo)函數(shù)為式1.4的回歸問題被稱為ridge regression。如果我們選擇了一個(gè)一階正則項(xiàng),即
時(shí),
代表的回歸問題被稱為lasso(least absolute shrinkage and selection operator) regression,在3.1.4我們會(huì)更深入地學(xué)習(xí)這個(gè)問題。
d.訓(xùn)練集,驗(yàn)證集,測(cè)試集
我們往往通過超參數(shù)(hyperparameter),一類由我們預(yù)先選擇而不是模型從數(shù)據(jù)習(xí)得的參數(shù),來決定模型的復(fù)雜度(如之前提到的以及
)。我們不應(yīng)該基于測(cè)試集(測(cè)試數(shù)據(jù)的集合)來決定模型復(fù)雜度,否則模型可能會(huì)直接對(duì)測(cè)試集過擬合,這無異于作弊。同樣由于過擬合的考慮,我們也不能基于訓(xùn)練集(訓(xùn)練數(shù)據(jù)的集合)來選擇超參數(shù)。我們?nèi)∫粋€(gè)新的數(shù)據(jù)集,驗(yàn)證集,來選擇模型超參數(shù)。當(dāng)我們知道數(shù)據(jù)的真實(shí)分布時(shí),我們可以直接從分布采集驗(yàn)證集,否則我們可以把手上的數(shù)據(jù)集分成訓(xùn)練集、驗(yàn)證集或者訓(xùn)練集、驗(yàn)證集、測(cè)試集。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。