iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 1
0
AI & Data

強化學習系列 第 1

強化學習筆記 Day 1

前言

本系列文為個人研究強化學習時,所作的一些筆記,主要的閱讀材料為 Sutton 所著的 Reinforcement Learning: An Introduction。這本書可以在 Amazon 上購買 ,也可以在網路上找到草稿。另外,如果有除了 Sutton 著作以外的相關資料,會附在該日的參考資料中。

主要目標

在理解強化學習的理論之餘,希望可以作到另外兩件事

  • 理解強化學習所奠基的數學原理:
    在使用任何一種方法前,需要知道該方法的適用情境與限制條件,而這些東西通常是數學,因此會敘述相關的內容。
  • 使用 Python 實作:
    看懂理論與實作通常有一段距離,希望可以在實作的過程中彌補。

簡介

強化學習本身是一種透過 與環境互動 來學習的演算法,透過觀察環境的狀態,我們可以決定在這個狀態下,應該採取什麼動作。我們會從環境中,獲得關於這個動作的回饋,進一步決定我們下一次遇到這種狀態時,應該要繼續採去這個動作,或是換另外一種動作。我們舉個實際中的例子,幫助理解上面的內容:

有一位美國的心理學家 Skinner (史金納),他曾經做過一個叫 Skinner Box 的實驗裝置 https://chart.googleapis.com/chart?cht=tx&chl=%5E%7B%5B1%5D%7D 。史金納把一隻飢餓的老鼠放到箱子中,箱子中有一根桿子,只要壓下桿子,就會有食物掉到箱子中。史金納的實驗結果,發現老鼠學會按下桿子,就會跑出食物。

對應到強化學習中,可以想像老鼠有一種狀態(飢餓)、兩種動作(壓桿子、發呆)、回饋(出現食物、什麼都沒有)。老鼠在飢餓的狀態下,壓桿子會出現食物,是一種正向回饋,因此會促進飢餓狀態下壓桿子;反之,發呆不會出現東西,相對起來是一種負向回饋,所以會減少在飢餓狀態下發呆。

上述的例子,是一個相對簡單的情況(一個狀態、兩個動作),那我們要怎麼在複雜的情況下,仍然保證強化學習在某個狀態下,知道採取什麼動作呢?為了解決這個問題,往後幾天將會說明馬可夫決策過程,根據 Sutton 所述, 90% 的強化學習演算法都基於這個決策過程,所以理解這個東西,我想是有幫助的。

參考資料

https://chart.googleapis.com/chart?cht=tx&chl=%5E%7B%5B1%5D%7D Skinner Box :這個實驗發現 操作制約 這種學習方式。


下一篇
強化學習筆記 Day 2
系列文
強化學習30

尚未有邦友留言

立即登入留言