1. 程式人生 > >【機器學習系列文章】第5部分:強化學習

【機器學習系列文章】第5部分:強化學習

目錄

你做到了!

結束思考

探索和開發。馬爾可夫決策過程。Q-learning,政策學習和深度強化學習。

“我只吃了一些巧克力來完成最後一節。”

在有監督的學習中,訓練資料帶有來自某些神聖的“主管”的答案。如果只有這樣的生活!

強化學習(RL)中沒有答案關鍵,但你的強化學習代理仍然必須決定如何執行其任務。在沒有現有培訓資料的情況下,代理可以從經驗中學習。它通過試錯來收集訓練樣例(“這個動作很好,行動很糟糕”)因為它試圖完成任務,目的是最大化長期獎勵

在人類機器學習的最後一節中,我們將探討:

  • 勘探/開發權衡
  • 馬爾可夫決策過程(MDP),RL任務的經典設定
  • Q-learning,政策學習深度強化學習
  • 最後,價值學習問題

最後,我們一如既往地編制了一些最喜歡的資源,以便進一步探索。

讓我們把機器人滑鼠放在迷宮中

考慮強化學習的最簡單背景是具有明確目標和分數系統的遊戲。

假設我們正在玩一個遊戲,我們的滑鼠?正在迷宮結束時尋求乳酪的最終獎勵(?+ 1000點),或沿途的水獎勵較少(?+ 10點)。同時,機器人滑鼠希望避免觸電的位置(⚡-100點)。

獎勵是乳酪。

經過一番探索,老鼠可能會發現三個水源的迷你天堂聚集在入口附近,並花費所有的時間利用這些發現,不斷攫取這些水源的小獎勵,永遠不再進入迷宮追求更大的獎金。

但是正如你所看到的那樣,滑鼠會在迷宮中進一步錯過一個更好的綠洲,或最終的乳酪終極獎勵!

這帶來了勘探/開發權衡。一個簡單的探索策略是滑鼠在大多數時間(例如,80%的時間)採取最著名的動作,但偶爾會探索一個新的,隨機選擇的方向,即使它可能遠離已知的獎勵。

這種策略被稱為epsilon-greedy策略,其中epsilon是代理採取隨機選擇的行動的時間百分比,而不是採取最有可能最大化獎勵的行動,因為它知道到目前為止(在這種情況下,20 %)。我們通常從很多探索開始(即epsilon的值更高)。隨著時間的推移,當老鼠更多地瞭解迷宮以及哪些行為產生最長期的獎勵時,將epsilon穩定地降低到10%甚至更低是有意義的,因為它開始利用它所知道的東西。

重要的是要記住,獎勵並不總是立竿見影的:在機器人 - 滑鼠示例中,您可能需要走很長一段時間才能走過迷宮並在到達乳酪之前有幾個決策點。

代理人觀察環境,採取行動與環境互動,並獲得積極或消極的回報。圖片來自伯克利的CS 294:John Schulman和Pieter Abbeel的深度強化學習

馬爾可夫決策過程(MDP)

滑鼠在迷宮中徘徊可以形式化為馬爾可夫決策過程,這是一個從州到州指定轉移概率的過程。我們將通過參考我們的機器人滑鼠示例來解釋它。MDP包括:

  1. 一組有限的狀態。這些是我們的滑鼠在迷宮中的可能位置。
  2. 每個州都有一系列行動。這是走廊中的{前進,後退}和十字路口上的{前,後,左,右}。
  3. 國家之間的過渡。例如,如果你在十字路口離開,你最終會處於一個新的位置。這些可以是一組連結到多個可能狀態的概率(例如,當你在神奇寶貝遊戲中使用攻擊時,你可能會錯過,造成一些傷害,或造成足夠的傷害來擊倒你的對手)。
  4. 與每次轉換相關的獎勵。在機器人 - 滑鼠示例中,大多數獎勵為0,但如果您到達有水或乳酪的點,則它們是正的,如果到達觸電點則為負。
  5. 折扣係數γ介於0和1之間。這可以量化即時獎勵和未來獎勵之間的重要性差異。例如,如果γ是.9,並且在3個步驟後獲得5的獎勵,則該獎勵的現值為.9³* 5。
  6. Memorylessness。一旦知道當前狀態,就可以擦除滑鼠在迷宮中行進的歷史,因為當前馬爾可夫狀態包含來自歷史的所有有用資訊。換句話說,未來與現在的過去無關”。

現在我們知道MDP是什麼,我們可以正式確定滑鼠的目標。我們試圖在長期內最大化獎勵總額:

讓我們按期限來看這個和詞。首先,我們總結所有時間步驟t。我們現在將γ設定為1並忘記它。r(x,a)是獎勵函式。對於狀態X和行動(即,走在一個十字路口左),它為您提供了採取這一行動相關的獎勵一個在狀態X。回到我們的等式,我們試圖通過在每個州採取最佳行動來最大化未來獎勵的總和。

