關(guān)鍵組件
無論我們遇到什么類型的機(jī)器學(xué)習(xí)問題凛俱,這些組件都將伴隨我們左右:
- 我們可以學(xué)習(xí)的數(shù)據(jù)(data)雕欺。
- 如何轉(zhuǎn)換數(shù)據(jù)的模型(model)聋丝。
- 一個(gè)目標(biāo)函數(shù)(objective function),用來量化模型的有效性缀辩。
- 調(diào)整模型參數(shù)以優(yōu)化目標(biāo)函數(shù)的算法臭埋。
1. 數(shù)據(jù)
沒有數(shù)據(jù),數(shù)據(jù)科學(xué)毫無用武之地臀玄。 每個(gè)數(shù)據(jù)集由一個(gè)個(gè)樣本(example)組成瓢阴,大多時(shí)候,它們遵循獨(dú)立同分布(idependently and identically distributed, i.i.d.)健无。 樣本有時(shí)也叫做數(shù)據(jù)點(diǎn)(data point)或者數(shù)據(jù)實(shí)例(data instance)荣恐,通常每個(gè)樣本由一組稱為特征(features,或協(xié)變量(covariates))的屬性組成累贤。 機(jī)器學(xué)習(xí)模型會根據(jù)這些屬性進(jìn)行預(yù)測叠穆。 在上面的監(jiān)督學(xué)習(xí)問題中,要預(yù)測的是一個(gè)特殊的屬性臼膏,它被稱為標(biāo)簽(label硼被,或目標(biāo)(target))。
假設(shè)我們處理的是圖像數(shù)據(jù)渗磅,每一張單獨(dú)的照片即為一個(gè)樣本嚷硫,它的特征由每個(gè)像素?cái)?shù)值的有序列表表示检访。 比如,(200\times 200)彩色照片由(200\times200\times3=120000)個(gè)數(shù)值組成仔掸,其中的“3”對應(yīng)于每個(gè)空間位置的紅脆贵、綠、藍(lán)通道的強(qiáng)度起暮。 再比如卖氨,對于一組醫(yī)療數(shù)據(jù),給定一組標(biāo)準(zhǔn)的特征(如年齡鞋怀、生命體征和診斷)双泪,我們可能用此數(shù)據(jù)嘗試預(yù)測患者是否會存活。
當(dāng)每個(gè)樣本的特征類別數(shù)量都是相同的密似,所以其特征向量是固定長度的,這個(gè)長度被稱為數(shù)據(jù)的維數(shù)(dimensionality)葫盼。 固定長度的特征向量是一個(gè)方便的屬性残腌,它有助于我們量化學(xué)習(xí)大量樣本。
然而贫导,并不是所有的數(shù)據(jù)都可以用”固定長度“的向量表示抛猫。 以圖像數(shù)據(jù)為例,如果它們?nèi)縼碜詷?biāo)準(zhǔn)顯微鏡設(shè)備孩灯,那么“固定長度”是可取的闺金; 但是如果我們的圖像數(shù)據(jù)來自互聯(lián)網(wǎng),我們不能天真的假想它們都有相同的分辨率或形狀峰档。 這時(shí)败匹,我們可以考慮將圖像裁剪成標(biāo)準(zhǔn)尺寸,但這種辦法很局限讥巡,數(shù)據(jù)有丟失信息的風(fēng)險(xiǎn)掀亩。 此外,文本數(shù)據(jù)更不符合”固定長度“的要求欢顷。 考慮一下亞馬遜等電子商務(wù)網(wǎng)站上的客戶評論:有些文本數(shù)據(jù)是簡短的(比如“好極了”)槽棍;有些則長篇大論。 與傳統(tǒng)機(jī)器學(xué)習(xí)方法相比抬驴,深度學(xué)習(xí)的一個(gè)主要優(yōu)勢是可以處理不同長度的數(shù)據(jù)炼七。
一般來說,我們擁有的數(shù)據(jù)越多布持,我們的工作就越容易豌拙。 當(dāng)我們有了更多的數(shù)據(jù),我們通潮盍矗可以訓(xùn)練出更強(qiáng)大的模型姆蘸,從而減少對預(yù)先設(shè)想假設(shè)的依賴墩莫。 數(shù)據(jù)集的由小變大為現(xiàn)代深度學(xué)習(xí)的成功奠定基礎(chǔ)。 在沒有大數(shù)據(jù)集的情況下逞敷,許多令人興奮的深度學(xué)習(xí)模型黯然失色狂秦。 就算一些深度學(xué)習(xí)模型在小數(shù)據(jù)集上能夠工作,但其效能并不比不上傳統(tǒng)方法推捐。
請注意裂问,僅僅擁有海量的數(shù)據(jù)是不夠的,我們還需要正確的數(shù)據(jù)牛柒。 如果數(shù)據(jù)中充滿了錯(cuò)誤堪簿,或者如果數(shù)據(jù)的特征不能預(yù)測任務(wù)目標(biāo),那么模型很可能無效皮壁。 有一句古語很好地反映了這個(gè)現(xiàn)象:“輸入的是垃圾,輸出的也是垃圾椭更。”(“Garbage in, garbage out.”) 此外蛾魄,糟糕的預(yù)測性能甚至?xí)颖斗糯笫聭B(tài)的嚴(yán)重性虑瀑。 在一些敏感應(yīng)用中,如預(yù)測性監(jiān)管滴须、簡歷篩選和用于貸款的風(fēng)險(xiǎn)模型舌狗,我們必須特別警惕垃圾數(shù)據(jù)的后果。 一種常見的問題來著不均衡的數(shù)據(jù)集扔水,比如在一個(gè)有關(guān)醫(yī)療的訓(xùn)練數(shù)據(jù)集中痛侍,某些人群沒有樣本表示。 想象一下魔市,假設(shè)你要訓(xùn)練一個(gè)皮膚癌識別模型主届,但它(在訓(xùn)練數(shù)據(jù)集)從未見過的黑色皮膚的人群,就會頓時(shí)束手無策嘹狞。
再比如岂膳,如果用“過去的招聘決策數(shù)據(jù)”來訓(xùn)練一個(gè)篩選簡歷的模型,那么機(jī)器學(xué)習(xí)模型可能會無意中捕捉到歷史殘留的不公正磅网,并將其自動化谈截。 然而,這一切都可能在不知情的情況下發(fā)生涧偷。 因此簸喂,當(dāng)數(shù)據(jù)不具有充分代表性,甚至包含了一些社會偏見時(shí)燎潮,模型就很有可能失敗喻鳄。
2. 模型
大多數(shù)機(jī)器學(xué)習(xí)會涉及到數(shù)據(jù)的轉(zhuǎn)換。 比如确封,我們建立一個(gè)“攝取照片并預(yù)測笑臉”的系統(tǒng)除呵。再比如再菊,我們攝取一組傳感器讀數(shù),并預(yù)測讀數(shù)的正常與異常程度颜曾。 雖然簡單的模型能夠解決如上簡單的問題纠拔,但本書中關(guān)注的問題超出了經(jīng)典方法的極限。 深度學(xué)習(xí)與經(jīng)典方法的區(qū)別主要在于:前者關(guān)注的功能強(qiáng)大的模型泛豪,這些模型由神經(jīng)網(wǎng)絡(luò)錯(cuò)綜復(fù)雜的交織在一起稠诲,包含層層數(shù)據(jù)轉(zhuǎn)換,因此被稱為深度學(xué)習(xí)(deep learning)诡曙。 在討論深度模型的過程中臀叙,我們也將提及一些傳統(tǒng)方法。
3. 目標(biāo)函數(shù)
前面价卤,我們將機(jī)器學(xué)習(xí)介紹為“從經(jīng)驗(yàn)中學(xué)習(xí)“劝萤。 這里所說的“學(xué)習(xí)”,是指自主提高模型完成某些任務(wù)的效能慎璧。 但是稳其,什么才算真正的提高呢? 在機(jī)器學(xué)習(xí)中炸卑,我們需要定義模型的優(yōu)劣程度的度量,這個(gè)度量在大多數(shù)情況是“可優(yōu)化”的煤傍,我們稱之為目標(biāo)函數(shù)(objective function)盖文。 我們通常定義一個(gè)目標(biāo)函數(shù),并希望優(yōu)化它到最低點(diǎn)蚯姆。因?yàn)樵降驮胶梦逍赃@些函數(shù)有時(shí)被稱為損失函數(shù)(loss function, 或cost function)。 但這只是一個(gè)慣例龄恋,你也可以取一個(gè)新的函數(shù)疙驾,優(yōu)化到它的最高點(diǎn)。這兩個(gè)函數(shù)本質(zhì)上是相同的郭毕,只是翻轉(zhuǎn)一下符號它碎。
當(dāng)任務(wù)為試圖預(yù)測數(shù)值時(shí),最常見的損失函數(shù)是平方誤差(squared error)显押,即預(yù)測值與實(shí)際值之差的平方扳肛。 當(dāng)試圖解決分類問題時(shí),最常見的目標(biāo)函數(shù)是最小化錯(cuò)誤率乘碑,即預(yù)測與實(shí)際情況不符的樣本比例挖息。 有些目標(biāo)函數(shù)(如平方誤差)很容易被優(yōu)化,有些目標(biāo)(如錯(cuò)誤率)由于不可微性或其他復(fù)雜性難以直接優(yōu)化兽肤。 在這些情況下套腹,通常會優(yōu)化替代目標(biāo)绪抛。
通常,損失函數(shù)是根據(jù)模型參數(shù)定義的电禀,并取決于數(shù)據(jù)集幢码。 在一個(gè)數(shù)據(jù)集上,我們通過最小化總損失來學(xué)習(xí)模型參數(shù)的最佳值鞭呕。 該數(shù)據(jù)集由一些為訓(xùn)練而收集的樣本組成蛤育,稱為訓(xùn)練數(shù)據(jù)集(training dataset,或稱為訓(xùn)練集(training set))葫松。 然而瓦糕,在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好的模型,并不一定在“新數(shù)據(jù)集“上有同樣的效能腋么,這里的“新數(shù)據(jù)集“通常稱為測試數(shù)據(jù)集(test dataset咕娄,或稱為測試集(test set))。
綜上所述珊擂,我們通常將可用數(shù)據(jù)集分成兩部分:訓(xùn)練數(shù)據(jù)集用于擬合模型參數(shù)圣勒,測試數(shù)據(jù)集用于評估擬合的模型。 然后我們觀察模型在這兩部分?jǐn)?shù)據(jù)集的效能摧扇。 你可以把”一個(gè)模型在訓(xùn)練數(shù)據(jù)集上的效能“想象成”一個(gè)學(xué)生在模擬考試中的分?jǐn)?shù)“圣贸。 這個(gè)分?jǐn)?shù)用來為一些真正的期末考試做參考,即使成績令人鼓舞扛稽,也不能保證期末考試成功吁峻。 換言之,測試性能可能會顯著偏離訓(xùn)練性能在张。 當(dāng)一個(gè)模型在訓(xùn)練集上表現(xiàn)良好用含,但不能推廣到測試集時(shí),我們說這個(gè)模型是“過擬合”(overfitting)的帮匾。 就像在現(xiàn)實(shí)生活中啄骇,盡管模擬考試考得很好,真正的考試不一定百發(fā)百中瘟斜。
4. 優(yōu)化算法
一旦我們獲得了一些數(shù)據(jù)源及其表示缸夹、一個(gè)模型和一個(gè)合適的損失函數(shù),我們接下來就需要一種算法哼转,它能夠搜索出最佳參數(shù)明未,以最小化損失函數(shù)。 深度學(xué)習(xí)中壹蔓,大多流行的優(yōu)化算法通程送祝基于一種基本方法–梯度下降(gradient descent)。 簡而言之佣蓉,在每個(gè)步驟中披摄,梯度下降法都會檢查每個(gè)參數(shù)亲雪,看看如果你僅對該參數(shù)進(jìn)行少量變動,訓(xùn)練集損失會朝哪個(gè)方向移動疚膊。 然后义辕,它在可以減少損失的方向上優(yōu)化參數(shù)。