[機器學習 ML NOTE] Reinforcement Learning 強化學習(DQN原理)

GGWithRabitLIFE
雞雞與兔兔的工程世界
13 min readAug 17, 2018

--

我發現我寫的文章好像沒有照著自己的學習順序來寫,前面一些比較基本的CNN,RNN都還沒寫就直接寫到Reinforcement Learning了,哈哈,因為我開始寫文章的時候前面一些Project的實作都做完了,然後現在剛好在實作RL的Project,所以就先來寫RL的原理跟實作啦!我之後會努力補完前面的東西的> <
P.S.這篇可能會講比較多抽象的東西…原理的部份我也花了很多時間去理解,然而我只Focus在DQN的部份…RL還有很多其他實現的方法跟原理,我還需要花一點時間去理解,這篇介紹的是DQN原理,下一篇會介紹怎麼用tensorflow來實作DQN在Atari Game上面,不想看原理的就直接跳下篇吧XD

前言

目前的機器學習算法大致可分為3種,以下為簡單的概念

  1. Supervised Learning (監督式學習): 訓練資料必需有input跟label(答案),讓機器去mapping出一個最好的模型,常用的演算法為分類、回歸等演算法
  2. Unsupervised Learning (非監督式學習): 訓練資料只有input沒有label(答案),讓機器從訓練資料中找出規則,常用的演算法為集群演算法
  3. Reinforcement Learning (強化學習): 從現在的環境來決定行為,是一種互動式的學習過程。

Reinforcement Learning

強化學習其實就是訓練一個AI 可以通過每一次的錯誤來學習,就跟我們小時候學騎腳踏車一樣,一開始學的時候會一直跌倒,然後經過幾次的失敗後,我們就可以上手也不會跌倒了。我們直接上圖來介紹(此圖來自於台大ADLxMLDS課程講義)

深度強化學習概要圖

從上圖可以看出來,大腦代表agent,地球代表environment(環境),reward(獎勵)就是環境所提供的反饋,reward由模型設計者定義,reward的定義對強化學習來說是個很重要的一環。以下用個簡單的例子來解釋。

  • Agent部份(大腦)

簡單來說,就是訓練出一個agent(大腦)可以去適應environment(環境)

  1. 會將environment環境每一個時間點的observation(觀察)的集合當作環境的狀態(State)

--

--