周莫煩 - 秒懂 AI 強化學習
強化學習原理講解
內容簡介
作者介紹
適合人群
你將會學到什麼
購買須知
-
秒懂強化學習 Reinforcement learning
-
什麼是强化學習? Reinforcement Learning
什麼是强化(增強式學習)學習?莫煩老師告訴我們: 強化學習的原理就像人會從錯誤中不斷學習一樣。 讓計算機透過一次又一次的行為嘗試獲得高分,而每一次的行為會獲得該行為的回饋分數標籤,它開始記住哪些行為會獲得更高的分數,如此不斷學習與嘗試企圖達到最高分。 現在較有名的強化學習有包含透過價值行為學習的 Q learning, Sarsa Deep Q Network 直接輸出行為的 Policy Gradients, 了解所處的環境, 想像一個虛擬的環境進行學習的 Model based RL reinforcement learning. 詳細的文字教程: https://morvanzhou.github.io/tutorials 强化學習教程: https://www.youtube.com/playlist?list=PLXO45tsB95cJ...
-
强化學習方法整理 Reinforment learning
強化學習主要可以分成不理解環境的 Model Free RL,和理解環境的 Model Based RL這兩種。其中不理解環境 Model Free RL 只能透過行為實驗獲得積分的回饋標籤,而理解環境 Model Based RL 像因爲其出名的 Apha- Go 使用的模式,它是創造了一個模擬的環境,而在模擬的環境中進行測試,預判接下來的情況,測試出最適合的行為之後再進行行動,有點像是有想像力一樣。 另外選取行為的方式也可分為基於概率或基於價值這兩大類,或這現在最新兩種混合在一起的 Actor-Critic 這類。 還有給分回饋機制也可分成回合更新與單步更新:回合更新就像是走錯一步,要等一整盤棋下晚才會之機器才得到回饋標籤?單步更新就是它每下一步就可以獲得回饋標籤。 學習的方式也有分自己得在線上的在線學習,或是也可透過別的機器的經驗或看著別人做來學習的離線學習。
-
什麼是 Q Learning (Reinforcement Learning 强化學習)
强化學習 Reinforcement learning 中有很多種算法, 都是讓機器人一步步学着处理问题, 這次我們說說比較有名的 Q learning. Q learning 透過 Q 表的內部評分系統來決定接下來要採取的行動: 用已經發生的狀況所獲得的 Q 值乘上一個衰減值(Gamma)加上獲得的獎勵值 R 來當作現實行為的 Q, 差距就是 現實行為的 Q 減去 Q 表之前紀錄的估計值 新的 Q 就是舊的 Q 加上學習效率係數(Alpha)乘上前面敘述的差距。 記錄與選擇每次的行為,以達到目標。內容也敘述了學習效率係數如何影響 Q learning 時行為的決策。也有分享一小段 Q learning 的程式碼。 程式碼中有提到,Q learning 有個參數是可以設定它只有多少機率照著估計的最大 Q 值走,其他時間也許憑著運氣看有沒有機會找到一些捷徑完成任務獲得獎勵。 詳細的文字教程: https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-...
-
什麼是 Sarsa (Reinforcement Learning 强化學習)
我們來說說强化學習中一個和 Q learning 類似的算法,叫做 Sarsa。不同於 Q learning,Sarsa 是個『說到做到』的人工智慧,程式碼與前述的 Q learning 很像,不同的是 Sarsa 是沒有要用機率嘗試是否有捷徑,它一定跟隨著 Q 值最大的行為走,所以相較於 Q learning 它是一種比較小心達到目的的機器學習方法。 Q learning 介绍: https://www.youtube.com/watch?v=HTZ5xn12AL4&index=17&list=PLXO45tsB95cIFm8Y8vMkNNPPXAtYXwKin
-
什麼是 Sarsa(lambda) (Reinforcement Learning 強化學習)
今天我們來說說强化學習中基於 Sarsa 的一種提升速度的方法, 叫做 sarsa lambda. Sarsa lambda 是個衰減值,加權達到任務完成前每個腳步的重要比重,越接近人物完成的行為加權比重越大,使機器學習更有效率。Sarsa lambda 就像是單步學習與回合學習的中間值。 簡介: https://youtu.be/AANzrFOQIiM 詳细的文字教程: https://morvanzhou.github.io/tutorials/machine-learning/reinf...
-
什麼是 DQN (Reinforcement Learning 强化學習)
今天我們說說强化學習中的一種强大武器, Deep Q Network 簡稱為 DQN. Google Deep mind 團隊就是靠著 DQN 使計算機玩電動玩得比我們還厲害. DQN 會被提出來就是因為傳統的 Q learning 會有個瓶頸,萬一發生的狀態與行為實在太多太複雜,會需要相當多的資源才能運算,相對地用類神經網路就可以解決這個問題。而 DQN 學習玩電動方法的根本原因是因為 Experience replay 與 Fixed Q-target。Experience replay 就是將系統探索環境得到的數據存起來,然後隨機採樣樣本更新類神經網路的參數。Fixed Q-target 就是之前 Q learning 提到的現實行為 Q 中乘上 Gamma 的 Q 值用很久以前 Q 的參數,有了這兩種手段,DQN 在打遊戲中的效率會大大的提升。 詳细的文字教程: https://morvanzhou.github.io/tutorials/machine-learning/...
-
什麼是 策略梯度 Policy Gradients (Reinforcement Learning 强化学习) - YouTube
今天来說强化學習家族中另一類型算法, 叫做 Policy Gradients. 策略梯度 Policy Gradients 就是透過反向傳遞,使被選中過的行為下次更有可能發生,也透過獎懲的方式使達成任務的行為也更又可能發生。 詳细的文字教程: https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/ Code in Github: https://...
-
什麼是 Actor Critic (Reinforcement Learning 强化学习)
今天我們會來說說強化學習中的一種結合體,叫做『Actor Critic 演員評論家』。它結合了以值為基礎,比如 Q learning,還有以動作概率為基礎,比如策略梯度這兩類的強化學習算法。 Actor Critic 的 Actor 前身就是策略梯度,這能讓他在連續動作中毫不猶豫地選擇動作,而 Q learning 做這件事情會癱瘓。那為什麼不直接用策略梯度呢?原來 Actor Critic 的 Critic 前身就是以值為基礎的像 Q- Learning 的方法,這些方法可以進行單步更新,而傳統的策略梯度則是回合更新,這降低了學習效率。 現在我們有兩套不同的體系,Actor 和 critic 兩個。Critic 負責學習獎懲的機制,來加權 actor 的行為計算。Critic 因為透過單步的學習,可以看到環境中的『潛在的獎勵』,用它來指點 Actor 使 Actor 每一步都在跟新。 但是會碰到個問題,Actor Critic 涉及到兩個神經網路,而且每次都是在連續狀態下更新參數。參數更新的前後因為都有相關性,導致神經網路只能片面的看待問題,甚至導致神經網路學不到東西。Google Deep mind 為了解決這個問題所以改變了算法,加入了之前提到的 DQN 到系統裡面,這種新的算法叫做 Deep deterministic Policy Gradient ,成功地解決了在連續的動作下預測,學不到東西的狀態,所以接下來我們也來看看這種高級版本的 Deep deterministic Policy Gradient。 詳細的文字教程: https://morvanzhou.github.io/tutoria...
-
什麼是 Deep Deterministic Policy Gradient (DDPG) (Reinforcement Learning 强化学习) - YouTube
DDPG 最大的優勢就是可以在連續的狀態下更有效地學習,它吸收了 Actor Critic 裡可以單步更新的精華,也吸收了讓機器玩遊戲的 DQN 的精華,合併成一種新的算法,叫做 Deep Deterministic Policy Gradient (DDPG)。 我們將上述的 DDPG 拆成 Deep 與 Deterministic Policy Gradient 兩部份來看,而 Deterministic Policy Gradient 又能被細分成 Deterministic 和 Policy Gradient (策略梯度)兩部份,接下來我們來一個個分析: Deep 顧名思義就是走向更深的層次,的我們前面 DQN 有提到,是用一個記憶庫和兩套結構相同但是參數更新頻率不同的神經網路,能夠更有效地促進學習。我們也把這種思想運用到 DDPG 裡,使它也有這種優良的形式,只是更複雜些。Policy Gradient 我們也在之前影片中提過,相比其他的強化學習方法,他可以在連續的動作上進行動作的篩選,而且篩選的時候,根據學習到的動作分佈,隨機進行篩選。而 Deterministic 可以幫忙在連續動作中輸出一個動作值。 現在我們來說說 DDPG 中所用到的神經網路,其實和我們之前提到 Actor critic 差不多,也需要基於策略(Policy)的神經網路和基於價值(Value)的神經網路,但是為了體現 DQN 的思想,每一種神經網路都要再細分為兩個。 Policy Gradient 這邊我們有估計網路和現實網路,估計網路用來輸出實實的動作供 Actor 在現實中實行,而現實網路是用來更新價值網路系統的 所以我們再來看看價值網路系統這邊,我們也有狀態估計網路和狀態現實網路,他們都在輸出狀態的價值,而輸入端這邊會有點不同。狀態現實網路這邊是從動作現實網路的值進行輸入加上狀態的觀測值加以分析,狀態估計網路則是輸入 Actor 施加過的動作進行計算。 在實際運用中 DDPG 法的確提供的更有效的學習過程。 詳细的文字教程: https://morvanzhou.github.io/tutorials/mac...
-
什麼是 A3C (Asynchronous Advantage Actor-Critic) (Reinforcement Learning 强化学习) - YouTube
今天我們會來說強下學習一種有效利用計算資源並且能提升訓練效用的算法:Asynchronous Advantage Actor-Critic,簡稱 A3C。 我們先說點沒什麼關係的:大家知道平行宇宙?想像現在有三個平行宇宙,這意味著在這三個平行宇宙中有三個『你』,而且你可能在電腦前面待了很久。如果這三個你在同一時間分別在學不同的東西,而且彼此還可以互相通信,讓彼此吸收學習的經驗,這樣學習是不是就更有效率了呢? A3C 採用的就是我們之前提到的 Actor critic 的形式,為了訓練一組 Actor critic,我們把他們複製成很多份,之後就像在平行宇宙中一樣,讓他們各自學習和運算,最後經過所有這些學習經驗的總和,綜合考量後再做出行為的決策。這樣的計算方式往往比傳統的方式快上好多倍。 我們知道現在的計算機(電腦)都有雙核、四核、八核等,而一般的學習方式只有辦法用到一個核,但是利用 A3C 這種方法就可以把不同組 Actor critic 在不同的和尚同時進行運算,如此一來更有時間效率的學習。 詳细的文字教程: https://morvanzhou.github.io/tutorials/machine-learning/reinfor...
-
什麼是神經網路進化? What is Neuro-Evolution?
將進化和神經網路結合,在近幾年來相當熱門。大多數見到的神經網絡是一種計算機能夠理解的數學模型,這個模型將觀測到的信號通過類似電信號的方式正向傳播,獲取深層次的理解,然後輸出自己的判斷,最後通過對比自己的判斷和真實的數據,將誤差反向傳播,更新自己的網路參數。 但是生物中的神經網路就沒有這一套反向傳播的系統,它往往只是產生正向式的傳播,然後通過刺激產生新的網路連結,用這些連結來瞭解事物,這就是為什麼大家都說人工神經網路和生物神經網路不同的原因之一。但是早在二十一世紀初,科學家們早就將生物神經網路的這一套系統用程序給實現了。 如果用進化理論來實現類神經網路的更新,我們之前提過兩方法:遺傳算法和進化策略,這兩種方式都有了突破性的發展。遺傳算法我們會有來自父母的兩組神經網路,通過將這兩個神經網路交叉配對產生寶寶的神經網路,然後將寶寶的神經網路變異來獲取新的能力,最後將所有寶寶放入殘酷的現實,讓他們適者生存不適者淘汰。 如果使用進化策略,我們更偏向於先固定神經網路的結構,讓這個結構進行產卵,生出很多跟原始神經網路結構相同,連結強度稍為不同的寶寶網路,這些寶寶網路肯定有好有壞,有趣的地方來了,下一代的爸爸,是所有寶寶的綜合體,這個綜合體中好寶寶佔有的連結比例更多,通過這形式讓好寶寶逐漸主宰這個生存環境。 我們知道靠著反向傳播或者梯度策略計算的神經網路非常適合監督學習,比如說讓電腦做圖片的識別。在這方面,使用進化策略的神經網路的卻暫時還比不上。原因很簡單:梯度下降中,我們只需要去考慮梯度,這個參數滑到梯度躺平的地方就好了,因為梯度指明了梯度下降的方向因此優化起來非常的快。進化策略的神經網路卻是用原始的點產生新的點,然後透過新的點來確定下一代的起始點在哪,這樣的循環得不斷的繼續,因此會比梯度法慢很多。但是不使用梯度方法有一個好處,就是有效地避免『局部最優』。大家知道梯度下降運算時很容易被困在『局部最優』的優化結果,而進化策略的神經網路因為不受梯度的限制,就可以避免這種事情發生。 最新的研究指出可以計算機強大的並行能力,同時運算進化策略的神經網路的不同寶寶並且加以綜合,運算的時間也會明顯的下降。 進化策略簡介: https://www.youtube.com/watch?v=Etj_gclFFFo
-
AlphaGo Zero 為什麼厲害?
在2017年10月19日,Google Deepmind 推出了新一代的圍棋人工智能 AlphaGo。周莫煩老師在這講解 AlphaGo 內部神經網路的演算原理,指出為時麼它常常可以走出人類意想不到的位子。
-