直到最近,您在日常生活中可能與之交互的幾乎每個計算機程序都被編碼為一組嚴格的規(guī)則,精確指定了它應該如何運行。假設我們要編寫一個應用程序來管理電子商務平臺。在圍著白板思考幾個小時后,我們可能會確定一個可行解決方案的大致思路,例如:(i) 用戶通過在 Web 瀏覽器或移動應用程序中運行的界面與應用程序交互;(ii) 我們的應用程序與商業(yè)級數(shù)據(jù)庫引擎交互,以跟蹤每個用戶的狀態(tài)并維護歷史交易記錄;(iii) 在我們應用程序的核心,業(yè)務邏輯(你可能會說,大腦) 我們的應用程序闡明了一組規(guī)則,將每一種可能的情況映射到我們的程序應該采取的相應行動。
為了構(gòu)建我們應用程序的大腦,我們可能會枚舉我們的程序應該處理的所有常見事件。例如,每當客戶點擊將商品添加到他們的購物車時,我們的程序就應該向購物車數(shù)據(jù)庫表添加一個條目,將用戶的 ID 與請求的產(chǎn)品 ID 相關(guān)聯(lián)。然后我們可能會嘗試遍歷每一個可能的極端情況,測試我們的規(guī)則的適當性并進行任何必要的修改。如果用戶使用空購物車開始購買會怎樣?雖然很少有開發(fā)人員第一次就完全正確(可能需要進行一些測試才能解決問題),但在大多數(shù)情況下,我們可以編寫此類程序并自信地啟動它們見過真正的客戶。我們通常在新情況下手動設計驅(qū)動功能產(chǎn)品和系統(tǒng)的自動化系統(tǒng)的能力是一項了不起的認知壯舉。當您能夠設計出有效的解決方案時 (100%)當時,您通常不應該擔心機器學習。
幸運的是,對于不斷壯大的機器學習科學家群體來說,我們想要自動化的許多任務并不容易屈從于人類的聰明才智。想象一下,你認識的最聰明的人圍坐在白板周圍,但這一次你要解決以下問題之一:
編寫一個程序,根據(jù)地理信息、衛(wèi)星圖像和過去天氣的拖尾窗口預測明天的天氣。
編寫一個程序,接受一個以自由格式文本表達的事實型問題,并正確回答它。
編寫一個程序,根據(jù)給定的圖像識別圖像中描繪的所有人,并在每個人周圍畫出輪廓。
編寫一個程序,向用戶展示他們可能會喜歡但在自然瀏覽過程中不太可能遇到的產(chǎn)品。
對于這些問題,即使是精英程序員也很難從頭開始編寫解決方案。原因可能各不相同。有時我們正在尋找的程序遵循一種隨時間變化的模式,因此沒有固定的正確答案!在這種情況下,任何成功的解決方案都必須優(yōu)雅地適應不斷變化的世界。在其他時候,關(guān)系(比如像素和抽象類別之間的關(guān)系)可能過于復雜,需要數(shù)千或數(shù)百萬次計算并遵循未知的原則。在圖像識別的情況下,執(zhí)行任務所需的精確步驟超出了我們的意識理解,即使我們的潛意識認知過程毫不費力地執(zhí)行任務。
機器學習是對可以從經(jīng)驗中學習的算法的研究。隨著機器學習算法積累更多經(jīng)驗(通常以觀察數(shù)據(jù)或與環(huán)境交互的形式),其性能會提高。將此與我們的確定性電子商務平臺進行對比,無論積累多少經(jīng)驗,它都遵循相同的業(yè)務邏輯,直到開發(fā)人員自己學習并決定是時候更新軟件了。在本書中,我們將向您介紹機器學習的基礎知識,尤其是深度學習,這是一套強大的技術(shù),可在計算機視覺、自然語言處理、醫(yī)療保健和基因組學等不同領域推動創(chuàng)新。
1.1. 一個激勵人心的例子
在開始寫作之前,本書的作者和許多工作人員一樣,不得不喝下咖啡因。我們跳上車,開始開車。亞歷克斯使用 iPhone 喊出“Hey Siri”,喚醒了手機的語音識別系統(tǒng)。然后Mu命令“去Blue Bottle咖啡店的方向”。手機很快就顯示出他的命令抄錄。它還認識到我們正在詢問方向并啟動了地圖應用程序 (app) 來滿足我們的請求。啟動后,地圖應用程序會識別出多條路線。在每條路線旁邊,手機會顯示預計的通行時間。雖然我們?yōu)榱私虒W方便而編造了這個故事,但它表明,在短短幾秒鐘的時間里,我們與智能手機的日?;涌梢陨婕岸喾N機器學習模型。
想象一下,只需編寫一個程序來響應諸如“Alexa”、“OK Google”和“Hey Siri”之類的喚醒詞。嘗試自己在房間里用計算機和代碼編輯器編寫代碼,如圖1.1.1所示。你會如何根據(jù)第一性原理編寫這樣的程序?想一想……這個問題很難。每秒,麥克風將收集大約 44000 個樣本。每個樣本都是對聲波振幅的測量。什么規(guī)則可以可靠地將一段原始音頻映射到自信的預測 ({text{yes}, text{no}})關(guān)于片段是否包含喚醒詞?如果您被卡住了,請不要擔心。我們也不知道如何從頭開始編寫這樣的程序。這就是我們使用機器學習的原因。
圖 1.1.1識別喚醒詞。
這是訣竅。通常,即使我們不知道如何明確地告訴計算機如何將輸入映射到輸出,我們?nèi)匀荒軌蜃约和瓿烧J知壯舉。換句話說,即使你不知道如何讓計算機識別“Alexa”這個詞,你自己也能識別它。有了這種能力,我們可以收集一個巨大的數(shù)據(jù)集,其中包含音頻片段和相關(guān)標簽的示例,指示哪些片段包含喚醒詞。在機器學習的主流方法中,我們不會嘗試設計一個明確識別喚醒詞的系統(tǒng)。相反,我們定義了一個靈活的程序,其行為由許多參數(shù)決定. 然后我們使用數(shù)據(jù)集來確定可能的最佳參數(shù)值,即那些可以根據(jù)所選性能指標提高程序性能的參數(shù)值。
您可以將參數(shù)視為我們可以轉(zhuǎn)動的旋鈕,從而操縱程序的行為。固定參數(shù),我們稱程序為模型。我們僅通過操縱參數(shù)就可以生成的所有不同程序(輸入-輸出映射)的集合稱為 模型族。而使用我們的數(shù)據(jù)集來選擇參數(shù)的元程序稱為學習算法。
在我們繼續(xù)使用學習算法之前,我們必須精確定義問題,確定輸入和輸出的確切性質(zhì),并選擇合適的模型系列。在這種情況下,我們的模型接收一段音頻作為輸入,然后模型生成一個選擇({text{yes}, text{no}})作為 輸出。如果一切按計劃進行,模型對片段是否包含喚醒詞的猜測通常是正確的。
如果我們選擇正確的模型系列,應該有一個旋鈕設置,這樣模型每次聽到“Alexa”這個詞時都會發(fā)出“是”。因為喚醒詞的確切選擇是任意的,我們可能需要一個足夠豐富的模型系列,通過旋鈕的另一種設置,它可以僅在聽到“Apricot”這個詞時發(fā)出“是”。我們期望相同的模型系列應該適用于“Alexa”識別和“Apricot”識別,因為從直覺上看,它們似乎是相似的任務。然而,如果我們想要處理根本不同的輸入或輸出,比如我們想要從圖像映射到字幕,或者從英文句子映射到中文句子,我們可能需要完全不同的模型系列。
您可能會猜到,如果我們只是隨機設置所有旋鈕,我們的模型不太可能識別“Alexa”、“Apricot”或任何其他英文單詞。在機器學習中,學習是我們發(fā)現(xiàn)旋鈕的正確設置的過程,通過該過程可以從我們的模型中強制執(zhí)行所需的行為。換句話說,我們用數(shù)據(jù)訓練我們的模型。如圖 1.1.2所示,訓練過程通常如下所示:
從一個隨機初始化的模型開始,它不能做任何有用的事情。
抓取你的一些數(shù)據(jù)(例如,音頻片段和相應的 ({text{yes}, text{no}})標簽)。
調(diào)整旋鈕以使模型在這些示例中評估時表現(xiàn)更好。
重復步驟 2 和 3,直到模型很棒。
圖 1.1.2一個典型的訓練過程。
總而言之,我們不是編寫喚醒詞識別器的代碼,而是編寫一個可以學習識別喚醒詞的程序,如果提供一個大型標記數(shù)據(jù)集的話。您可以將這種通過向程序展示數(shù)據(jù)集來確定程序行為的行為視為使用數(shù)據(jù)進行編程. 也就是說,我們可以通過為我們的機器學習系統(tǒng)提供許多貓和狗的例子來“編程”一個貓檢測器。這樣,檢測器最終將學習如果它是貓則發(fā)出一個非常大的正數(shù),如果它是狗則發(fā)出一個非常大的負數(shù),如果不確定則發(fā)出接近于零的值。這僅僅觸及了機器學習可以做什么的皮毛。我們稍后將更詳細地解釋深度學習,它只是解決機器學習問題的眾多流行方法之一。
1.2. 關(guān)鍵部件
在我們的喚醒詞示例中,我們描述了一個由音頻片段和二進制標簽組成的數(shù)據(jù)集,并且我們對如何訓練模型來近似從片段到分類的映射給出了一個簡單的概念。這類問題,我們嘗試根據(jù)已知輸入預測指定的未知標簽,給定由標簽已知的示例組成的數(shù)據(jù)集,稱為 監(jiān)督學習。這只是眾多機器學習問題中的一種。在我們探索其他品種之前,我們想更清楚地了解一些核心組件,無論我們處理什么樣的機器學習問題,這些核心組件都會跟隨我們:
我們可以從中學習的數(shù)據(jù)。
如何轉(zhuǎn)換數(shù)據(jù)的模型。
量化模型運行情況的目標函數(shù)。
調(diào)整模型參數(shù)以優(yōu)化目標函數(shù)的算法。
1.2.1. 數(shù)據(jù)
不用說,沒有數(shù)據(jù)就無法進行數(shù)據(jù)科學。我們可能會浪費數(shù)百頁來思考數(shù)據(jù)到底是什么,但現(xiàn)在,我們將專注于我們將關(guān)注的數(shù)據(jù)集的關(guān)鍵屬性。通常,我們關(guān)注示例的集合。為了有效地處理數(shù)據(jù),我們通常需要提出合適的數(shù)字表示。每個示例(或數(shù)據(jù)點、數(shù)據(jù)實例、樣本)通常由一組稱為特征的屬性(有時稱為協(xié)變量或 輸入),模型必須基于此做出預測。在監(jiān)督學習問題中,我們的目標是預測一個特殊屬性的值,稱為標簽(或目標),它不是模型輸入的一部分。
如果我們處理的是圖像數(shù)據(jù),則每個示例都可能包含一張單獨的照片(特征)和一個指示照片所屬類別的數(shù)字(標簽)。照片將以數(shù)字方式表示為三個數(shù)值網(wǎng)格,代表每個像素位置的紅光、綠光和藍光的亮度。例如,一個(200times 200)彩色照片將包括(200times200times3=120000)數(shù)值。
或者,我們可以使用電子健康記錄數(shù)據(jù)來處理預測給定患者在接下來 30 天內(nèi)存活的可能性的任務。在這里,我們的特征可能包括一組現(xiàn)成的屬性和經(jīng)常記錄的測量值,包括年齡、生命體征、合并癥、當前藥物治療和最近的程序??捎糜谟柧毜臉撕瀸⑹且粋€二進制值,指示歷史數(shù)據(jù)中的每個患者是否在 30 天窗口內(nèi)存活。
在這種情況下,當每個示例都具有相同數(shù)量的數(shù)字特征時,我們說輸入是固定長度的向量,我們將向量的(恒定)長度稱為數(shù)據(jù)的維度。正如您想象的那樣,固定長度的輸入可能很方便,讓我們不必擔心那么復雜。但是,并非所有數(shù)據(jù)都可以輕松表示為固定長度向量。雖然我們可能期望顯微鏡圖像來自標準設備,但我們不能期望從 Internet 中提取的圖像都以相同的分辨率或形狀顯示。對于圖像,我們可能會考慮將它們?nèi)坎眉魹闃藴食叽?,但該策略只能讓我們走到這一步。我們冒著丟失裁剪部分信息的風險。此外,文本數(shù)據(jù)更頑固地抵制固定長度的表示??紤]在亞馬遜、IMDb 和 TripAdvisor 等電子商務網(wǎng)站上留下的客戶評論。有些很短:“它很臭!”。其他人漫不經(jīng)心地尋找頁面。與傳統(tǒng)方法相比,深度學習的一大優(yōu)勢是現(xiàn)代模型可以相對優(yōu)雅地處理變長數(shù)據(jù)。
通常,我們擁有的數(shù)據(jù)越多,我們的工作就越容易。當我們擁有更多數(shù)據(jù)時,我們可以訓練更強大的模型,減少對先入為主的假設的依賴。從(相對)小數(shù)據(jù)到大數(shù)據(jù)的機制變化是現(xiàn)代深度學習成功的主要貢獻者。為了說明這一點,深度學習中許多最令人興奮的模型如果沒有大型數(shù)據(jù)集就無法工作。其他一些在小數(shù)據(jù)領域工作,但并不比傳統(tǒng)方法好。
最后,擁有大量數(shù)據(jù)并巧妙地處理數(shù)據(jù)是不夠的。我們需要正確的數(shù)據(jù)。如果數(shù)據(jù)充滿錯誤,或者如果所選特征不能預測感興趣的目標數(shù)量,學習就會失敗。陳詞濫調(diào)很好地描述了這種情況:垃圾進,垃圾出. 此外,糟糕的預測性能并不是唯一的潛在后果。在機器學習的敏感應用中,例如預測性監(jiān)管、簡歷篩選和用于貸款的風險模型,我們必須特別警惕垃圾數(shù)據(jù)的后果。一種常見的故障模式發(fā)生在訓練數(shù)據(jù)中沒有代表某些人群的數(shù)據(jù)集中。想象一下,在以前從未見過黑色皮膚的野外應用皮膚癌識別系統(tǒng)。當數(shù)據(jù)不僅不能充分代表某些群體而且反映了社會偏見時,也可能會失敗。例如,如果過去的招聘決定被用來訓練一個用于篩選簡歷的預測模型,那么機器學習模型可能會無意中捕捉到歷史上的不公正現(xiàn)象并將其自動化。
1.2.2. 楷模
大多數(shù)機器學習都涉及在某種意義上轉(zhuǎn)換數(shù)據(jù)。我們可能想要構(gòu)建一個系統(tǒng)來攝取照片并預測笑臉?;蛘撸覀兛赡芟胍@取一組傳感器讀數(shù)并預測讀數(shù)的正常與異常程度。按 型號,我們表示用于攝取一種類型的數(shù)據(jù)并吐出可能不同類型的預測的計算機器。特別是,我們對可以從數(shù)據(jù)中估計的統(tǒng)計模型感興趣。雖然簡單的模型完全能夠解決適當?shù)暮唵螁栴},但我們在本書中關(guān)注的問題超出了經(jīng)典方法的局限性。深度學習與經(jīng)典方法的區(qū)別主要在于它關(guān)注的一組強大模型。這些模型由許多連續(xù)的數(shù)據(jù)轉(zhuǎn)換組成,這些數(shù)據(jù)從上到下鏈接在一起,因此得名深度學習。在討論深度模型的過程中,我們還將討論一些更傳統(tǒng)的方法。
1.2.3. 目標函數(shù)
早些時候,我們將機器學習介紹為從經(jīng)驗中學習。通過 在這里學習,我們的意思是隨著時間的推移在某些任務上有所改進。但是誰能說什么是改進呢?您可能會想象我們可以提議更新我們的模型,而有些人可能不同意提議的更新是改進還是下降。
為了開發(fā)一個正式的學習機器數(shù)學系統(tǒng),我們需要對我們的模型有多好(或多壞)有正式的衡量標準。在機器學習和更一般的優(yōu)化中,我們稱這些 為目標函數(shù)。按照慣例,我們通常將目標函數(shù)定義為越低越好。這只是一個慣例。您可以采用任何越高越好的函數(shù),并通過翻轉(zhuǎn)符號將其轉(zhuǎn)換為質(zhì)量相同但越低越好的新函數(shù)。因為越低越好,這些函數(shù)有時被稱為損失函數(shù)。
當嘗試預測數(shù)值時,最常見的損失函數(shù)是平方誤差,即預測值與真實目標之間的差值的平方。對于分類,最常見的目標是最小化錯誤率,即我們的預測與基本事實不一致的示例部分。一些目標(例如,平方誤差)易于優(yōu)化,而其他目標(例如,錯誤率)由于不可微性或其他復雜性而難以直接優(yōu)化。在這些情況下,通常會優(yōu)化替代目標。
在優(yōu)化過程中,我們將損失視為模型參數(shù)的函數(shù),并將訓練數(shù)據(jù)集視為常數(shù)。我們通過最小化由為訓練收集的一些示例組成的集合所產(chǎn)生的損失來學習模型參數(shù)的最佳值。然而,在訓練數(shù)據(jù)上做得很好并不能保證我們在看不見的數(shù)據(jù)上也會做得很好。因此,我們通常希望將可用數(shù)據(jù)分成兩個部分:訓練數(shù)據(jù)集(或訓練集),用于學習模型參數(shù);和測試數(shù)據(jù)集(或測試集), 用于評估。在一天結(jié)束時,我們通常會報告我們的模型在兩個分區(qū)上的表現(xiàn)。您可以將培訓績效視為類似于學生在用于準備某些實際期末考試的練習考試中取得的分數(shù)。即使結(jié)果令人鼓舞,也不能保證在期末考試中取得成功。在學習過程中,學生可能會開始背誦練習題,看似掌握了主題,但在面對實際期末考試中以前沒見過的問題時卻步履蹣跚。當一個模型在訓練集上表現(xiàn)良好但無法泛化到看不見的數(shù)據(jù)時,我們說它對訓練數(shù)據(jù)過度擬合。
1.2.4. 優(yōu)化算法
一旦我們獲得了一些數(shù)據(jù)源和表示、模型和定義明確的目標函數(shù),我們就需要一種能夠搜索最佳參數(shù)以最小化損失函數(shù)的算法。流行的深度學習優(yōu)化算法基于一種稱為梯度下降的方法。簡而言之,在每個步驟中,此方法都會檢查每個參數(shù),以查看如果您對該參數(shù)進行少量擾動,訓練集損失將以何種方式移動。然后它在降低損失的方向上更新參數(shù)。
1.3. 機器學習問題的種類
我們激勵示例中的喚醒詞問題只是機器學習可以解決的眾多問題之一。為了進一步激勵讀者并為我們提供一些貫穿全書的通用語言,我們現(xiàn)在提供機器學習問題公式的廣泛概述。
1.3.1. 監(jiān)督學習
監(jiān)督學習描述的任務是給定一個包含特征和標簽的數(shù)據(jù)集,并負責生成一個模型來預測給定輸入特征的標簽。每個特征-標簽對稱為一個示例。有時,當上下文清楚時,我們可以使用術(shù)語示例引用一組輸入,即使相應的標簽未知。監(jiān)督發(fā)揮作用是因為為了選擇參數(shù),我們(監(jiān)督者)為模型提供了一個由標記示例組成的數(shù)據(jù)集。在概率方面,我們通常對估計給定輸入特征的標簽的條件概率感興趣。雖然它只是機器學習中的幾種范式之一,但監(jiān)督學習占機器學習在工業(yè)中的大部分成功應用。部分原因是,許多重要任務可以清晰地描述為在給定一組特定的可用數(shù)據(jù)的情況下估計未知事物的概率:
根據(jù)計算機斷層掃描圖像預測癌癥與非癌癥。
給出英語句子,預測正確的法語翻譯。
根據(jù)本月的財務報告數(shù)據(jù)預測下個月的股票價格。
雖然所有監(jiān)督學習問題都被簡單描述“預測給定輸入特征的標簽”所捕獲,但監(jiān)督學習可以采取多種形式并需要大量建模決策,具體取決于(除其他考慮因素外)輸入的類型、大小和數(shù)量和輸出。例如,我們使用不同的模型來處理任意長度的序列和處理固定長度的向量表示。我們將在本書中深入探討其中的許多問題。
非正式地,學習過程如下所示。首先,獲取大量特征已知的示例,并從中隨機選擇一個子集,為每個示例獲取真實標簽。有時這些標簽可能是已經(jīng)收集到的可用數(shù)據(jù)(例如,患者是否在下一年內(nèi)死亡?),而其他時候我們可能需要使用人工注釋器來標記數(shù)據(jù)(例如,將圖像分配給類別)。這些輸入和相應的標簽一起構(gòu)成了訓練集。我們將訓練數(shù)據(jù)集輸入監(jiān)督學習算法,該算法將數(shù)據(jù)集作為輸入并輸出另一個函數(shù):學習模型。最后,我們可以將以前看不見的輸入提供給學習模型,使用其輸出作為相應標簽的預測。圖 1.3.1。
圖 1.3.1監(jiān)督學習。
1.3.1.1. 回歸
也許最簡單的監(jiān)督學習任務就是回歸。例如,考慮從房屋銷售數(shù)據(jù)庫中收集的一組數(shù)據(jù)。我們可以構(gòu)建一個表,其中每一行對應不同的房子,每一列對應一些相關(guān)屬性,例如房子的平方英尺、臥室數(shù)、浴室數(shù)和分鐘數(shù)(步行) 到市中心。在這個數(shù)據(jù)集中,每個例子都是一個特定的房子,對應的特征向量是表格中的一行。如果你住在紐約或舊金山,而且你不是亞馬遜、谷歌、微軟或 Facebook 的首席執(zhí)行官,那么你家的(平方英尺、臥室數(shù)量、浴室數(shù)量、步行距離)特征向量可能看起來像:([600, 1, 1, 60]). 然而,如果你住在匹茲堡,它可能看起來更像([3000, 4, 3, 10]). 像這樣的固定長度特征向量對于大多數(shù)經(jīng)典機器學習算法來說都是必不可少的。
使問題回歸的實際上是目標的形式。假設您正在市場上購買新房??紤]到上述某些特征,您可能想要估算房屋的公平市場價值。這里的數(shù)據(jù)可能包括歷史房屋清單,標簽可能是觀察到的銷售價格。當標簽采用任意數(shù)值(即使在某個區(qū)間內(nèi))時,我們稱之為 回歸問題。目標是生成一個模型,其預測非常接近實際標簽值。
許多實際問題很容易描述為回歸問題。預測用戶對電影的評分可以被認為是一個回歸問題,如果你在 2009 年設計了一個偉大的算法來完成這一壯舉,你可能會贏得 100 萬美元的 Netflix獎。預測患者住院時間的長短也是一個回歸問題。一個好的經(jīng)驗法則是多少?或者有多少?問題應該建議回歸,例如:
這個手術(shù)需要幾個小時?
這個鎮(zhèn)在接下來的六個小時內(nèi)會有多少降雨量?
即使您以前從未接觸過機器學習,您也可能非正式地解決過回歸問題。想象一下,例如,您修理了下水道,而您的承包商花了 3 個小時從污水管道中清除垃圾。然后他寄給你一張 350 美元的賬單。現(xiàn)在想象一下,您的朋友雇用了同一個承包商 2 小時,他收到了一張 250 美元的賬單。如果隨后有人問你對他們即將開出的清除垃圾發(fā)票的期望值是多少,你可能會做出一些合理的假設,比如工作更多的時間會花費更多的錢。您可能還假設有一些基本費用,然后承包商按小時收費。如果這些假設成立,那么根據(jù)這兩個數(shù)據(jù)示例,您已經(jīng)可以確定承包商的定價結(jié)構(gòu):每小時 100 美元外加 50 美元出現(xiàn)在你家。如果你遵循了這么多,那么你已經(jīng)理解了線性回歸背后的高級思想。
在這種情況下,我們可以生成與承包商價格完全匹配的參數(shù)。有時這是不可能的,例如,如果某些差異歸因于除您的兩個特征之外的幾個因素。在這些情況下,我們將嘗試學習最小化我們的預測與觀察值之間的距離的模型。在我們的大部分章節(jié)中,我們將重點關(guān)注最小化平方誤差損失函數(shù)。正如我們稍后將看到的,這種損失對應于我們的數(shù)據(jù)被高斯噪聲破壞的假設。
1.3.1.2。分類
雖然回歸模型非常適合解決多少問題?問題,很多問題都不適用于此模板。例如,考慮一家想要為其移動應用程序開發(fā)支票掃描功能的銀行。理想情況下,客戶只需拍一張支票照片,應用程序就會自動識別圖像中的文字。假設我們有能力分割出對應于每個手寫字符的圖像塊,那么剩下的主要任務就是確定每個圖像塊中描繪了某個已知集合中的哪個字符。這幾種是哪一種?問題稱為分類,需要一組不同于用于回歸的工具,盡管許多技術(shù)將繼續(xù)存在。
在分類中,我們希望我們的模型查看特征,例如圖像中的像素值,然后預測一些離散選項集中的類別(有時稱為類),一個示例屬于哪個類別。對于手寫數(shù)字,我們可能有十個類別,對應于數(shù)字 0 到 9。最簡單的分類形式是只有兩個類別,我們稱之為二進制分類的問題。例如,我們的數(shù)據(jù)集可能包含動物圖像,而我們的標簽可能是類別 (mathrm{{cat, dog}}). 在回歸中,我們尋找一個回歸器來輸出一個數(shù)值,在分類中,我們尋找一個分類器,其輸出是預測的類分配。
隨著本書變得更加技術(shù)化,我們將深入探討的原因是,優(yōu)化只能輸出硬分類分配(例如“貓”或“狗”)的模型可能很困難。在這些情況下,用概率語言來表達我們的模型通常要容易得多。給定示例的特征,我們的模型為每個可能的類別分配一個概率。回到我們的動物分類示例,其中類別是 (mathrm{{cat, dog}}),分類器可能會看到圖像并輸出圖像是貓的概率為 0.9。我們可以通過說分類器 90% 確定圖像描繪的是一只貓來解釋這個數(shù)字。預測類別的概率大小傳達了一種不確定性概念。它不是不確定性的唯一概念,我們將在更高級的章節(jié)中討論其他概念。
當我們有兩個以上的可能類別時,我們將問題稱為 多類別分類。常見的例子包括手寫字符識別(mathrm{{0, 1, 2, ... 9, a, b, c, ...}}). 雖然我們通過嘗試最小化平方誤差損失函數(shù)來解決回歸問題,但分類問題的常見損失函數(shù)稱為交叉熵,其名稱可以通過后續(xù)章節(jié)的信息論介紹來揭開神秘面紗。
請注意,最有可能的類別不一定是您要用于您的決定的類別。假設你在后院發(fā)現(xiàn)了一個漂亮的蘑菇,
現(xiàn)在,假設您構(gòu)建了一個分類器并訓練它根據(jù)照片預測蘑菇是否有毒。假設我們的毒物檢測分類器輸出圖 1.3.2的概率 包含死亡上限為 0.2。換句話說,分類器有 80% 的把握確定我們的蘑菇不是死亡帽。不過,你必須是個傻瓜才能吃它。那是因為美味晚餐的某些好處抵不上 20% 的死亡風險。換句話說,不確定風險的影響遠遠大于收益。因此,為了決定是否吃蘑菇,我們需要計算與每個行動相關(guān)的預期負效用,這取決于可能的結(jié)果以及與每個行動相關(guān)的利益或危害。在這種情況下,吃蘑菇產(chǎn)生的負效用可能是 (0.2 times infty + 0.8 times 0 = infty),而丟棄它的損失是(0.2 times 0 + 0.8 times 1 = 0.8). 我們的謹慎是有道理的:正如任何真菌學家都會告訴我們的那樣,圖 1.3.2中的蘑菇 實際上是一頂死亡帽。
分類可能比二分類或多分類復雜得多。例如,有一些分類變體處理層次結(jié)構(gòu)的類。在這種情況下,并不是所有的錯誤都是平等的——如果我們一定會犯錯,我們可能更愿意錯誤分類到一個相關(guān)的類而不是一個遙遠的類。通常,這稱為層次分類。為了獲得靈感,您可能會想到 林奈,他將動物按等級組織起來。
在動物分類的情況下,將貴賓犬誤認為雪納瑞犬可能并沒有那么糟糕,但如果將貴賓犬與恐龍混淆,我們的模型將付出巨大的代價。哪個層次結(jié)構(gòu)是相關(guān)的可能取決于您計劃如何使用該模型。例如,響尾蛇和吊帶蛇在系統(tǒng)發(fā)育樹上可能很接近,但將響尾蛇誤認為是吊帶蛇可能是致命的。
1.3.1.3. 標記
一些分類問題非常適合二元或多類分類設置。例如,我們可以訓練一個普通的二元分類器來區(qū)分貓和狗。鑒于計算機視覺的當前狀態(tài),我們可以使用現(xiàn)成的工具輕松地做到這一點。盡管如此,無論我們的模型變得多么準確,當分類器遇到 不來梅小鎮(zhèn)音樂家的圖像時,我們可能會遇到麻煩,這是一個以四只動物為特色的流行德國童話。
如您所見,照片中有一只貓、一只公雞、一只狗和一頭驢,背景中有一些樹。當我們預期會遇到此類圖像時,多類分類可能不是正確的問題表述。相反,我們可能想讓模型選擇說圖像描繪了一只貓、一只狗、一只驢和一只公雞。
學習預測不互斥類的問題稱為多標簽分類。自動標記問題通常最好描述為多標簽分類問題。想一想人們可能會在技術(shù)博客上貼上的標簽,例如“機器學習”、“技術(shù)”、“小工具”、“編程語言”、“Linux”、“云計算”、“AWS”。一篇典型的文章可能應用了 5-10 個標簽。通常,標簽會展示一些相關(guān)結(jié)構(gòu)。關(guān)于“云計算”的帖子可能會提到“AWS”,而關(guān)于“機器學習”的帖子可能會提到“GPU”。
有時,此類標記問題會利用大量標簽集。國家醫(yī)學圖書館雇用了許多專業(yè)注釋員,他們將 PubMed 中要編入索引的每篇文章與一組從醫(yī)學主題詞表 (MeSH) 本體中提取的標簽關(guān)聯(lián)起來,該集合包含大約 28000 個標簽。正確標記文章很重要,因為它允許研究人員對文獻進行詳盡的審查。這是一個耗時的過程,注釋者通常在歸檔和標記之間有一年的滯后時間。機器學習可以提供臨時標簽,直到每篇文章都可以進行適當?shù)娜斯彶?。事實上,多年來,BioASQ 組織一直在舉辦這項任務的競賽。
1.3.1.4。搜索
在信息檢索領域,我們經(jīng)常對項目集進行排名。以網(wǎng)絡搜索為例。目標不是確定特定頁面是否與查詢相關(guān),而是在一組相關(guān)結(jié)果中,哪些應該最突出地顯示給特定用戶。一種可能的解決方案可能是首先為集合中的每個元素分配一個分數(shù),然后檢索評分最高的元素。 網(wǎng)頁排名,Google 搜索引擎背后的原始秘密武器,是此類評分系統(tǒng)的早期示例。特別是,PageRank 提供的評分并不取決于實際查詢。相反,他們依靠一個簡單的相關(guān)性過濾器來識別一組相關(guān)的候選者,然后使用 PageRank 來確定更權(quán)威的頁面的優(yōu)先級。如今,搜索引擎使用機器學習和行為模型來獲得與查詢相關(guān)的相關(guān)性分數(shù)。有整個學術(shù)會議專門討論這個主題。
1.3.1.5。推薦系統(tǒng)
推薦系統(tǒng)是另一個與搜索和排名相關(guān)的問題設置。就目標是向用戶顯示一組相關(guān)項目而言,問題是相似的。主要區(qū)別在于在推薦系統(tǒng)的上下文中強調(diào)對特定用戶的個性化。例如,對于電影推薦,科幻迷的結(jié)果頁面和彼得塞勒斯喜劇鑒賞家的結(jié)果頁面可能會有很大差異。類似的問題也出現(xiàn)在其他推薦設置中,例如零售產(chǎn)品、音樂和新聞推薦。
在某些情況下,客戶會提供明確的反饋,傳達他們對特定產(chǎn)品的喜愛程度(例如,亞馬遜、IMDb 和 Goodreads 上的產(chǎn)品評級和評論)。在其他情況下,他們提供隱式反饋,例如,通過跳過播放列表中的標題,這可能表示不滿意,或者可能只是表示歌曲在上下文中不合適。在最簡單的公式中,這些系統(tǒng)被訓練來估計一些分數(shù),例如預期的星級或給定用戶購買特定商品的概率。
給定這樣一個模型,對于任何給定的用戶,我們可以檢索得分最高的對象集,然后可以將其推薦給用戶。生產(chǎn)系統(tǒng)要先進得多,在計算此類分數(shù)時會考慮詳細的用戶活動和項目特征。圖 1.3.4顯示了亞馬遜基于個性化算法推薦的深度學習書籍,這些算法經(jīng)過調(diào)整以捕捉 Aston 的偏好。
亞馬遜推薦的深度學習書籍。
盡管具有巨大的經(jīng)濟價值,但天真地建立在預測模型之上的推薦系統(tǒng)存在一些嚴重的概念缺陷。首先,我們只觀察經(jīng)過審查的反饋:用戶優(yōu)先評價他們有強烈感受的電影。例如,在五分制中,您可能會注意到項目獲得許多一星和五星評級,但明顯很少有三星級評級。此外,當前的購買習慣通常是當前推薦算法的結(jié)果,但學習算法并不總是考慮到這個細節(jié)。因此,有可能形成反饋循環(huán),其中推薦系統(tǒng)優(yōu)先推送隨后被認為更好的項目(由于購買量增加),進而更頻繁地被推薦。許多關(guān)于如何處理審查、激勵和反饋循環(huán)的問題都是重要的開放研究問題。
1.3.1.6。序列學習
到目前為止,我們已經(jīng)研究了具有固定數(shù)量輸入并產(chǎn)生固定數(shù)量輸出的問題。例如,我們考慮在給定一組固定特征的情況下預測房價:建筑面積、臥室數(shù)量、浴室數(shù)量以及到市中心的交通時間。我們還討論了從圖像(固定維度)映射到它屬于固定數(shù)量類別中每個類別的預測概率,并僅根據(jù)用戶 ID 和產(chǎn)品 ID 預測與購買相關(guān)的星級。在這些情況下,一旦我們的模型被訓練,在每個測試示例被輸入我們的模型后,它會立即被遺忘。我們假設連續(xù)的觀察是獨立的,因此沒有必要堅持這種背景。
但是我們應該如何處理視頻片段呢?在這種情況下,每個片段可能包含不同數(shù)量的幀。如果我們考慮之前或之后的幀,我們對每一幀中發(fā)生的事情的猜測可能會更加強烈。語言也是如此。一個流行的深度學習問題是機器翻譯:提取某種源語言的句子并預測其在另一種語言中的翻譯的任務。
這些問題也發(fā)生在醫(yī)學上。我們可能需要一個模型來監(jiān)控重癥監(jiān)護病房的患者,并在他們在接下來的 24 小時內(nèi)死亡的風險超過某個閾值時發(fā)出警報。在這里,我們不會每小時丟棄我們所了解的有關(guān)患者病史的所有信息,而僅根據(jù)最近的測量結(jié)果做出預測。
這些問題是機器學習最令人興奮的應用之一,它們是序列學習的實例。他們需要一個模型來攝取輸入序列或發(fā)出輸出序列(或兩者)。具體來說,序列到序列學習 考慮輸入和輸出均由可變長度序列組成的問題。示例包括機器翻譯和語音到文本的轉(zhuǎn)錄。雖然不可能考慮所有類型的序列轉(zhuǎn)換,但以下特殊情況值得一提。
標記和解析。這涉及用屬性注釋文本序列。此處,輸入和輸出是對齊的,即它們具有相同的編號并以相應的順序出現(xiàn)。例如,在 詞性(PoS)標注中,我們用相應的詞性(即“名詞”或“直接賓語”)對句子中的每個單詞進行注釋?;蛘?,我們可能想知道哪些連續(xù)詞組指的是命名實體,如people、places或organizations。在下面的卡通簡單示例中,我們可能只想為句子中的每個單詞指示它是否是命名實體(標記為“Ent”)的一部分。
Tom has dinner in Washington with Sally Ent - - - Ent - Ent
自動語音識別。對于語音識別,輸入序列是說話者的錄音(圖 1.3.5),輸出是說話者所說內(nèi)容的轉(zhuǎn)錄本。挑戰(zhàn)在于音頻幀(聲音通常以 8kHz 或 16kHz 采樣)比文本多得多,即音頻和文本之間沒有 1:1 的對應關(guān)系,因為數(shù)千個樣本可能對應于一個口語單詞。這些是序列到序列的學習問題,其中輸出比輸入短得多。雖然人類非常擅長識別語音,即使是低質(zhì)量的音頻,但讓計算機完成這項壯舉仍是一項艱巨的挑戰(zhàn)。
在錄音中。-D-e-e-p- L-ea-r-ni-ng-
文字轉(zhuǎn)語音。這與自動語音識別相反。這里,輸入是文本,輸出是音頻文件。在這種情況下,輸出比輸入長得多。
機器翻譯。與語音識別的情況不同,相應的輸入和輸出以相同的順序出現(xiàn),在機器翻譯中,未對齊的數(shù)據(jù)提出了新的挑戰(zhàn)。這里輸入和輸出序列可以有不同的長度,并且各個序列的相應區(qū)域可以以不同的順序出現(xiàn)。考慮以下德國人將動詞放在句子末尾的特殊傾向的說明性示例:
German: Haben Sie sich schon dieses grossartige Lehrwerk angeschaut? English: Did you already check out this excellent tutorial? Wrong alignment: Did you yourself already this excellent tutorial looked-at?
在其他學習任務中會彈出許多相關(guān)問題。例如,確定用戶閱讀網(wǎng)頁的順序是一個二維布局分析問題。對話問題表現(xiàn)出各種額外的復雜性,其中確定接下來要說什么需要考慮現(xiàn)實世界的知識和跨越很長時間距離的對話的先前狀態(tài)。這些都是活躍的研究領域。
1.3.2. 無監(jiān)督和自我監(jiān)督學習
前面的示例側(cè)重于監(jiān)督學習,我們?yōu)槟P吞峁┮粋€包含特征和相應標簽值的巨大數(shù)據(jù)集。您可以將監(jiān)督學習者視為擁有極其專業(yè)的工作和極其獨裁的老板。老板站在它的肩膀上,告訴它在每種情況下應該做什么,直到你學會將情況映射到行動。為這樣的老板工作聽起來很蹩腳。另一方面,取悅這樣的老板是很容易的。您只需盡快識別模式并模仿他們的動作即可。
考慮到相反的情況,為一個不知道他們要你做什么的老板工作可能會令人沮喪。但是,如果你打算成為一名數(shù)據(jù)科學家,你最好習慣它。老板可能只是給你一大堆數(shù)據(jù),并告訴你用它做一些數(shù)據(jù)科學!這聽起來很模糊,因為它確實如此。我們將這類問題稱為 無監(jiān)督學習,我們可以提出的問題的類型和數(shù)量僅受我們創(chuàng)造力的限制。我們將在后面的章節(jié)中介紹無監(jiān)督學習技術(shù)?,F(xiàn)在,為了激發(fā)您的胃口,我們描述了您可能會問的以下幾個問題。
我們能否找到少量準確概括數(shù)據(jù)的原型?給定一組照片,我們能否將它們分為風景照片、狗、嬰兒、貓和山峰的照片?同樣,給定用戶瀏覽活動的集合,我們是否可以將他們分組為具有相似行為的用戶?這個問題通常稱為 聚類。
我們能否找到少量準確捕捉數(shù)據(jù)相關(guān)屬性的參數(shù)?球的軌跡可以通過球的速度、直徑和質(zhì)量很好地描述。裁縫們?yōu)榱嗽嚧┮路_發(fā)了一些相當準確地描述人體形狀的參數(shù)。這些問題被稱為子空間估計。如果相關(guān)性是線性的,則稱為主成分分析。
歐幾里德空間中是否存在(任意結(jié)構(gòu)的)對象的表示,使得符號屬性可以很好地匹配?這可以用來描述實體及其關(guān)系,例如“羅馬”(-)“意大利”(+)“法國”(=)“巴黎”。
是否描述了我們觀察到的大部分數(shù)據(jù)的根本原因?例如,如果我們有關(guān)于房價、污染、犯罪、位置、教育和薪水的人口統(tǒng)計數(shù)據(jù),我們能否僅僅根據(jù)經(jīng)驗數(shù)據(jù)發(fā)現(xiàn)它們之間的關(guān)系?與因果關(guān)系和概率圖形模型有關(guān)的領域解決了這些問題。
無監(jiān)督學習的另一個重要且令人興奮的近期發(fā)展是深度生成模型的出現(xiàn)。這些模型顯式或隱式地估計數(shù)據(jù)的密度。訓練完成后,我們可以使用生成模型根據(jù)樣本的可能性對樣本進行評分,或者從學習分布中抽取合成樣本。生成建模的早期深度學習突破伴隨著變分自動編碼器的發(fā)明 (Kingma 和 Welling,2014 年,Rezende等人,2014 年),并繼續(xù)發(fā)展生成對抗網(wǎng)絡 (Goodfellow等人,2014 年). 最近的進展包括標準化流量 (Dinh等人,2014 年,Dinh等人,2017 年)和擴散模型 (Ho等人,2020 年, Sohl -Dickstein等人,2015 年,Song 和 Ermon,2019 年,Song等人. , 2021 ) .
無監(jiān)督學習的一個重大發(fā)展是自我監(jiān)督學習的興起 ,這種技術(shù)利用未標記數(shù)據(jù)的某些方面來提供監(jiān)督。對于文本,我們可以通過使用大語料庫中周圍的詞(上下文)預測隨機屏蔽詞來訓練模型來“填空”,而無需任何標記工作( Devlin等人,2018 年)!對于圖像,我們可以訓練模型來判斷同一圖像的兩個裁剪區(qū)域之間的相對位置 (Doersch等人,2015 年),根據(jù)圖像的剩余部分預測圖像的遮擋部分,或預測兩個示例是否是同一底層圖像的擾動版本。自監(jiān)督模型通常會學習表示,隨后通過對某些感興趣的下游任務的結(jié)果模型進行微調(diào)來利用這些表示。
1.3.3. 與環(huán)境互動
到目前為止,我們還沒有討論數(shù)據(jù)的實際來源,或者當機器學習模型生成輸出時實際發(fā)生了什么。這是因為監(jiān)督學習和非監(jiān)督學習并沒有以非常復雜的方式解決這些問題。在任何一種情況下,我們都會預先獲取大量數(shù)據(jù),然后讓我們的模式識別機器運轉(zhuǎn)起來,而無需再次與環(huán)境交互。因為所有的學習都是在算法脫離環(huán)境之后進行的,所以這有時被稱為離線學習。例如,監(jiān)督學習假定 圖 1.3.6中描述的簡單交互模式。
圖 1.3.6從環(huán)境中為監(jiān)督學習收集數(shù)據(jù)。
這種離線學習的簡單性有它的魅力。好處是我們可以單獨擔心模式識別,而不必擔心與動態(tài)環(huán)境交互所產(chǎn)生的復雜性。但是這個問題的表述是有局限性的。如果你是讀著阿西莫夫的機器人小說長大的,那么你可能會想象人工智能代理不僅能夠做出預測,而且能夠在世界上采取行動。我們想考慮智能 代理,而不僅僅是預測模型。這意味著我們需要考慮選擇動作,而不僅僅是做出預測。與單純的預測不同,行動實際上會影響環(huán)境。如果我們想訓練一個智能代理,我們必須考慮其行為可能影響代理未來觀察的方式。
考慮與環(huán)境的交互會引發(fā)一整套新的建模問題。以下只是幾個例子。
環(huán)境是否記得我們之前所做的事情?
環(huán)境是否想要幫助我們,例如,用戶將文本讀入語音識別器?
環(huán)境是否想打敗我們,例如,垃圾郵件發(fā)送者更改他們的電子郵件以逃避垃圾郵件過濾器?
環(huán)境是否有動態(tài)變化?例如,未來的數(shù)據(jù)是否總是與過去相似,或者模式是否會隨時間自然或響應我們的自動化工具而變化?
這些問題提出了distribution shift的問題,訓練數(shù)據(jù)和測試數(shù)據(jù)是不同的。我們大多數(shù)人在參加由講師編寫的考試時遇到過這個問題,而家庭作業(yè)是由他們的助教編寫的。接下來,我們簡要描述強化學習,這是一個豐富的框架,用于提出代理與環(huán)境交互的學習問題。
1.3.4. 強化學習
如果您有興趣使用機器學習來開發(fā)與環(huán)境交互并采取行動的代理,那么您可能最終會專注于強化學習。這可能包括應用于機器人技術(shù)、對話系統(tǒng),甚至用于開發(fā)視頻游戲的人工智能 (AI)。將深度學習應用于強化學習問題的深度強化學習已大受歡迎。在僅使用視覺輸入的 Atari 游戲中擊敗人類的突破性深度 Q 網(wǎng)絡 (Mnih等人,2015 年),以及在棋盤游戲圍棋中擊敗世界冠軍的 AlphaGo 程序 (Silver等人,2016 年))是兩個突出的例子。
強化學習給出了一個非常一般的問題陳述,其中代理在一系列時間步長上與環(huán)境交互。在每個時間步,智能體都會從環(huán)境中接收一些觀察結(jié)果,并且必須選擇一個動作,該動作隨后會通過某種機制(有時稱為執(zhí)行器)傳回環(huán)境 。最后,代理從環(huán)境中獲得獎勵。這個過程如圖 1.3.7所示。然后代理接收后續(xù)觀察,并選擇后續(xù)操作,依此類推。強化學習代理的行為受政策支配。簡而言之,一項政策只是一個將環(huán)境觀察映射到動作的函數(shù)。強化學習的目標是產(chǎn)生好的策略。
圖 1.3.7強化學習與環(huán)境的交互。
強化學習框架的通用性怎么強調(diào)都不為過。例如,我們可以將監(jiān)督學習問題轉(zhuǎn)化為強化學習問題。假設我們有一個分類問題。我們可以創(chuàng)建一個強化學習代理,每個類對應一個動作。然后我們可以創(chuàng)建一個環(huán)境,該環(huán)境給出的獎勵恰好等于原始監(jiān)督學習問題的損失函數(shù)。
也就是說,強化學習還可以解決許多監(jiān)督學習無法解決的問題。例如,在監(jiān)督學習中,我們總是期望訓練輸入與正確的標簽相關(guān)聯(lián)。但在強化學習中,我們并不假設對于每次觀察,環(huán)境都會告訴我們最佳行動。一般來說,我們只是得到一些獎勵。此外,環(huán)境甚至可能不會告訴我們哪些行為導致了獎勵。
考慮下國際象棋。唯一真正的獎勵信號出現(xiàn)在游戲結(jié)束時,當我們獲勝時獲得獎勵,比如 1,或者當我們失敗時,獲得獎勵,比如 -1。因此,強化學習者必須處理信用分配問題:確定哪些行為應該歸功于或歸咎于結(jié)果。這同樣適用于在 10 月 11 日獲得晉升的員工。這次晉升可能反映了前一年的大量精心選擇的行動。要想在未來獲得更多晉升,就需要弄清楚一路上采取的哪些行動導致了晉升。
強化學習者可能還必須處理部分可觀察性的問題。也就是說,當前的觀察可能無法告訴您有關(guān)當前狀態(tài)的所有信息。假設一個清潔機器人發(fā)現(xiàn)自己被困在房子里許多相同的壁櫥中的一個壁櫥里。推斷機器人的精確位置可能需要在進入壁櫥之前考慮其先前的觀察結(jié)果。
最后,在任何給定點,強化學習者可能知道一個好的策略,但可能有許多其他代理人從未嘗試過的更好的策略。強化學習者必須不斷地選擇是利用最好的(當前)已知策略作為策略,還是探索策略空間,可能會放棄一些短期獎勵以換取知識。
一般的強化學習問題是一個非常普遍的設置。行動會影響后續(xù)的觀察。僅觀察到與所選操作相對應的獎勵??梢酝耆虿糠钟^察環(huán)境。一次性解釋所有這些復雜性可能對研究人員提出的要求太多。此外,并非每個實際問題都表現(xiàn)出所有這些復雜性。因此,研究人員研究了許多強化學習問題的特例。
當環(huán)境被完全觀察時,我們稱強化學習問題為馬爾可夫決策過程。當狀態(tài)不依賴于之前的動作時,我們稱該問題為上下文強盜問題。當沒有狀態(tài),只有一組初始獎勵未知的可用動作時,這個問題就是經(jīng)典的多臂老虎機問題。
1.4. 根
我們剛剛回顧了機器學習可以解決的一小部分問題。對于各種各樣的機器學習問題,深度學習提供了解決這些問題的強大工具。盡管許多深度學習方法是近期發(fā)明的,但從數(shù)據(jù)中學習背后的核心思想已經(jīng)被研究了幾個世紀。事實上,長期以來,人類一直有分析數(shù)據(jù)和預測未來結(jié)果的愿望,許多自然科學都源于此。例如,伯努利分布以Jacob Bernoulli (1655–1705)的名字命名,而高斯分布則是由Carl Friedrich Gauss (1777–1855)發(fā)現(xiàn)的. 例如,高斯發(fā)明了最小均方算法,至今仍被用于解決從保險計算到醫(yī)療診斷的無數(shù)問題。這些工具催生了自然科學中的一種實驗方法——例如,與電阻器中的電流和電壓相關(guān)的歐姆定律可以用線性模型完美地描述。
即使在中世紀,數(shù)學家也有敏銳的估計直覺。例如,Jacob K?bel(1460-1533 年)的幾何書 說明了對 16 名成年男子的腳長求平均以估計人口的平均腳長。
當一群人離開教堂時,16 名成年男子被要求排成一排并測量他們的腳。然后將這些測量值的總和除以 16,得到現(xiàn)在相當于 1 英尺的估計值。這個“算法”后來被改進來處理畸形腳;腳最短和最長的 2 名男子被送走,平均只超過其余人。這是修剪均值估計的最早示例之一。
隨著數(shù)據(jù)的收集和可用性,統(tǒng)計真正起飛。它的先驅(qū)之一羅納德·費舍爾 (Ronald Fisher, 1890–1962)對其理論及其在遺傳學中的應用做出了重大貢獻。他的許多算法(如線性判別分析)和公式(如 Fisher 信息矩陣)在現(xiàn)代統(tǒng)計學的基礎上仍然占有突出的地位。甚至他的數(shù)據(jù)資源也產(chǎn)生了持久的影響。Fisher 于 1936 年發(fā)布的 Iris 數(shù)據(jù)集有時仍用于演示機器學習算法。費舍爾也是優(yōu)生學的支持者,這應該提醒我們,數(shù)據(jù)科學在道德上可疑的使用與其在工業(yè)和自然科學中的生產(chǎn)性使用一樣有著悠久而持久的歷史。
機器學習的第二個影響來自 Claude Shannon (1916-2001)的信息論和Alan Turing (1912-1954)的計算理論。圖靈提出了“機器能思考嗎?”的問題。在他著名的論文Computing Machinery and Intelligence ( Turing, 1950 )中。在他所描述的圖靈測試中,如果人類評估者難以根據(jù)文本交互區(qū)分來自機器和人類的回復,則機器可以被認為是智能的。
另一個影響可以在神經(jīng)科學和心理學中找到。畢竟,人類顯然表現(xiàn)出智能行為。許多學者詢問是否可以解釋并可能對這種能力進行逆向工程。最古老的受生物學啟發(fā)的算法之一是由Donald Hebb(1904-1985)制定的。在他開創(chuàng)性的著作《行為的組織》 (赫布和赫布,1949 年)中,他假設神經(jīng)元通過正強化來學習。這被稱為赫布學習規(guī)則。這些想法啟發(fā)了后來的作品,如 Rosenblatt 的感知器學習算法,并奠定了今天支撐深度學習的許多隨機梯度下降算法的基礎:加強理想行為并減少不良行為以獲得神經(jīng)網(wǎng)絡中參數(shù)的良好設置。
生物學靈感是神經(jīng)網(wǎng)絡得名的原因。一個多世紀以來(可追溯到 Alexander Bain,1873 年和 James Sherrington,1890 年的模型),研究人員一直試圖組裝類似于相互作用神經(jīng)元網(wǎng)絡的計算電路。隨著時間的推移,對生物學的解釋變得不那么直白了,但這個名字卻流傳了下來。其核心是當今大多數(shù)網(wǎng)絡中都可以找到的一些關(guān)鍵原則:
線性和非線性處理單元的交替,通常稱為層。
使用鏈式規(guī)則(也稱為反向傳播)一次性調(diào)整整個網(wǎng)絡的參數(shù)。
在最初的快速發(fā)展之后,神經(jīng)網(wǎng)絡的研究從 1995 年左右到 2005 年停滯不前。這主要有兩個原因。首先,訓練網(wǎng)絡在計算上非常昂貴。雖然隨機存取存儲器在上個世紀末很豐富,但計算能力卻很稀缺。其次,數(shù)據(jù)集相對較小。事實上,1932 年 Fisher 的 Iris 數(shù)據(jù)集是測試算法有效性的流行工具。具有 60000 個手寫數(shù)字的 MNIST 數(shù)據(jù)集被認為是巨大的。
鑒于數(shù)據(jù)和計算的稀缺性,核方法、決策樹和圖形模型等強大的統(tǒng)計工具在許多應用中憑經(jīng)驗證明是優(yōu)越的。此外,與神經(jīng)網(wǎng)絡不同,它們不需要數(shù)周的時間來訓練并提供具有強大理論保證的可預測結(jié)果。
1.5. 深度學習之路
由于萬維網(wǎng)、為數(shù)億在線用戶提供服務的公司的出現(xiàn)、廉價、高質(zhì)量傳感器的傳播、廉價數(shù)據(jù)存儲(克萊德定律)、大量數(shù)據(jù)的可用性,這在很大程度上發(fā)生了變化。和廉價的計算(摩爾定律)。特別是,GPU 的進步徹底改變了深度學習中的計算領域,GPU 最初是為電腦游戲而設計的。突然間,似乎在計算上不可行的算法和模型變得相關(guān)(反之亦然)。這在表 1.5.1中得到了最好的說明。
表 1.5.1數(shù)據(jù)集與計算機內(nèi)存和計算能力
十年 | 數(shù)據(jù)集 | 記憶 | 每秒浮點計算 |
---|---|---|---|
1970 | 100(虹膜) | 1 KB | 100 KF(英特爾 8080) |
1980 | 1K(波士頓房價) | 100 KB | 1 個 MF(英特爾 80186) |
1990 | 10K(光學字符識別) | 10MB | 10 MF(英特爾 80486) |
2000 | 10 M(網(wǎng)頁) | 100MB | 1 GF(英特爾酷睿) |
2010 | 10G(廣告) | 1GB | 1 個 TF(英偉達 C2050) |
2020 | 1 T(社交網(wǎng)絡) | 100GB | 1 個 PF(英偉達 DGX-2) |
請注意,隨機存取存儲器并沒有跟上數(shù)據(jù)增長的步伐。與此同時,計算能力的增長超過了數(shù)據(jù)集的增長。這意味著統(tǒng)計模型需要提高內(nèi)存效率,并且由于計算預算增加,可以自由地花費更多的計算機周期來優(yōu)化參數(shù)。因此,機器學習和統(tǒng)計的最佳點從(廣義)線性模型和核方法轉(zhuǎn)移到深度神經(jīng)網(wǎng)絡。這也是許多深度學習的中流砥柱的原因之一,例如多層感知器 (McCulloch 和 Pitts,1943)、卷積神經(jīng)網(wǎng)絡 (LeCun等,1998)、長短期記憶 (Hochreiter 和 Schmidhuber,1997 年)和 Q-Learning (Watkins 和 Dayan,1992 年)在相對休眠了相當長的時間后,在過去十年中基本上被“重新發(fā)現(xiàn)”。
統(tǒng)計模型、應用程序和算法的最新進展有時被比作寒武紀大爆發(fā):物種進化快速發(fā)展的時刻。事實上,最先進的技術(shù)不僅僅是可用資源應用于數(shù)十年舊算法的結(jié)果。請注意,下面的列表只是幫助研究人員在過去十年中取得巨大進步的想法的皮毛。
容量控制的新方法,例如dropout ( Srivastava et al. , 2014 ),有助于減輕過度擬合。在這里,噪聲在訓練期間被注入 整個神經(jīng)網(wǎng)絡( Bishop, 1995 ) 。
注意力機制解決了困擾統(tǒng)計一個多世紀的第二個問題:如何在不增加可學習參數(shù)數(shù)量的情況下增加系統(tǒng)的內(nèi)存和復雜性。研究人員通過使用只能被視為可學習的指針結(jié)構(gòu)找到了一個優(yōu)雅的解決方案 (Bahdanau等人,2014 年)。不必記住整個文本序列,例如,對于固定維度表示中的機器翻譯,需要存儲的只是指向翻譯過程中間狀態(tài)的指針。這可以顯著提高長序列的準確性,因為模型在開始生成新序列之前不再需要記住整個序列。
Transformer 架構(gòu) (Vaswani等人,2017 年)完全建立在注意力機制之上,展示了卓越的 縮放行為:隨著數(shù)據(jù)集大小、模型大小和訓練計算量的增加,它的性能會更好 (Kaplan等人,2020 年)。這種架構(gòu)在自然語言處理(Brown等人,2020 年,Devlin等人,2018 年)、計算機視覺 (Dosovitskiy等人,2021 年,劉等人。, 2021 )、語音識別( Gulati et al. , 2020 )、強化學習 ( Chen et al. , 2021 )和圖形神經(jīng)網(wǎng)絡 ( Dwivedi and Bresson, 2020 )。例如,在文本、圖像、關(guān)節(jié)力矩??和按鈕按下等多種模式上進行預訓練的單個 Transformer 可以播放 Atari、字幕圖像、聊天和控制機器人( Reed等人,2022 年)。
對文本序列的概率建模,語言模型可以預測給定其他文本的文本。擴展數(shù)據(jù)、模型和計算已經(jīng)解鎖了越來越多的語言模型功能,可以通過基于輸入文本的類人文本生成來執(zhí)行所需的任務(Brown 等人,2020 年, Chowdhery等人, 2022年, Hoffmann等人)等人,2022 年,Rae等人,2021 年)。例如,將語言模型與人類意圖對齊 (歐陽等人,2022 年),OpenAI 的 ChatGPT允許用戶以對話的方式與之交互,以解決問題,例如代碼調(diào)試和筆記起草。
多階段設計,例如,通過記憶網(wǎng)絡 (Sukhbaatar等人,2015 年)和神經(jīng)編程器-解釋器(Reed 和 De Freitas,2015 年)允許統(tǒng)計建模人員描述迭代推理方法。這些工具允許重復修改深度神經(jīng)網(wǎng)絡的內(nèi)部狀態(tài),從而執(zhí)行推理鏈中的后續(xù)步驟,類似于處理器如何修改內(nèi)存以進行計算。
深度生成建模的一個關(guān)鍵發(fā)展是生成對抗網(wǎng)絡 的發(fā)明 (Goodfellow等人,2014 年). 傳統(tǒng)上,用于密度估計和生成模型的統(tǒng)計方法側(cè)重于尋找適當?shù)母怕史植己停ㄍǔJ墙频模闹谐闃拥乃惴?。因此,這些算法在很大程度上受到統(tǒng)計模型固有的缺乏靈活性的限制。生成對抗網(wǎng)絡的關(guān)鍵創(chuàng)新是用具有可微參數(shù)的任意算法代替采樣器。然后以鑒別器(實際上是雙樣本測試)無法區(qū)分假數(shù)據(jù)和真實數(shù)據(jù)的方式進行調(diào)整。通過使用任意算法生成數(shù)據(jù)的能力,它為各種技術(shù)開辟了密度估計。斑馬奔騰的例子(Zhu et al. , 2017)和假名人面孔 (Karras等人,2017 年)都證明了這一進步。即使是業(yè)余涂鴉者也可以僅根據(jù)描述場景布局的草圖來制作逼真的圖像(Park等人,2019 年)。
此外,當擴散過程逐漸向數(shù)據(jù)樣本中添加隨機噪聲時,擴散模型 (Ho et al. , 2020 , Sohl-Dickstein et al. , 2015)學習去噪過程以逐漸從隨機噪聲中構(gòu)建數(shù)據(jù)樣本,逆轉(zhuǎn)擴散過程. 它們開始在最近的深度生成模型中取代生成對抗網(wǎng)絡,例如在 DALL-E 2 ( Ramesh et al. , 2022 )和 Imagen ( Saharia et al. , 2022 )中用于基于文本描述的創(chuàng)意藝術(shù)和圖像生成。
在許多情況下,單個 GPU 不足以處理大量可用于訓練的數(shù)據(jù)。在過去十年中,構(gòu)建并行和分布式訓練算法的能力有了顯著提高。設計可擴展算法的主要挑戰(zhàn)之一是深度學習優(yōu)化的主力,隨機梯度下降,依賴于相對較小的小批量數(shù)據(jù)進行處理。同時,小批量限制了 GPU 的效率。因此,在 1024 個 GPU 上進行小批量訓練,比如每批 32 張圖像,總計約有 32000 張圖像。最近的工作,首先由 Li ( 2017 )完成,隨后由 You等人完成。( 2017 )和 賈等。( 2018 )將大小增加到 64000 個觀察,將 ResNet-50 模型在 ImageNet 數(shù)據(jù)集上的訓練時間減少到不到 7 分鐘。為了進行比較——最初的訓練時間是按天數(shù)計算的。
并行計算的能力也促進了強化學習的進步,這導致計算機在圍棋、Atari 游戲、星際爭霸等任務和物理模擬(例如,使用 MuJoCo)中實現(xiàn)超人性能方面取得了重大進展,其中環(huán)境模擬器是可用的。參見,例如, Silver等人。( 2016 )描述了如何在 AlphaGo 中實現(xiàn)這一點。簡而言之,如果有大量(狀態(tài)、動作、獎勵)元組可用,強化學習效果最好。仿真提供了這樣一條途徑。
深度學習框架在傳播思想方面發(fā)揮了至關(guān)重要的作用。第一代神經(jīng)網(wǎng)絡建模的開源框架包括 Caffe、 Torch和 Theano。許多開創(chuàng)性論文都是使用這些工具撰寫的。到目前為止,它們已被 TensorFlow(通常通過其高級 API Keras使用)、 CNTK、Caffe 2和Apache MXNet取代。第三代工具包括所謂的深度學習 命令式工具,這一趨勢可以說是由Chainer點燃的,它使用類似于 Python NumPy 的語法來描述模型。PyTorch、 MXNet 的Gluon API和 JAX都采用了這個想法。
構(gòu)建更好工具的系統(tǒng)研究人員與構(gòu)建更好神經(jīng)網(wǎng)絡的統(tǒng)計建模人員之間的分工大大簡化了事情。例如,訓練線性邏輯回歸模型曾經(jīng)是一個不平凡的作業(yè)問題,值得交給新的機器學習博士。2014年卡內(nèi)基梅隆大學的學生。到現(xiàn)在,這個任務可以用不到10行代碼完成,牢牢掌握在程序員手中。
1.6. 成功的故事
人工智能在交付難以通過其他方式實現(xiàn)的結(jié)果方面有著悠久的歷史。例如,自 1990 年代以來就部署了使用光學字符識別的郵件分揀系統(tǒng)。畢竟,這是著名的 MNIST 手寫數(shù)字數(shù)據(jù)集的來源。閱讀銀行存款支票,對申請者的信用評分也是如此。自動檢查金融交易是否存在欺詐。這構(gòu)成了許多電子商務支付系統(tǒng)的支柱,例如 PayPal、Stripe、支付寶、微信、Apple、Visa 和 MasterCard。幾十年來,國際象棋的計算機程序一直具有競爭力。機器學習為互聯(lián)網(wǎng)上的搜索、推薦、個性化和排名提供支持。換句話說,機器學習無處不在,盡管通常是隱藏在視線之外的。
直到最近,人工智能才成為人們關(guān)注的焦點,主要是因為解決了以前被認為棘手且與消費者直接相關(guān)的問題。許多這樣的進步都歸功于深度學習。
蘋果的 Siri、亞馬遜的 Alexa 和谷歌的助手等智能助手能夠以合理的準確度回答口頭問題。這包括一些瑣碎的任務,比如打開電燈開關(guān),以及更復雜的任務,比如安排理發(fā)師的預約和提供電話支持對話。這可能是人工智能正在影響我們生活的最明顯跡象。
數(shù)字助理的一個關(guān)鍵要素是準確識別語音的能力。逐漸地,此類系統(tǒng)的準確性已提高到在某些應用程序中達到人類對等的程度(Xiong等人,2018 年)。
物體識別同樣取得了長足的進步。在 2010 年,估計圖片中的對象是一項相當具有挑戰(zhàn)性的任務。在 ImageNet 基準測試中,來自 NEC 實驗室和伊利諾伊大學香檳分校的研究人員取得了 28% 的前 5 錯誤率(Lin 等 人,2010年)。到 2017 年,這一錯誤率降至 2.25% (Hu et al. , 2018)。同樣,在識別鳥類和診斷皮膚癌方面也取得了驚人的成果。
游戲中的實力曾經(jīng)為人類智力提供了衡量標準。從 TD-Gammon 開始,一個使用時間差異強化學習、算法和計算進步來玩西洋雙陸棋的程序已經(jīng)產(chǎn)生了廣泛應用的算法。與西洋雙陸棋不同,國際象棋的狀態(tài)空間和動作集要復雜得多。DeepBlue 使用大規(guī)模并行、專用硬件和對游戲樹的高效搜索擊敗了 Garry Kasparov (Campbell等人,2002 年)。由于其巨大的狀態(tài)空間,圍棋更加困難。AlphaGo 在 2015 年達到了與人類相同的水平,使用深度學習結(jié)合蒙特卡洛樹采樣(Silver等人,2016 年). 撲克中的挑戰(zhàn)在于狀態(tài)空間很大并且只能部分觀察到(我們不知道對手的牌)。Libratus 使用高效的結(jié)構(gòu)化策略在撲克中超越了人類的表現(xiàn) (Brown 和 Sandholm,2017 年)。
人工智能進步的另一個跡象是自動駕駛汽車和卡車的出現(xiàn)。雖然完全自主還不是遙不可及,但在這個方向上已經(jīng)取得了很好的進展,特斯拉、NVIDIA 和 Waymo 等公司推出的產(chǎn)品至少可以實現(xiàn)部分自主。完全自動駕駛之所以如此具有挑戰(zhàn)性,是因為正確的駕駛需要具備感知、推理和將規(guī)則納入系統(tǒng)的能力。目前,深度學習主要用于這些問題的計算機視覺方面。其余的由工程師大量調(diào)整。
這只是機器學習有影響力應用的冰山一角。例如,機器人技術(shù)、物流、計算生物學、粒??子物理學和天文學最近取得的一些最令人印象深刻的進展至少部分歸功于機器學習。機器學習因此成為工程師和科學家無處不在的工具。
在關(guān)于 AI 的非技術(shù)文章中,經(jīng)常會提出有關(guān)即將到來的 AI 末日和奇點的合理性的問題。令人擔憂的是,機器學習系統(tǒng)會以某種方式變得有感知力并獨立于直接影響人類生活的程序員做出決策。在某種程度上,人工智能已經(jīng)以直接的方式影響了人類的生計:自動評估信用度,自動駕駛儀主要為車輛導航,是否準予保釋的決定使用統(tǒng)計數(shù)據(jù)作為輸入。更輕率的是,我們可以讓 Alexa 打開咖啡機。
幸運的是,我們遠不是一個可以故意操縱其人類創(chuàng)造者的有感知力的人工智能系統(tǒng)。首先,人工智能系統(tǒng)以特定的、面向目標的方式進行設計、訓練和部署。雖然他們的行為可能給人一種通用智能的錯覺,但它是設計基礎的規(guī)則、啟發(fā)式和統(tǒng)計模型的組合。其次,目前根本不存在能夠改進自身、推理自身以及能夠在嘗試解決一般任務時修改、擴展和改進自身架構(gòu)的通用人工智能工具。
一個更緊迫的問題是人工智能如何在我們的日常生活中使用。卡車司機和店員完成的許多瑣碎任務很可能可以而且將會自動化。農(nóng)場機器人可能會降低有機農(nóng)業(yè)的成本,但它們也會使收割操作自動化。工業(yè)革命的這個階段可能會對社會的大部分人產(chǎn)生深遠的影響,因為卡車司機和店員是許多國家最常見的工作。此外,如果不加注意地應用統(tǒng)計模型,可能會導致種族、性別或年齡偏見,如果自動驅(qū)動相應的決策,則會引起對程序公平性的合理擔憂。確保謹慎使用這些算法非常重要。以我們今天所知道的,
1.7. 深度學習的本質(zhì)
到目前為止,我們已經(jīng)廣泛地討論了機器學習。深度學習是機器學習的一個子集,涉及基于多層神經(jīng)網(wǎng)絡的模型。它的深度恰恰在于它的模型學習了很多層的轉(zhuǎn)換。雖然這聽起來可能很狹隘,但深度學習已經(jīng)產(chǎn)生了一系列令人眼花繚亂的模型、技術(shù)、問題公式和應用程序。已經(jīng)發(fā)展出許多直覺來解釋深度的好處??梢哉f,所有機器學習都有很多計算層,第一層由特征處理步驟組成。深度學習的不同之處在于,在許多表示層中的每一層學習的操作都是從數(shù)據(jù)中聯(lián)合學習的。
到目前為止我們討論的問題,例如從原始音頻信號、圖像的原始像素值中學習,或任意長度的句子與其對應的外語句子之間的映射,都是深度學習擅長而傳統(tǒng)方法步履蹣跚的問題。事實證明,這些多層模型能夠以以前的工具無法處理的方式處理低級感知數(shù)據(jù)。可以說,深度學習方法中最重要的共性是端到端訓練。也就是說,不是基于單獨調(diào)整的組件組裝系統(tǒng),而是構(gòu)建系統(tǒng)然后聯(lián)合調(diào)整它們的性能。例如,在計算機視覺中,科學家們過去常常將特征工程的過程分開來自構(gòu)建機器學習模型的過程。Canny 邊緣檢測器 ( Canny, 1987 )和 Lowe 的 SIFT 特征提取器 ( Lowe, 2004 )作為將圖像映射到特征向量的算法統(tǒng)治了十多年。在過去,將機器學習應用于這些問題的關(guān)鍵部分包括提出手動設計的方法,將數(shù)據(jù)轉(zhuǎn)換為某種適合淺層模型的形式。不幸的是,與算法自動執(zhí)行的對數(shù)百萬個選擇的一致評估相比,人類憑借獨創(chuàng)性所能完成的事情非常少。當深度學習接管時,這些特征提取器被自動調(diào)整的過濾器所取代,從而產(chǎn)生更高的準確性。
因此,深度學習的一個關(guān)鍵優(yōu)勢在于它不僅取代了傳統(tǒng)學習管道末端的淺層模型,而且取代了特征工程的勞動密集型過程。此外,通過取代許多特定領域的預處理,深度學習消除了以前分隔計算機視覺、語音識別、自然語言處理、醫(yī)學信息學和其他應用領域的許多界限,提供了一套統(tǒng)一的工具來處理各種不同的問題。問題。
除了端到端訓練之外,我們正在經(jīng)歷從參數(shù)統(tǒng)計描述到完全非參數(shù)模型的轉(zhuǎn)變。當數(shù)據(jù)稀缺時,人們需要依靠簡化對現(xiàn)實的假設以獲得有用的模型。當數(shù)據(jù)豐富時,可以用更適合數(shù)據(jù)的非參數(shù)模型代替這些模型。在某種程度上,這反映了物理學在上世紀中葉隨著計算機的出現(xiàn)而取得的進步。與其手動求解電子行為的參數(shù)近似值,不如求助于相關(guān)偏微分方程的數(shù)值模擬。這導致了更準確的模型,盡管通常以犧牲可解釋性為代價。
與以前工作的另一個不同是接受次優(yōu)解,處理非凸非線性優(yōu)化問題,以及在證明之前嘗試事物的意愿。這種處理統(tǒng)計問題的新經(jīng)驗主義,加上人才的迅速涌入,導致實用算法的快速進步,盡管在許多情況下,代價是修改和重新發(fā)明已經(jīng)存在了幾十年的工具。
最后,深度學習社區(qū)以跨學術(shù)和企業(yè)邊界共享工具而自豪,發(fā)布了許多優(yōu)秀的庫、統(tǒng)計模型和訓練有素的網(wǎng)絡作為開源。正是本著這種精神,組成本書的筆記本可以免費分發(fā)和使用。我們一直在努力降低每個人學習深度學習的門檻,希望我們的讀者能從中受益。
1.8. 概括
機器學習研究計算機系統(tǒng)如何利用經(jīng)驗(通常是數(shù)據(jù))來提高特定任務的性能。它結(jié)合了統(tǒng)計、數(shù)據(jù)挖掘和優(yōu)化的思想。通常,它被用作實施人工智能解決方案的手段。作為機器學習的一類,表征學習的重點是如何自動找到合適的方式來表示數(shù)據(jù)。作為通過學習多層轉(zhuǎn)換的多層次表示學習,深度學習不僅取代了傳統(tǒng)機器學習管道末端的淺層模型,而且取代了特征工程的勞動密集型過程。深度學習最近取得的大部分進展是由廉價傳感器和互聯(lián)網(wǎng)規(guī)模應用程序產(chǎn)生的大量數(shù)據(jù)以及計算方面的重大進展(主要是通過 GPU)引發(fā)的。除了,
1.9. 練習
您當前正在編寫的代碼的哪些部分可以“學習”,即通過學習和自動確定代碼中所做的設計選擇來改進?您的代碼是否包含啟發(fā)式設計選擇?您可能需要哪些數(shù)據(jù)來學習所需的行為?
您遇到的哪些問題有很多解決方法的示例,但沒有具體的自動化方法?這些可能是使用深度學習的主要候選對象。
描述算法、數(shù)據(jù)和計算之間的關(guān)系。數(shù)據(jù)的特性和當前可用的計算資源如何影響各種算法的適用性?
列舉一些端到端訓練目前不是默認方法但可能有用的設置。
-
神經(jīng)網(wǎng)絡
+關(guān)注
關(guān)注
42文章
4812瀏覽量
103232 -
算法
+關(guān)注
關(guān)注
23文章
4705瀏覽量
95109 -
機器學習
+關(guān)注
關(guān)注
66文章
8499瀏覽量
134341 -
pytorch
+關(guān)注
關(guān)注
2文章
809瀏覽量
13872
發(fā)布評論請先 登錄
如何往星光2板子里裝pytorch?
基于PyTorch的深度學習入門教程之PyTorch簡單知識
基于PyTorch的深度學習入門教程之PyTorch的自動梯度計算
基于PyTorch的深度學習入門教程之PyTorch重點綜合實踐
PyTorch教程之數(shù)據(jù)預處理

PyTorch教程之循環(huán)神經(jīng)網(wǎng)絡

PyTorch教程之長短期記憶(LSTM)

評論