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