【強化學習】MOVE37-Introduction(導論)
寫在前面的話:從今日起,我會邊跟著矽谷大牛Siraj的MOVE 37系列課程學習Reinforcement Learning(強化學習演算法),邊更新這個系列。課程包含視訊和文字,課堂筆記會按視訊為單位進行整理。
課程表地址: ofollow,noindex">https://github.com/llSourcell/Move_37_Syllabus
帶字幕課程視訊地址: https://www.bilibili.com/video/av31518766
本課作為導論,大致普及了一下機器學習和強化學習的概念和用途。其次,捎帶介紹了一下最常見的監督學習和非監督學習。對機器學習稍有了解的同學們,對這兩個概念應該不陌生。如果對此毫無概念的同學們,可以看我下面的簡單說明。
機器學習(Machine Learning)
首先,我們要明白,所謂的機器學習就是試圖找出輸入輸出量之間的一個固定關係,以期對以後所有的輸入量都能相應地去預測一個輸出量。用數學語言來說,就是從一堆已知的x和y之間找出對映f。打個比方,如果我們發現每次穿裙子(x)就一定會下雨(y),那麼這個因果關係就是f;由此,我們就可以根據f這個關係,也就是某天穿沒穿裙子,來推斷會不會下雨。
監督學習 (Supervised Learning)
這裡舉一個水果分類的例子。這裡機器學習演算法所要完成的工作,就是要得到水果和水果名稱之間的關係。
第一步是訓練演算法,第二步是用測試資料來檢驗演算法的完善度。圖中可以看到,這裡訓練演算法時輸入的資料是 預先分過類 的(即打過標籤的),所以事先需要 人工參與 ,把未分類的原始資料進行分類。此即是“監督”二字的要義所在,需要人工“監督”才能完成演算法的訓練。
非監督學習 (Unsupervised Learning)
同樣是以水果舉例。
同樣分為兩步,區別在於,這裡輸入的資料是 未分類 過的(也未打標籤)。機器學習演算法需要 自己完成分類的工作 ,並從中找出資料中的模式(往往是我們無法解釋和說明的)。非監督學習通常可以用於 聚類 ——識別各個類別之下資料的相似性並由此分類,也可以用於 異常識別 ——例如排除資料集中的異常值(視訊中的例子是欺詐性交易)。
這裡,一句話總結:監督學習適用於事後對資料 闡釋性分析 和對未來的 預測 ,非監督學習則更適合發現數據的 內在規律 和 結構 。
然而,實際情況中的影響因素往往更復雜,要解決的問題也往往不止是確定既有的固定關係。有時,需要我們在沒有訓練資料的情況根據實際情況去不斷優化策略(有點類似於我們人類的熟能生巧)。因此,這裡引進了另一個概念:“ 強化學習 ”。
強化學習 (Reinforcement Learning)
這裡以選擇最優運輸路線為例。
可知影響運輸結果的因素有很多,包括天氣、道路擁堵、交通工具、食品儲存等等。同時,我們也 沒有先驗資料來 訓練演算法和檢驗演算法的優越性。那麼這裡的強化學習演算法,就引入了一個 新的維度 : 時間 ,來幫助我們在實際情況中通過 不斷迭代 來優化演算法。
強化學習演算法可以說是 介於監督演算法和非監督演算法之間 。它既不像非監督演算法一樣完全不使用標籤,也不像監督演算法一樣預先打好標籤,這裡的標籤是 延時 (delayed)打上的。就像圖中所標出的那樣,每個環節的標籤T(也可以稱為 反饋 )由下一個環節來標記。
我個人的理解是,所謂的強化學習演算法的 核心 ,就是 一個環環相扣的負反饋系統 。學過生物的同學大概能理解的意思,生物內部環境的穩態就是通過負反饋機制來實現的。
而當模式識別網路(神經網路)和基於強化學習框架的實時環境結合在一起,就是所謂 深度強化學習 。我的理解是,和非監督學習演算法類似,前者相當於Step1的模式識別部分,而後者相當於Step2——不斷提供反饋來優化演算法。
至於這一演算法有多牛逼嘛,看阿爾法狗就知道了。
-----------------------------------------------------
介紹完這些基本概念後,下面就進入 正題 了。有一些 數學知識 必須瞭解。
馬爾科夫鏈 (Markov Chain)
對於強化學習來說,馬爾科夫鏈是個很重要的概念。正是基於這個概念,才發展出演算法和外界之間 溝通 和 反饋 的方式。
馬爾科夫鏈究竟是什麼呢?簡單來說,就是用來描述 一連串相互關聯的事件(狀態) 的一種抽象模型。其中每個事件(狀態)已經發生的前提下,接著會發生哪個事件(切換到哪個狀態)的概率分佈是 已知 的。
好吧,如果概率統計裡沒學過這一課的同學,估計此時已經百分百暈了。拿現實中的例子來舉例,就比方說,天氣預報吧。首先我們假定只有兩種天氣:晴天和雨天,並且前一天下雨後第二天放晴的概率是0.2,繼續下雨的概率是0.8;前一天晴天第二天下雨的概率是0.4,繼續放晴是0.6。那麼,根據今天的天氣,我們是不是能把未來七天每天放晴和下雨的概率都算出來了?OK,這未來七天的天氣狀態,就是一條簡單的馬爾科夫鏈。
必須注意兩點,一、我們計算出來的只是概率分佈, 依舊無法確定 給出每天的天氣;二、每天的天氣概率情況 只取決於前一天 的天氣。
現在可以結合一下視訊裡的示意圖來看了,這裡的轉移矩陣(Transition Matrix)給出了狀態間互相轉移的概率分佈,右下角則展示了每多走一步後我們來到A、B、C三個節點的可能性。
馬爾科夫決策過程(Markov Decision Process)
馬爾科夫決策過程是馬爾科夫鏈的擴充套件,在原基礎上加入了 行動(Action) 和 獎勵/反饋(Reward) 。相應的轉移矩陣也產生了變化,下一個狀態的概率分佈 不僅取決於上一個狀態還取決於採取的行動。而從環境得到的反饋則告訴我們這一步到底是好(正向反饋)還是壞(負向反饋)——所謂 趨利避害 ,下次就可以避免在同一狀態下采取同樣的行動。那麼最終在不斷 最大化獎勵 的過程中,我們就獲取了 最優策略 。
OK,以上就是導論課的所有內容。
有理解不當或闡述的錯誤的地方,還望大牛們不吝指正。
感謝閱讀~