現在我們已經建立了強化學習問題並將目標正式化,讓我們探索一些可能的解決方案。

Q-learning:學習行動價值功能

Q-learning是一種技術,它根據動作值函式評估要採取的動作,該動作值函式確定處於某種狀態的值並在該狀態下采取某種動作。

我們有一個函式Q,它將一個狀態和一個動作作為輸入,並返回該狀態下該動作(以及所有後續動作)的預期獎勵。在我們探索環境之前,Q給出相同(任意)的固定值。但是,隨著我們更多地探索環境,Q給了我們一個狀態s的動作a值的更好和更好的近似值。我們繼續更新功能Q.

來自維基百科Q-learning頁面的這個等式非常好地解釋了這一點。它顯示了我們如何根據我們從環境中獲得的獎勵來更新Q的價值:

讓我們再次將其設定為1來忽略折扣因子γ。首先,請記住,Q應該通過選擇動作Q和之後的所有最佳動作向您展示全部獎勵。

現在我們來看看從左到右的等式。當我們在州st採取行動時,我們通過新增一個術語來更新Q(st,at)的值。該術語包含:

  • 學習率alpha:這是我們在更新價值時想要的積極性。當alpha接近0時,我們不會非常積極地更新。當alpha接近1時,我們只是用更新的值替換舊值。
  • 獎勵是我們有采取行動的獎勵,在狀態ST。因此,我們將此獎勵新增到我們的舊估算中。
  • 我們還添加了估計的未來獎勵,這是xt + 1所有可用操作的最大可實現獎勵Q.
  • 最後,我們減去Q的舊值,以確保我們只是通過估計的差異遞增或遞減(當然乘以α)。

