導讀:本文帶你了解機器學習的分類——監督學習、非監督學習、強化學習。
作者:小川雄太郎
來源:大數據DT(ID:hzdashuju)
01 術語整理
本節概述機器學習及其三個分類(監督學習、非監督學習和強化學習)。首先,與機器學習相關的術語有人工智慧(Artificial Intelligence,AI)、機器學習(Machine Learning,ML)、強化學習、深度學習等,這裡對這些術語進行簡單的整理。
AI意味著人工智慧,其定義因研究人員而異。從廣義上講,它指「像人類一樣具有智能的系統和配備這種系統的機器人」。實現AI的方法之一是機器學習。
機器學習可以簡單地描述為「向系統提供數據(稱為訓練數據或學習數據)並通過數據自動確定系統的參數(變量值)」。相反,基於規則的系統是非機器學習系統的一個例子。在基於規則的系統中,由人類來清楚地定義分支條件的參數,例如實現代碼中所存在的if語句等。
另一方面,機器學習自動根據訓練數據確定代碼中的參數,以使系統運行良好。之所以稱為機器學習,正是因為系統能根據訓練數據計算和確定系統運行所需的參數。
強化學習是機器學習中的一種。機器學習可分為三大類:監督學習、非監督學習和強化學習。我們稍後會討論這三個分類,這裡只需要認識到強化學習是機器學習的一部分即可。
接下來是深度學習。深度學習是實現機器學習的算法之一。機器學習的算法包括邏輯回歸、支持向量機(Support Vector Machine,SVM)、決策樹、隨機森林和神經網絡等。深度學習是神經網絡中的一種。
最後是深度強化學習。深度強化學習是強化學習和深度學習的結合。
02 監督學習、非監督學習、強化學習
這裡對三種機器學習(監督學習、非監督學習和強化學習)分別進行介紹。
首先說明監督學習。
例如,「對郵政編碼中的手寫數字進行分類」是一種監督學習。郵政編碼分類系統將每個數字的手寫圖像分類為0~9中的一個。諸如0到9的數據的分類目標被稱為標籤或類。這種系統被稱為監督學習,因為給事先提供的訓練數據預先標記出了正確的標籤。換句話說,帶標籤的訓練數據成了系統的教師。
監督學習包括學習階段和推理階段。我們將以圖為例來解釋手寫數字的分類(見圖1.1)。
在學習階段,準備許多0到9的手寫數字圖像數據,這些數據作為訓練數據。訓練數據有一個標籤(0到9中的某個數值),根據標籤可以找到關於手寫數字圖像的正確答案信息,例如「此手寫數字圖像為1」。在學習階段,當將手寫數字圖像輸入系統時,調整(學習)系統的參數以儘量將輸入圖像分類為正確的標籤。在應用階段,將無標籤的未知手寫數字圖像數據輸入系統,圖像被分類為0到9中的某一個輸出標籤並給出結果。如果已經學習到正確的結果,當輸入未知的手寫數字圖像時,系統將輸出正確的數值標籤。除了手寫數字的分類之外,還可使用監督學習來對圖像、聲音和文本數據進行分類。此外,除了上面例子中提到的分類任務,監督學習也用於回歸等任務。接下來,介紹非監督學習。用一個詞表達非監督學習就是「分組」。它將大量數據中類似的數據分為一組(稱為聚類)。例如,「根據購買數據對客戶進行分組的系統」是非監督學習。根據購買歷史記錄的特徵對客戶進行分組,可以為每個組實施不同的銷售策略。我們使用圖來說明購買數據分析的例子(見圖1.2)。假設存儲了每個客戶過去一年的購買數量和每次平均消費金額的數據,並對此數據進行分析。根據這些數據,客戶可以分為兩組。A組(左上角)是以較低頻次購買高價商品的組,B組(右下角)是多次重複但每次消費金額較低的組。▲圖1.2 使用非監督學習根據購買數據對客戶分組的示例使用非監督學習進行分組將有助於了解每個客戶所屬的組,並針對每個組實施最佳銷售策略(儘管部分業務還需要更詳細的分析)。除了本例中提到的分組(聚類)以外,非監督學習也用於降維和推薦系統。最後,我們討論強化學習。強化學習是一種主要用於「時變系統控制規則構建」和「對戰博弈策略構建」的方法。例如,強化學習用於機器人的步行控制和圍棋對戰程序(見圖1.3)。▲圖1.3 強化學習示例(機器人步行控制和圍棋比賽系統)在我們熟悉的例子中,可能更容易想像一個孩子學會騎自行車的情形。當一個孩子學習騎自行車時,並沒有人去教其諸如牛頓力學等力學法則以及如何騎車的詳細方法,也不必通過觀看視頻來學習騎自行車。事實上,自己嘗試騎自行車,在多次失敗的過程中找到一種騎自行車的方法。強化學習正如學騎自行車的例子,它是一種學習方法,它在不知道控制對象的物理定律的情況下重複試錯,以學習到所希望的控制方法。強化學習中沒有帶標籤的數據作為訓練數據,但這並不意味著根本沒有監督信息。系統根據強化學習程序運行,在獲得所需結果時給出稱為獎勵的信號。例如,在機器人的步行控制中,可以走的距離就是獎勵。在圍棋的比賽程序中,贏或輸的結果就是獎勵。失敗時的獎勵是負值,也稱為懲罰。如果想通過監督學習來學習機器人的步行控制,就需要儘可能多的「如果腿的關節處於這個角度並且速度是某值,那麼就像這樣轉動電動機A」這樣的模式,並預先給出其正確的做法。然而,當機器人行走時,對於每個時刻變化的狀態,很難預先給出控制該電動機的正確做法。另一方面,在強化學習中,將行走距離作為獎勵提供給步行控制系統,並且重複試驗多次。這樣一來,強化學習系統會根據重複試驗和獲得的獎勵自行改變控制規則,以「如果之前的試驗中所做改變使我可以走得更遠,則這種改變是正確的」為基礎。因此,可以在不教導機器人如何行走的情況下讓機器人能漸漸行走更長的距離。即使在像圍棋這樣的對戰遊戲的策略構建中,也無須在每個階段將強者視為教師數據來進行教導,僅通過將成功或失敗作為獎勵來重複試驗即可。這樣做,強化學習系統會一點一點地改變遊戲方式並變得更強。學到的圍棋或將棋系統比設計者本人更強大,這一點通過強化學習可以很容易實現。只聽這個解釋,強化學習就像魔術,但在實踐中卻存在著種種困難。強化學習主要適用於「時變系統控制規則構建」和「對戰博弈策略構建」,本書以前者「系統控制」為目標任務,通過編寫相關程序來學習強化學習。關於作者:小川雄太郎,東京大學博士,曾在東京大學從事腦機能測量及計算論的神經科學研究。現就職於株式會社電通國際信息服務技術開發部,從事機器學習相關技術的研究開發。本文摘編自《邊做邊學深度強化學習:PyTorch程序設計實踐》,經出版方授權發布。推薦語:本書面向普通大眾,指導讀者以PyTorch為工具,在Python中實踐深度強化學習。讀者只需要具備一些基本的編程經驗和基本的線性代數知識即可讀懂書中內容,通過實現具體程序來掌握深度強化學習的相關知識。PPT | 讀書 | 書單 | 硬核 | 乾貨 | 講明白 | 神操作大數據 | 雲計算 | 資料庫 | Python | 可視化AI | 人工智慧 | 機器學習 | 深度學習 | NLP5G | 中臺 | 用戶畫像 | 1024 | 數學 | 算法 | 數字孿生