一、強(qiáng)化學(xué)習(xí)
? ? ? ? 強(qiáng)化學(xué)習(xí)包含多種算法,比如有通過行為的價(jià)值來選取特定行為的方法, 包括使用表格學(xué)習(xí)的 q learning, sarsa, 使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的 deep q network, 還有直接輸出行為的 policy gradients, 又或者了解所處的環(huán)境, 想象出一個(gè)虛擬的環(huán)境并從虛擬的環(huán)境中學(xué)習(xí) 等等.

參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-01-RL/
二、強(qiáng)化學(xué)習(xí)方法匯總
? ? ? ? 1. Model-free 中, 機(jī)器人只能按部就班, 一步一步等待真實(shí)世界的反饋, 再根據(jù)反饋采取下一步行動(dòng). 而 model-based, 他能通過想象來預(yù)判斷接下來將要發(fā)生的所有情況. 然后選擇這些想象情況中最好的那種. 并依據(jù)這種情況來采取下一步的策略。Model-based可以看作model-free的強(qiáng)化學(xué)習(xí),它只是多了一道程序, 為真實(shí)世界建模。

????????2.基于概率是強(qiáng)化學(xué)習(xí)中最直接的一種, 他能通過感官分析所處的環(huán)境, 直接輸出下一步要采取的各種動(dòng)作的概率, 然后根據(jù)概率采取行動(dòng), 所以每種動(dòng)作都有可能被選中, 只是可能性不同。 而基于價(jià)值的方法輸出則是所有動(dòng)作的價(jià)值, 選擇最高價(jià)值的動(dòng)作。 而基于概率的, 即使某個(gè)動(dòng)作的概率最高, 但是還是不一定會(huì)選到他。
? ? ? ? ? ? 另外,對(duì)于選取連續(xù)的動(dòng)作,基于價(jià)值的方法是無能為力的。
? ? ? ? ? ? Actor-critic結(jié)合了兩類方法的優(yōu)點(diǎn),actor 會(huì)基于概率做出動(dòng)作, 而 critic 會(huì)對(duì)做出的動(dòng)作給出動(dòng)作的價(jià)值, 這樣就在原有的 policy gradients 上加速了學(xué)習(xí)過程。

? ? ? ? 3.?回合更新指的是開始后, 要等待結(jié)束, 然后再總結(jié)這一回合中的所有轉(zhuǎn)折點(diǎn), 再更新的行為準(zhǔn)則.。而單步更新則是在進(jìn)行中每一步都在更新, 不用等待結(jié)束。因?yàn)閱尾礁赂行? 所以現(xiàn)在大多方法都是基于單步更新. 比如有的強(qiáng)化學(xué)習(xí)問題并不屬于回合問題。

? ? ? ? 4.?在線學(xué)習(xí), 就是指我必須本人在場(chǎng), 并且一定是本人邊玩邊學(xué)習(xí), 而離線學(xué)習(xí)是你可以選擇自己玩, 也可以選擇看著別人玩, 通過看別人玩來學(xué)習(xí)別人的行為準(zhǔn)則, 離線學(xué)習(xí) 同樣是從過往的經(jīng)驗(yàn)中學(xué)習(xí), 但是這些過往的經(jīng)歷沒必要是自己的經(jīng)歷, 任何人的經(jīng)歷都能被學(xué)習(xí). 或者我也不必要邊玩邊學(xué)習(xí), 我可以白天先存儲(chǔ)下來玩耍時(shí)的記憶, 然后晚上通過離線學(xué)習(xí)來學(xué)習(xí)白天的記憶。

三、Q Learning
? ? ? ? Q Learning可以看作一個(gè)決策過程,它根據(jù) Q 表來選取最大的那個(gè)來對(duì)當(dāng)前行為進(jìn)行決策。

? ? ? ? Q Learning通過如下規(guī)則更新Q表。


參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-03-q-learning/
四、Sarsa
? ? ? ? Sarsa和Q Learning類似,只不過Sarsa的更新規(guī)則有點(diǎn)差別

五、Sarsa(lambda)
? ? ? ? lambda是一個(gè)動(dòng)作影響力隨距離衰變的參數(shù),取值在0到1之間。Sarsa其實(shí)是Sarsa(0)。

