上圖是一個一般的決策過程,裏面包括代理和環境。
這個過程有兩步,首先你的代理會觀察環境的一些特質,有時是傳感器感知到的,有些是輸入的用戶特徵。 然後代理會選擇一個行爲,將這個行爲反饋給環境。 之後代理不僅僅會收到在這個行爲下的環境的反饋,同時還以某些方式,影響着環境改變着環境。 例如,你不僅收到了用戶是否點擊了你的橫幅廣告的反饋,還影響着你的用戶基礎。
圖中這條線下面一般我們是沒有辦法控制的,環境,環境中的其他代理,其他變量。我們可能都控制不了。 這個就像一個黑盒子,我們沒有辦法知道它的內部原理。不知道他是如何觀察的,如何給出反饋的。 而在這條線上面,agent 這裏可以做任何事,可以用任何監督式學習方法。
強化學習除了可以推薦電影,書,新聞,在機器人領域更是有很多應用,可以教機器人踢足球,做煎餅等等等。
自動駕駛也是另一種 dynamic system,另一種機器人,你要訓練他如何不撞東西,開得更有效率,用更少的能源,更有效的時間。
例如我們有一個雙足機器人,我們要教它如何走,不摔跤。
這時可以這樣定義它的強化學習:
observation :就是機器人能感知的東西,例如肢體的角度,攝像頭的輸入。
action: 就是你的機器人發送給運動子系統的任何信號,例如當機器人想要彎曲時會傳送電壓給各個關節上的電機。
feedback:這時你想要最大化的反饋可以定義爲你的機器人在摔倒前所前進的距離。
雖然機器人和橫幅廣告是完全不同的領域,但是同樣可以形式化爲一個相同的決策過程。
還有就是你會發現強化學習中80%的論文都研究如何教 agent 玩遊戲。
你要如何定義遊戲 agent 的 observation,action,feedback 呢?
observation:一系列的遊戲畫面或者聲音 action:控制桿按鈕 feedback:遊戲得分
強化學習在棋牌遊戲中也有成功的應用:AlphaGo ,TG Gammon,Simel
另外,在用深度學習優化不可微損失函數時,也可以用強化學習。
聽起來很理論,但是實際應用還很廣,例如在翻譯系統中,通常是要最小化交叉熵等損失函數。
而強化學習可以最大化你想要的一些其他指標,如 Blair。它可以讓你有更大的自由可以決定優化什麼目標。