直到最近,您在日常生活中可能與之交互的幾乎每個(gè)計(jì)算機(jī)程序都被編碼為一組嚴(yán)格的規(guī)則,精確指定了它應(yīng)該如何運(yùn)行。假設(shè)我們要編寫(xiě)一個(gè)應(yīng)用程序來(lái)管理電子商務(wù)平臺(tái)。在圍著白板思考幾個(gè)小時(shí)后,我們可能會(huì)確定一個(gè)可行解決方案的大致思路,例如:(i) 用戶通過(guò)在 Web 瀏覽器或移動(dòng)應(yīng)用程序中運(yùn)行的界面與應(yīng)用程序交互;(ii) 我們的應(yīng)用程序與商業(yè)級(jí)數(shù)據(jù)庫(kù)引擎交互,以跟蹤每個(gè)用戶的狀態(tài)并維護(hù)歷史交易記錄;(iii) 在我們應(yīng)用程序的核心,業(yè)務(wù)邏輯(你可能會(huì)說(shuō),大腦) 我們的應(yīng)用程序闡明了一組規(guī)則,將每一種可能的情況映射到我們的程序應(yīng)該采取的相應(yīng)行動(dòng)。
為了構(gòu)建我們應(yīng)用程序的大腦,我們可能會(huì)枚舉我們的程序應(yīng)該處理的所有常見(jiàn)事件。例如,每當(dāng)客戶點(diǎn)擊將商品添加到他們的購(gòu)物車(chē)時(shí),我們的程序就應(yīng)該向購(gòu)物車(chē)數(shù)據(jù)庫(kù)表添加一個(gè)條目,將用戶的 ID 與請(qǐng)求的產(chǎn)品 ID 相關(guān)聯(lián)。然后我們可能會(huì)嘗試遍歷每一個(gè)可能的極端情況,測(cè)試我們的規(guī)則的適當(dāng)性并進(jìn)行任何必要的修改。如果用戶使用空購(gòu)物車(chē)開(kāi)始購(gòu)買(mǎi)會(huì)怎樣?雖然很少有開(kāi)發(fā)人員第一次就完全正確(可能需要進(jìn)行一些測(cè)試才能解決問(wèn)題),但在大多數(shù)情況下,我們可以編寫(xiě)此類(lèi)程序并自信地啟動(dòng)它們見(jiàn)過(guò)真正的客戶。我們通常在新情況下手動(dòng)設(shè)計(jì)驅(qū)動(dòng)功能產(chǎn)品和系統(tǒng)的自動(dòng)化系統(tǒng)的能力是一項(xiàng)了不起的認(rèn)知壯舉。當(dāng)您能夠設(shè)計(jì)出有效的解決方案時(shí) \(100\%\)當(dāng)時(shí),您通常不應(yīng)該擔(dān)心機(jī)器學(xué)習(xí)。
幸運(yùn)的是,對(duì)于不斷壯大的機(jī)器學(xué)習(xí)科學(xué)家群體來(lái)說(shuō),我們想要自動(dòng)化的許多任務(wù)并不容易屈從于人類(lèi)的聰明才智。想象一下,你認(rèn)識(shí)的最聰明的人圍坐在白板周?chē)@一次你要解決以下問(wèn)題之一:
-
編寫(xiě)一個(gè)程序,根據(jù)地理信息、衛(wèi)星圖像和過(guò)去天氣的拖尾窗口預(yù)測(cè)明天的天氣。
-
編寫(xiě)一個(gè)程序,接受一個(gè)以自由格式文本表達(dá)的事實(shí)型問(wèn)題,并正確回答它。
-
編寫(xiě)一個(gè)程序,根據(jù)給定的圖像識(shí)別圖像中描繪的所有人,并在每個(gè)人周?chē)?huà)出輪廓。
-
編寫(xiě)一個(gè)程序,向用戶展示他們可能會(huì)喜歡但在自然瀏覽過(guò)程中不太可能遇到的產(chǎn)品。
對(duì)于這些問(wèn)題,即使是精英程序員也很難從頭開(kāi)始編寫(xiě)解決方案。原因可能各不相同。有時(shí)我們正在尋找的程序遵循一種隨時(shí)間變化的模式,因此沒(méi)有固定的正確答案!在這種情況下,任何成功的解決方案都必須優(yōu)雅地適應(yīng)不斷變化的世界。在其他時(shí)候,關(guān)系(比如像素和抽象類(lèi)別之間的關(guān)系)可能過(guò)于復(fù)雜,需要數(shù)千或數(shù)百萬(wàn)次計(jì)算并遵循未知的原則。在圖像識(shí)別的情況下,執(zhí)行任務(wù)所需的精確步驟超出了我們的意識(shí)理解,即使我們的潛意識(shí)認(rèn)知過(guò)程毫不費(fèi)力地執(zhí)行任務(wù)。
機(jī)器學(xué)習(xí)是對(duì)可以從經(jīng)驗(yàn)中學(xué)習(xí)的算法的研究。隨著機(jī)器學(xué)習(xí)算法積累更多經(jīng)驗(yàn)(通常以觀察數(shù)據(jù)或與環(huán)境交互的形式),其性能會(huì)提高。將此與我們的確定性電子商務(wù)平臺(tái)進(jìn)行對(duì)比,無(wú)論積累多少經(jīng)驗(yàn),它都遵循相同的業(yè)務(wù)邏輯,直到開(kāi)發(fā)人員自己學(xué)習(xí)并決定是時(shí)候更新軟件了。在本書(shū)中,我們將向您介紹機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí),尤其是深度學(xué)習(xí),這是一套強(qiáng)大的技術(shù),可在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、醫(yī)療保健和基因組學(xué)等不同領(lǐng)域推動(dòng)創(chuàng)新。
1.1. 一個(gè)激勵(lì)人心的例子
在開(kāi)始寫(xiě)作之前,本書(shū)的作者和許多工作人員一樣,不得不喝下咖啡因。我們跳上車(chē),開(kāi)始開(kāi)車(chē)。亞歷克斯使用 iPhone 喊出“Hey Siri”,喚醒了手機(jī)的語(yǔ)音識(shí)別系統(tǒng)。然后Mu命令“去Blue Bottle咖啡店的方向”。手機(jī)很快就顯示出他的命令抄錄。它還認(rèn)識(shí)到我們正在詢問(wèn)方向并啟動(dòng)了地圖應(yīng)用程序 (app) 來(lái)滿足我們的請(qǐng)求。啟動(dòng)后,地圖應(yīng)用程序會(huì)識(shí)別出多條路線。在每條路線旁邊,手機(jī)會(huì)顯示預(yù)計(jì)的通行時(shí)間。雖然我們?yōu)榱私虒W(xué)方便而編造了這個(gè)故事,但它表明,在短短幾秒鐘的時(shí)間里,我們與智能手機(jī)的日常互動(dòng)可以涉及多種機(jī)器學(xué)習(xí)模型。
想象一下,只需編寫(xiě)一個(gè)程序來(lái)響應(yīng)諸如“Alexa”、“OK Google”和“Hey Siri”之類(lèi)的喚醒詞。嘗試自己在房間里用計(jì)算機(jī)和代碼編輯器編寫(xiě)代碼,如圖1.1.1所示。你會(huì)如何根據(jù)第一性原理編寫(xiě)這樣的程序?想一想……這個(gè)問(wèn)題很難。每秒,麥克風(fēng)將收集大約 44000 個(gè)樣本。每個(gè)樣本都是對(duì)聲波振幅的測(cè)量。什么規(guī)則可以可靠地將一段原始音頻映射到自信的預(yù)測(cè) \(\{\text{yes}, \text{no}\}\)關(guān)于片段是否包含喚醒詞?如果您被卡住了,請(qǐng)不要擔(dān)心。我們也不知道如何從頭開(kāi)始編寫(xiě)這樣的程序。這就是我們使用機(jī)器學(xué)習(xí)的原因。
圖 1.1.1識(shí)別喚醒詞。
這是訣竅。通常,即使我們不知道如何明確地告訴計(jì)算機(jī)如何將輸入映射到輸出,我們?nèi)匀荒軌蜃约和瓿烧J(rèn)知壯舉。換句話說(shuō),即使你不知道如何讓計(jì)算機(jī)識(shí)別“Alexa”這個(gè)詞,你自己也能識(shí)別它。有了這種能力,我們可以收集一個(gè)巨大的數(shù)據(jù)集,其中包含音頻片段和相關(guān)標(biāo)簽的示例,指示哪些片段包含喚醒詞。在機(jī)器學(xué)習(xí)的主流方法中,我們不會(huì)嘗試設(shè)計(jì)一個(gè)明確識(shí)別喚醒詞的系統(tǒng)。相反,我們定義了一個(gè)靈活的程序,其行為由許多參數(shù)決定. 然后我們使用數(shù)據(jù)集來(lái)確定可能的最佳參數(shù)值,即那些可以根據(jù)所選性能指標(biāo)提高程序性能的參數(shù)值。
您可以將參數(shù)視為我們可以轉(zhuǎn)動(dòng)的旋鈕,從而操縱程序的行為。固定參數(shù),我們稱(chēng)程序?yàn)?/font>模型。我們僅通過(guò)操縱參數(shù)就可以生成的所有不同程序(輸入-輸出映射)的集合稱(chēng)為 模型族。而使用我們的數(shù)據(jù)集來(lái)選擇參數(shù)的元程序稱(chēng)為學(xué)習(xí)算法。
在我們繼續(xù)使用學(xué)習(xí)算法之前,我們必須精確定義問(wèn)題,確定輸入和輸出的確切性質(zhì),并選擇合適的模型系列。在這種情況下,我們的模型接收一段音頻作為輸入,然后模型生成一個(gè)選擇\(\{\text{yes}, \text{no}\}\)作為 輸出。如果一切按計(jì)劃進(jìn)行,模型對(duì)片段是否包含喚醒詞的猜測(cè)通常是正確的。
如果我們選擇正確的模型系列,應(yīng)該有一個(gè)旋鈕設(shè)置,這樣模型每次聽(tīng)到“Alexa”這個(gè)詞時(shí)都會(huì)發(fā)出“是”。因?yàn)閱拘言~的確切選擇是任意的,我們可能需要一個(gè)足夠豐富的模型系列,通過(guò)旋鈕的另一種設(shè)置,它可以僅在聽(tīng)到“Apricot”這個(gè)詞時(shí)發(fā)出“是”。我們期望相同的模型系列應(yīng)該適用于“Alexa”識(shí)別和“Apricot”識(shí)別,因?yàn)閺闹庇X(jué)上看,它們似乎是相似的任務(wù)。然而,如果我們想要處理根本不同的輸入或輸出,比如我們想要從圖像映射到字幕,或者從英文句子映射到中文句子,我們可能需要完全不同的模型系列。
您可能會(huì)猜到,如果我們只是隨機(jī)設(shè)置所有旋鈕,我們的模型不太可能識(shí)別“Alexa”、“Apricot”或任何其他英文單詞。在機(jī)器學(xué)習(xí)中,學(xué)習(xí)是我們發(fā)現(xiàn)旋鈕的正確設(shè)置的過(guò)程,通過(guò)該過(guò)程可以從我們的模型中強(qiáng)制執(zhí)行所需的行為。換句話說(shuō),我們用數(shù)據(jù)訓(xùn)練我們的模型。如圖 1.1.2所示,訓(xùn)練過(guò)程通常如下所示:
-
從一個(gè)隨機(jī)初始化的模型開(kāi)始,它不能做任何有用的事情。
-
抓取你的一些數(shù)據(jù)(例如,音頻片段和相應(yīng)的 \(\{\text{yes}, \text{no}\}\)標(biāo)簽)。
-
調(diào)整旋鈕以使模型在這些示例中評(píng)估時(shí)表現(xiàn)更好。
-
重復(fù)步驟 2 和 3,直到模型很棒。
圖 1.1.2一個(gè)典型的訓(xùn)練過(guò)程。
總而言之,我們不是編寫(xiě)喚醒詞識(shí)別器的代碼,而是編寫(xiě)一個(gè)可以學(xué)習(xí)識(shí)別喚醒詞的程序,如果提供一個(gè)大型標(biāo)記數(shù)據(jù)集的話。您可以將這種通過(guò)向程序展示數(shù)據(jù)集來(lái)確定程序行為的行為視為使用數(shù)據(jù)進(jìn)行編程. 也就是說(shuō),我們可以通過(guò)為我們的機(jī)器學(xué)習(xí)系統(tǒng)提供許多貓和狗的例子來(lái)“編程”一個(gè)貓檢測(cè)器。這樣,檢測(cè)器最終將學(xué)習(xí)如果它是貓則發(fā)出一個(gè)非常大的正數(shù),如果它是狗則發(fā)出一個(gè)非常大的負(fù)數(shù),如果不確定則發(fā)出接近于零的值。這僅僅觸及了機(jī)器學(xué)習(xí)可以做什么的皮毛。我們稍后將更詳細(xì)地解釋深度學(xué)習(xí),它只是解決機(jī)器學(xué)習(xí)問(wèn)題的眾多流行方法之一。
1.2. 關(guān)鍵部件
在我們的喚醒詞示例中,我們描述了一個(gè)由音頻片段和二進(jìn)制標(biāo)簽組成的數(shù)據(jù)集,并且我們對(duì)如何訓(xùn)練模型來(lái)近似從片段到分類(lèi)的映射給出了一個(gè)簡(jiǎn)單的概念。這類(lèi)問(wèn)題,我們嘗試根據(jù)已知輸入預(yù)測(cè)指定的未知標(biāo)簽,給定由標(biāo)簽已知的示例組成的數(shù)據(jù)集,稱(chēng)為 監(jiān)督學(xué)習(xí)。這只是眾多機(jī)器學(xué)習(xí)問(wèn)題中的一種。在我們探索其他品種之前,我們想更清楚地了解一些核心組件,無(wú)論我們處理什么樣的機(jī)器學(xué)習(xí)問(wèn)題,這些核心組件都會(huì)跟隨我們:
-
我們可以從中學(xué)習(xí)的數(shù)據(jù)。
-
如何轉(zhuǎn)換數(shù)據(jù)的模型。
-
量化模型運(yùn)行情況的目標(biāo)函數(shù)。
-
調(diào)整模型參數(shù)以優(yōu)化目標(biāo)函數(shù)的算法。
1.2.1. 數(shù)據(jù)
不用說(shuō),沒(méi)有數(shù)據(jù)就無(wú)法進(jìn)行數(shù)據(jù)科學(xué)。我們可能會(huì)浪費(fèi)數(shù)百頁(yè)來(lái)思考數(shù)據(jù)到底是什么,但現(xiàn)在,我們將專(zhuān)注于我們將關(guān)注的數(shù)據(jù)集的關(guān)鍵屬性。通常,我們關(guān)注示例的集合。為了有效地處理數(shù)據(jù),我們通常需要提出合適的數(shù)字表示。每個(gè)示例(或數(shù)據(jù)點(diǎn)、數(shù)據(jù)實(shí)例、樣本)通常由一組稱(chēng)為特征的屬性(有時(shí)稱(chēng)為協(xié)變量或 輸入),模型必須基于此做出預(yù)測(cè)。在監(jiān)督學(xué)習(xí)問(wèn)題中,我們的目標(biāo)是預(yù)測(cè)一個(gè)特殊屬性的值,稱(chēng)為標(biāo)簽(或目標(biāo)),它不是模型輸入的一部分。
如果我們處理的是圖像數(shù)據(jù),則每個(gè)示例都可能包含一張單獨(dú)的照片(特征)和一個(gè)指示照片所屬類(lèi)別的數(shù)字(標(biāo)簽)。照片將以數(shù)字方式表示為三個(gè)數(shù)值網(wǎng)格,代表每個(gè)像素位置的紅光、綠光和藍(lán)光的亮度。例如,一個(gè)\(200\times 200\)彩色照片將包括\(200\times200\times3=120000\)數(shù)值。
或者,我們可以使用電子健康記錄數(shù)據(jù)來(lái)處理預(yù)測(cè)給定患者在接下來(lái) 30 天內(nèi)存活的可能性的任務(wù)。在這里,我們的特征可能包括一組現(xiàn)成的屬性和經(jīng)常記錄的測(cè)量值,包括年齡、生命體征、合并癥、當(dāng)前藥物治療和最近的程序。可用于訓(xùn)練的標(biāo)簽將是一個(gè)二進(jìn)制值,指示歷史數(shù)據(jù)中的每個(gè)患者是否在 30 天窗口內(nèi)存活。
在這種情況下,當(dāng)每個(gè)示例都具有相同數(shù)量的數(shù)字特征時(shí),我們說(shuō)輸入是固定長(zhǎng)度的向量,我們將向量的(恒定)長(zhǎng)度稱(chēng)為數(shù)據(jù)的維度。正如您想象的那樣,固定長(zhǎng)度的輸入可能很方便,讓我們不必?fù)?dān)心那么復(fù)雜。但是,并非所有數(shù)據(jù)都可以輕松表示為固定長(zhǎng)度向量。雖然我們可能期望顯微鏡圖像來(lái)自標(biāo)準(zhǔn)設(shè)備,但我們不能期望從 Internet 中提取的圖像都以相同的分辨率或形狀顯示。對(duì)于圖像,我們可能會(huì)考慮將它們?nèi)坎眉魹闃?biāo)準(zhǔn)尺寸,但該策略只能讓我們走到這一步。我們冒著丟失裁剪部分信息的風(fēng)險(xiǎn)。此外,文本數(shù)據(jù)更頑固地抵制固定長(zhǎng)度的表示。考慮在亞馬遜、IMDb 和 TripAdvisor 等電子商務(wù)網(wǎng)站上留下的客戶評(píng)論。有些很短:“它很臭!”。其他人漫不經(jīng)心地尋找頁(yè)面。與傳統(tǒng)方法相比,深度學(xué)習(xí)的一大優(yōu)勢(shì)是現(xiàn)代模型可以相對(duì)優(yōu)雅地處理變長(zhǎng)數(shù)據(jù)。
通常,我們擁有的數(shù)據(jù)越多,我們的工作就越容易。當(dāng)我們擁有更多數(shù)據(jù)時(shí),我們可以訓(xùn)練更強(qiáng)大的模型,減少對(duì)先入為主的假設(shè)的依賴(lài)。從(相對(duì))小數(shù)據(jù)到大數(shù)據(jù)的機(jī)制變化是現(xiàn)代深度學(xué)習(xí)成功的主要貢獻(xiàn)者。為了說(shuō)明這一點(diǎn),深度學(xué)習(xí)中許多最令人興奮的模型如果沒(méi)有大型數(shù)據(jù)集就無(wú)法工作。其他一些在小數(shù)據(jù)領(lǐng)域工作,但并不比傳統(tǒng)方法好。
最后,擁有大量數(shù)據(jù)并巧妙地處理數(shù)據(jù)是不夠的。我們需要正確的數(shù)據(jù)。如果數(shù)據(jù)充滿錯(cuò)誤,或者如果所選特征不能預(yù)測(cè)感興趣的目標(biāo)數(shù)量,學(xué)習(xí)就會(huì)失敗。陳詞濫調(diào)很好地描述了這種情況:垃圾進(jìn),垃圾出. 此外,糟糕的預(yù)測(cè)性能并不是唯一的潛在后果。在機(jī)器學(xué)習(xí)的敏感應(yīng)用中,例如預(yù)測(cè)性監(jiān)管、簡(jiǎn)歷篩選和用于貸款的風(fēng)險(xiǎn)模型,我們必須特別警惕垃圾數(shù)據(jù)的后果。一種常見(jiàn)的故障模式發(fā)生在訓(xùn)練數(shù)據(jù)中沒(méi)有代表某些人群的數(shù)據(jù)集中。想象一下,在以前從未見(jiàn)過(guò)黑色皮膚的野外應(yīng)用皮膚癌識(shí)別系統(tǒng)。當(dāng)數(shù)據(jù)不僅不能充分代表某些群體而且反映了社會(huì)偏見(jiàn)時(shí),也可能會(huì)失敗。例如,如果過(guò)去的招聘決定被用來(lái)訓(xùn)練一個(gè)用于篩選簡(jiǎn)歷的預(yù)測(cè)模型,那么機(jī)器學(xué)習(xí)模型可能會(huì)無(wú)意中捕捉到歷史上的不公正現(xiàn)象并將其自動(dòng)化。
1.2.2. 楷模
大多數(shù)機(jī)器學(xué)習(xí)都涉及在某種意義上轉(zhuǎn)換數(shù)據(jù)。我們可能想要構(gòu)建一個(gè)系統(tǒng)來(lái)攝取照片并預(yù)測(cè)笑臉。或者,我們可能想要獲取一組傳感器讀數(shù)并預(yù)測(cè)讀數(shù)的正常與異常程度。按 型號(hào),我們表示用于攝取一種類(lèi)型的數(shù)據(jù)并吐出可能不同類(lèi)型的預(yù)測(cè)的計(jì)算機(jī)器。特別是,我們對(duì)可以從數(shù)據(jù)中估計(jì)的統(tǒng)計(jì)模型感興趣。雖然簡(jiǎn)單的模型完全能夠解決適當(dāng)?shù)暮?jiǎn)單問(wèn)題,但我們?cè)诒緯?shū)中關(guān)注的問(wèn)題超出了經(jīng)典方法的局限性。深度學(xué)習(xí)與經(jīng)典方法的區(qū)別主要在于它關(guān)注的一組強(qiáng)大模型。這些模型由許多連續(xù)的數(shù)據(jù)轉(zhuǎn)換組成,這些數(shù)據(jù)從上到下鏈接在一起,因此得名深度學(xué)習(xí)。在討論深度模型的過(guò)程中,我們還將討論一些更傳統(tǒng)的方法。
1.2.3. 目標(biāo)函數(shù)
早些時(shí)候,我們將機(jī)器學(xué)習(xí)介紹為從經(jīng)驗(yàn)中學(xué)習(xí)。通過(guò) 在這里學(xué)習(xí),我們的意思是隨著時(shí)間的推移在某些任務(wù)上有所改進(jìn)。但是誰(shuí)能說(shuō)什么是改進(jìn)呢?您可能會(huì)想象我們可以提議更新我們的模型,而有些人可能不同意提議的更新是改進(jìn)還是下降。
為了開(kāi)發(fā)一個(gè)正式的學(xué)習(xí)機(jī)器數(shù)學(xué)系統(tǒng),我們需要對(duì)我們的模型有多好(或多壞)有正式的衡量標(biāo)準(zhǔn)。在機(jī)器學(xué)習(xí)和更一般的優(yōu)化中,我們稱(chēng)這些 為目標(biāo)函數(shù)。按照慣例,我們通常將目標(biāo)函數(shù)定義為越低越好。這只是一個(gè)慣例。您可以采用任何越高越好的函數(shù),并通過(guò)翻轉(zhuǎn)符號(hào)將其轉(zhuǎn)換為質(zhì)量相同但越低越好的新函數(shù)。因?yàn)樵降驮胶茫@些函數(shù)有時(shí)被稱(chēng)為損失函數(shù)。
當(dāng)嘗試預(yù)測(cè)數(shù)值時(shí),最常見(jiàn)的損失函數(shù)是平方誤差,即預(yù)測(cè)值與真實(shí)目標(biāo)之間的差值的平方。對(duì)于分類(lèi),最常見(jiàn)的目標(biāo)是最小化錯(cuò)誤率,即我們的預(yù)測(cè)與基本事實(shí)不一致的示例部分。一些目標(biāo)(例如,平方誤差)易于優(yōu)化,而其他目標(biāo)(例如,錯(cuò)誤率)由于不可微性或其他復(fù)雜性而難以直接優(yōu)化。在這些情況下,通常會(huì)優(yōu)化替代目標(biāo)。
在優(yōu)化過(guò)程中,我們將損失視為模型參數(shù)的函數(shù),并將訓(xùn)練數(shù)據(jù)集視為常數(shù)。我們通過(guò)最小化由為訓(xùn)練收集的一些示例組成的集合所產(chǎn)生的損失來(lái)學(xué)習(xí)模型參數(shù)的最佳值。然而,在訓(xùn)練數(shù)據(jù)上做得很好并不能保證我們?cè)诳床灰?jiàn)的數(shù)據(jù)上也會(huì)做得很好。因此,我們通常希望將可用數(shù)據(jù)分成兩個(gè)部分:訓(xùn)練數(shù)據(jù)集(或訓(xùn)練集),用于學(xué)習(xí)模型參數(shù);和測(cè)試數(shù)據(jù)集(或測(cè)試集), 用于評(píng)估。在一天結(jié)束時(shí),我們通常會(huì)報(bào)告我們的模型在兩個(gè)分區(qū)上的表現(xiàn)。您可以將培訓(xùn)績(jī)效視為類(lèi)似于學(xué)生在用于準(zhǔn)備某些實(shí)際期末考試的練習(xí)考試中取得的分?jǐn)?shù)。即使結(jié)果令人鼓舞,也不能保證在期末考試中取得成功。在學(xué)習(xí)過(guò)程中,學(xué)生可能會(huì)開(kāi)始背誦練習(xí)題,看似掌握了主題,但在面對(duì)實(shí)際期末考試中以前沒(méi)見(jiàn)過(guò)的問(wèn)題時(shí)卻步履蹣跚。當(dāng)一個(gè)模型在訓(xùn)練集上表現(xiàn)良好但無(wú)法泛化到看不見(jiàn)的數(shù)據(jù)時(shí),我們說(shuō)它對(duì)訓(xùn)練數(shù)據(jù)過(guò)度擬合。
1.2.4. 優(yōu)化算法
一旦我們獲得了一些數(shù)據(jù)源和表示、模型和定義明確的目標(biāo)函數(shù),我們就需要一種能夠搜索最佳參數(shù)以最小化損失函數(shù)的算法。流行的深度學(xué)習(xí)優(yōu)化算法基于一種稱(chēng)為梯度下降的方法。簡(jiǎn)而言之,在每個(gè)步驟中,此方法都會(huì)檢查每個(gè)參數(shù),以查看如果您對(duì)該參數(shù)進(jìn)行少量擾動(dòng),訓(xùn)練集損失將以何種方式移動(dòng)。然后它在降低損失的方向上更新參數(shù)。
1.3. 機(jī)器學(xué)習(xí)問(wèn)題的種類(lèi)
我們激勵(lì)示例中的喚醒詞問(wèn)題只是機(jī)器學(xué)習(xí)可以解決的眾多問(wèn)題之一。為了進(jìn)一步激勵(lì)讀者并為我們提供一些貫穿全書(shū)的通用語(yǔ)言,我們現(xiàn)在提供機(jī)器學(xué)習(xí)問(wèn)題公式的廣泛概述。
1.3.1. 監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)描述的任務(wù)是給定一個(gè)包含特征和標(biāo)簽的數(shù)據(jù)集,并負(fù)責(zé)生成一個(gè)模型來(lái)預(yù)測(cè)給定輸入特征的標(biāo)簽。每個(gè)特征-標(biāo)簽對(duì)稱(chēng)為一個(gè)示例。有時(shí),當(dāng)上下文清楚時(shí),我們可以使用術(shù)語(yǔ)示例引用一組輸入,即使相應(yīng)的標(biāo)簽未知。監(jiān)督發(fā)揮作用是因?yàn)闉榱诉x擇參數(shù),我們(監(jiān)督者)為模型提供了一個(gè)由標(biāo)記示例組成的數(shù)據(jù)集。在概率方面,我們通常對(duì)估計(jì)給定輸入特征的標(biāo)簽的條件概率感興趣。雖然它只是機(jī)器學(xué)習(xí)中的幾種范式之一,但監(jiān)督學(xué)習(xí)占機(jī)器學(xué)習(xí)在工業(yè)中的大部分成功應(yīng)用。部分原因是,許多重要任務(wù)可以清晰地描述為在給定一組特定的可用數(shù)據(jù)的情況下估計(jì)未知事物的概率:
-
根據(jù)計(jì)算機(jī)斷層掃描圖像預(yù)測(cè)癌癥與非癌癥。
-
給出英語(yǔ)句子,預(yù)測(cè)正確的法語(yǔ)翻譯。
-
根據(jù)本月的財(cái)務(wù)報(bào)告數(shù)據(jù)預(yù)測(cè)下個(gè)月的股票價(jià)格。
雖然所有監(jiān)督學(xué)習(xí)問(wèn)題都被簡(jiǎn)單描述“預(yù)測(cè)給定輸入特征的標(biāo)簽”所捕獲,但監(jiān)督學(xué)習(xí)可以采取多種形式并需要大量建模決策,具體取決于(除其他考慮因素外)輸入的類(lèi)型、大小和數(shù)量和輸出。例如,我們使用不同的模型來(lái)處理任意長(zhǎng)度的序列和處理固定長(zhǎng)度的向量表示。我們將在本書(shū)中深入探討其中的許多問(wèn)題。
非正式地,學(xué)習(xí)過(guò)程如下所示。首先,獲取大量特征已知的示例,并從中隨機(jī)選擇一個(gè)子集,為每個(gè)示例獲取真實(shí)標(biāo)簽。有時(shí)這些標(biāo)簽可能是已經(jīng)收集到的可用數(shù)據(jù)(例如,患者是否在下一年內(nèi)死亡?),而其他時(shí)候我們可能需要使用人工注釋器來(lái)標(biāo)記數(shù)據(jù)(例如,將圖像分配給類(lèi)別)。這些輸入和相應(yīng)的標(biāo)簽一起構(gòu)成了訓(xùn)練集。我們將訓(xùn)練數(shù)據(jù)集輸入監(jiān)督學(xué)習(xí)算法,該算法將數(shù)據(jù)集作為輸入并輸出另一個(gè)函數(shù):學(xué)習(xí)模型。最后,我們可以將以前看不見(jiàn)的輸入提供給學(xué)習(xí)模型,使用其輸出作為相應(yīng)標(biāo)簽的預(yù)測(cè)。圖 1.3.1。
圖 1.3.1監(jiān)督學(xué)習(xí)。
1.3.1.1. 回歸
也許最簡(jiǎn)單的監(jiān)督學(xué)習(xí)任務(wù)就是回歸。例如,考慮從房屋銷(xiāo)售數(shù)據(jù)庫(kù)中收集的一組數(shù)據(jù)。我們可以構(gòu)建一個(gè)表,其中每一行對(duì)應(yīng)不同的房子,每一列對(duì)應(yīng)一些相關(guān)屬性,例如房子的平方英尺、臥室數(shù)、浴室數(shù)和分鐘數(shù)(步行) 到市中心。在這個(gè)數(shù)據(jù)集中,每個(gè)例子都是一個(gè)特定的房子,對(duì)應(yīng)的特征向量是表格中的一行。如果你住在紐約或舊金山,而且你不是亞馬遜、谷歌、微軟或 Facebook 的首席執(zhí)行官,那么你家的(平方英尺、臥室數(shù)量、浴室數(shù)量、步行距離)特征向量可能看起來(lái)像:\([600, 1, 1, 60]\). 然而,如果你住在匹茲堡,它可能看起來(lái)更像\([3000, 4, 3, 10]\). 像這樣的固定長(zhǎng)度特征向量對(duì)于大多數(shù)經(jīng)典機(jī)器學(xué)習(xí)算法來(lái)說(shuō)都是必不可少的。
使問(wèn)題回歸的實(shí)際上是目標(biāo)的形式。假設(shè)您正在市場(chǎng)上購(gòu)買(mǎi)新房。考慮到上述某些特征,您可能想要估算房屋的公平市場(chǎng)價(jià)值。這里的數(shù)據(jù)可能包括歷史房屋清單,標(biāo)簽可能是觀察到的銷(xiāo)售價(jià)格。當(dāng)標(biāo)簽采用任意數(shù)值(即使在某個(gè)區(qū)間內(nèi))時(shí),我們稱(chēng)之為 回歸問(wèn)題。目標(biāo)是生成一個(gè)模型,其預(yù)測(cè)非常接近實(shí)際標(biāo)簽值。
許多實(shí)際問(wèn)題很容易描述為回歸問(wèn)題。預(yù)測(cè)用戶對(duì)電影的評(píng)分可以被認(rèn)為是一個(gè)回歸問(wèn)題,如果你在 2009 年設(shè)計(jì)了一個(gè)偉大的算法來(lái)完成這一壯舉,你可能會(huì)贏得 100 萬(wàn)美元的 Netflix獎(jiǎng)。預(yù)測(cè)患者住院時(shí)間的長(zhǎng)短也是一個(gè)回歸問(wèn)題。一個(gè)好的經(jīng)驗(yàn)法則是多少?或者有多少?問(wèn)題應(yīng)該建議回歸,例如:
-
這個(gè)手術(shù)需要幾個(gè)小時(shí)?
-
這個(gè)鎮(zhèn)在接下來(lái)的六個(gè)小時(shí)內(nèi)會(huì)有多少降雨量?
即使您以前從未接觸過(guò)機(jī)器學(xué)習(xí),您也可能非正式地解決過(guò)回歸問(wèn)題。想象一下,例如,您修理了下水道,而您的承包商花了 3 個(gè)小時(shí)從污水管道中清除垃圾。然后他寄給你一張 350 美元的賬單。現(xiàn)在想象一下,您的朋友雇用了同一個(gè)承包商 2 小時(shí),他收到了一張 250 美元的賬單。如果隨后有人問(wèn)你對(duì)他們即將開(kāi)出的清除垃圾發(fā)票的期望值是多少,你可能會(huì)做出一些合理的假設(shè),比如工作更多的時(shí)間會(huì)花費(fèi)更多的錢(qián)。您可能還假設(shè)有一些基本費(fèi)用,然后承包商按小時(shí)收費(fèi)。如果這些假設(shè)成立,那么根據(jù)這兩個(gè)數(shù)據(jù)示例,您已經(jīng)可以確定承包商的定價(jià)結(jié)構(gòu):每小時(shí) 100 美元外加 50 美元出現(xiàn)在你家。如果你遵循了這么多,那么你已經(jīng)理解了線性回歸背后的高級(jí)思想。
在這種情況下,我們可以生成與承包商價(jià)格完全匹配的參數(shù)。有時(shí)這是不可能的,例如,如果某些差異歸因于除您的兩個(gè)特征之外的幾個(gè)因素。在這些情況下,我們將嘗試學(xué)習(xí)最小化我們的預(yù)測(cè)與觀察值之間的距離的模型。在我們的大部分章節(jié)中,我們將重點(diǎn)關(guān)注最小化平方誤差損失函數(shù)。正如我們稍后將看到的,這種損失對(duì)應(yīng)于我們的數(shù)據(jù)被高斯噪聲破壞的假設(shè)。
評(píng)論