現在我們對每個狀態 - 行動對進行了估值,我們可以根據我們的行動選擇策略選擇要採取的行動(我們不一定只選擇每次都能獲得最期望獎勵的行動,例如一個貪婪的探索策略我們會在一定比例的時間內採取隨機行動。

在機器人滑鼠示例中,我們可以使用Q學習來計算迷宮中每個位置的值以及每個位置處的動作{前進,後退,左,右}的值。然後我們可以使用我們的動作選擇策略來選擇滑鼠在每個時間步驟實際執行的操作。

政策學習:從州到行動的地圖

在Q學習方法中,我們學習了一個估計每個狀態 - 動作對的值的值函式

政策學習是一種更直接的選擇,我們學習一種政策功能π,它是從每個州到該州最佳相應行動的直接對映。把它看成是一種行為的政策:“當我觀察狀態小號,做的最好的事情是採取行動的一個 ”。例如,自動駕駛汽車的政策可能有效地包括:“如果我看到黃燈並且距離十字路口超過100英尺,我應該剎車。否則,繼續前進。“

一個政策是地圖從狀態到  行動。

因此,我們正在學習一種能夠最大化預期獎勵的功能。我們知道什麼才能真正擅長學習複雜的功能?深度神經網路!

來自Pixels的 Andrej Karpathy的Pong提供了一個很好的演練,使用深度強化學習來學習Atari遊戲Pong的策略,它將來自遊戲的原始畫素作為輸入(狀態)並輸出向上或向下移動划槳的概率(動作) 。

如果你想深入瞭解RL,請通過Andrej的帖子。您將在130行程式碼中實現一個2層策略網路,並將學習如何插入OpenAI的Gym,它允許您快速啟動並執行您的第一個強化學習演算法,在各種遊戲中進行測試,並瞭解其效能與其他提交的比較。

DQNs,A3C和深RL的進步

2015年,DeepMind採用了一種稱為深度Q網路(DQN)的方法,這種方法使用深度神經網路逼近Q函式,在許多Atari遊戲中擊敗人類基準:

我們證明,僅接收畫素和遊戲分數作為輸入的深度Q網路代理能夠超越所有先前演算法的效能,並且在49個遊戲中達到與專業人類遊戲測試者相當的水平,使用相同的演算法,網路架構和超引數。這項工作彌合了高維度感官輸入和行動之間的鴻溝,從而產生了第一個能夠學習在各種具有挑戰性的任務中表現出色的人工智慧代理。(Silver et al。,2015

以下是DQN代理在不同領域中相對於線性學習者和人類的位置的快照:

這些是針對專業人類遊戲測試者的標準化:0%=隨機遊戲,100%=人類表現。資料來源:DeepMind的DQN論文,通過深度強化學習進行人機控制

為了幫助您建立一些關於如何在RL研究中取得進步的直覺,下面是一些改進非線性Q函式逼近器嘗試的例子,可以提高效能和穩定性:

  • 體驗重播,通過隨機抽取較長的先前觀察序列和相應的獎勵來學習,以避免過度擬合最近的經歷。這個想法受到生物大腦的啟發:老鼠穿越迷宮,例如,在睡眠期間“重放”神經活動的模式,以優化迷宮中的未來行為。
  • 遞迴神經網路( RNN 增強DQN。當一個特工只能看到它周圍的環境時(例如機器人 - 滑鼠只看到迷宮的某一部分而不是整個迷宮的鳥瞰圖),代理人需要記住更大的圖片,以便記住事物的位置。這類似於人類嬰兒如何發展物體永續性,即使它們離開嬰兒的視野,也知道存在的東西。RNN是“經常性的”,即它們允許資訊在較長期的基礎上持續存在。這是一個令人印象深刻的視訊,介紹了一個深度反覆出現的Q-network(DQRN)播放Doom。

2016年,就在DQN論文釋出一年後,DeepMind釋出了另一種名為Asynchronous Advantage Actor-Critic(A3C)的演算法,該演算法在訓練了一半之後超過了Atari遊戲的最新表現(Mnih et al。,2016))。A3C是一個演員評論演算法,它結合了我們之前探索過的兩種方法中的最佳方法:它使用一個演員(一個決定如何行動的政策網路)和一個評論家(一個決定事物價值的Q網路)。亞瑟朱利安尼(Arthur Juliani)對A3C的具體工作方式有一個很好的寫作。A3C現在是OpenAI的Universe Starter Agent

從那以後,已經有無數令人著迷的突破 - 從AI 發明自己的語言教自己走在各種各樣的地形。這個系列只是劃傷了RL的前沿表面,但希望它可以作為進一步探索的起點!

作為一個分開的註釋,我們想分享這個令人難以置信的DeepMind代理商的視訊,這些代理人學會了走路......增加了聲音。拿一些爆米花,調高音量,見證人工智慧的全部榮耀。

練習材料和進一步閱讀

程式碼

  • 來自Pixels的 Andrej Karpathy的Pong將讓您第一次使用強化學習代理快速上手。正如文章所描述的那樣,“我們將學習用PG,從頭開始,用畫素,用深度神經網路玩一個ATARI遊戲(Pong!),整個事情是130行Python只使用numpy作為依賴(要點連結)。“
  • 接下來,我們強烈推薦Arthur Juliani的Tensorflow簡單強化學習教程。它通過使用TensorFlow實現DQN,策略學習,演員評論方法和探索策略。嘗試理解然後重新實現所涵蓋的方法。

閱讀+講座

你做到了!

如果你已經做到這一點,那就是我們所希望的所有獎勵。 我們希望您喜歡這個系列作為機器學習的介紹。如果你準備好看看這個兔子洞有多深,我們已經在附錄中編了一些我們最喜歡的ML資源。 請不要猶豫,伸手與想法,問題,意見,或者你喜歡的GIF! 直到下一次, 維沙爾和薩默爾

結束思考

有一個基本問題激發了這個系列,我們也想向你提出這個問題。 

作為人類,我們的目標功能是什麼?我們如何定義 在現實生活中最大化的獎勵?除了基本的愉悅和痛苦,我們對獎勵的定義也往往包括諸如是非,滿足,愛,靈性和目的等混亂的事物。

自古以來,一直致力於解決我們的客觀功能是什麼或應該是什麼的知識領域,它被稱為道德哲學。道德哲學的核心問題是:我們應該做什麼?我們該怎麼生活?哪些行為是對還是錯?答案很清楚:這取決於你的價值觀。

隨著我們創造越來越多的高階人工智慧,它將開始脫離像Atari遊戲這樣的玩具問題領域,其中“獎勵”由遊戲中贏得多少點清晰地定義,並且在現實世界中越來越多地存在。例如,自動駕駛汽車必須通過更復雜的獎勵定義來做出決策。起初,獎勵可能與“安全到達目的地”有關。但是,如果被迫選擇停留路線並撞擊五個行人或轉彎並撞到一個,車輛是否應該轉彎?如果一個行人是小孩怎麼辦?鬆散的,或下一個愛因斯坦的槍手?這是如何改變決定的?為什麼?如果轉彎也會摧毀一件有價值的藝術?當我們試圖定義目標函式時,突然間我們遇到了一個更為複雜的問題,

在本系列中,我們探討了為什麼很難明確地向計算機指定貓的樣子 - 如果被問及我們如何瞭解自己,答案是,最簡單的是“直覺” - 但我們已經探索了機器視覺方法來教授機器自己學習這種直覺。同樣,在機器道德領域,可能很難確切地指定如何評估一個動作與另一個動作的正確性或錯誤性,但也許機器可能以某種方式學習這些值。這被稱為價值學習問題,它可能是人類必須解決的最重要的技術問題之一。

有關此主題的更多資訊,請參閱此關於人工智慧風險的概要文章。當你進入使機器變得更聰明,更聰明的世界時,我們鼓勵你記住,人工智慧的進步是一把雙刃劍,對雙方都特別敏銳。