參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-05-sarsa-lambda/
六、DQN (Deep Q Learning)
? ? ? ? DQN結(jié)合了神經(jīng)網(wǎng)絡(luò)和Q Learning,它使用神經(jīng)網(wǎng)絡(luò)來生成Q值,而不是使用表來存儲(chǔ)。

? ??????DQN 有一個(gè)記憶庫用于學(xué)習(xí)之前的經(jīng)歷,每次 DQN 更新的時(shí)候, 可以隨機(jī)抽取一些之前的經(jīng)歷進(jìn)行學(xué)習(xí)。隨機(jī)抽取這種做法打亂了經(jīng)歷之間的相關(guān)性, 也使得神經(jīng)網(wǎng)絡(luò)更新更有效率。Fixed Q-targets 也是一種打亂相關(guān)性的機(jī)理, 如果使用 fixed Q-targets, 我們就會(huì)在 DQN 中使用到兩個(gè)結(jié)構(gòu)相同但參數(shù)不同的神經(jīng)網(wǎng)絡(luò), 預(yù)測(cè) Q 估計(jì) 的神經(jīng)網(wǎng)絡(luò)具備最新的參數(shù), 而預(yù)測(cè) Q 現(xiàn)實(shí) 的神經(jīng)網(wǎng)絡(luò)使用的參數(shù)則是很久以前的.?

參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-06-DQN/
七、Policy Gradients
? ? ? ? Policy Gradients策略梯度,與Q Learning不同,它不通過分析獎(jiǎng)勵(lì)值, 直接輸出行為。所以它能夠在一個(gè)連續(xù)區(qū)間內(nèi)挑選動(dòng)作, 而基于值的, 比如 Q-learning, 不適合在無窮多的動(dòng)作中計(jì)算價(jià)值, 從而選擇行為。
? ? ? ? 由于Policy Gradients直接輸出行為,所以它沒有“誤差”一說。在做出行為后,它通過獎(jiǎng)懲信息來決定是加強(qiáng)對(duì)當(dāng)前輸出行為的選擇,還是進(jìn)行削弱。(回合制,回合結(jié)束后才有獎(jiǎng)懲信息)

參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-07-PG/
八、Actor Critic
? ? ? ?可以把這里的Actor看作policy gradient,critic看作Q learning。Actor負(fù)責(zé)決策,做出行為,然后由critic對(duì)actor的行為進(jìn)行評(píng)價(jià)。Critic 通過學(xué)習(xí)環(huán)境和獎(jiǎng)勵(lì)之間的關(guān)系, 能看到現(xiàn)在所處狀態(tài)的潛在獎(jiǎng)勵(lì), 所以用它來指點(diǎn) Actor 便能使 Actor 每一步都在更新, 如果使用單純的 Policy Gradients, Actor 只能等到回合結(jié)束才能開始更新。
? ? ? ?Actor-Critic 涉及到了兩個(gè)神經(jīng)網(wǎng)絡(luò), 而且每次都是在連續(xù)狀態(tài)中更新參數(shù), 每次參數(shù)更新前后都存在相關(guān)性, 導(dǎo)致神經(jīng)網(wǎng)絡(luò)只能片面的看待問題, 甚至導(dǎo)致神經(jīng)網(wǎng)絡(luò)學(xué)不到東西。

https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-08-AC/
九、Deep Deterministic Policy Gradient
? ? ? ? DDPG與Actor-Critic類似,但是它使用了兩個(gè)網(wǎng)絡(luò)——估計(jì)網(wǎng)絡(luò)和現(xiàn)實(shí)網(wǎng)絡(luò)。

參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-09-DDPG/
十、 Asynchronous Advantage Actor-Critic (A3C)
? ? ? ??A3C 是一種平行方式, 它采用的是Actor-Critic形式,使用并行的方式訓(xùn)練練多對(duì),然后再將并行訓(xùn)練的這些Actor和Critic總結(jié)到一起,形成最終的一對(duì) Actor 和 Critic。

參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-10-A3C/
十一、 AlphaGo Zero 為什么更厲害?
參考鏈接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-11-AlphaGo-zero/