1. 程式人生 > >強化學習之Q-learning演算法

強化學習之Q-learning演算法

Q-learning演算法

    以前在阿里雲上面搭了一個wordpress部落格,最近快畢業了,阿里雲真的很貴,所以轉到CSDN上寫部落格,主要是為了方便以後查詢。

    Q-learning演算法是強化學習的一種演算法,強化學習目前主要應用到遊戲中,主要是目的是訓練一個知道怎麼做才能得到高分的model。強化學習的介紹很多,李巨集毅在https://www.youtube.com/watch?v=W8XF3ME8G2I上的課程就做了一些介紹,此外。強化學習和深度學習究竟是什麼關係??很多地方所增強學習(就是強化學習,reinforcement learning)是深度學習的一種,其實不能這麼說,強化學習可以結合深度學習演算法,比如說Google的DQN專案就是使用卷積神經網路學習一個自動打遊戲的模型,https://blog.csdn.net/jiandanjinxin/article/details/54133521文章較好的介紹了深度學習和強化學習的關係。

    AlphaGo是強化學習的一個例子,個人感覺,監督學習不能夠實現真正的人工智慧,需要一些半監督,無監督學習方法才有可能實現真的的人工智慧。強化學習感覺和自動機的原理差不多,都是在一些state裡面採取一些action,然後不斷的進行。只不過自動機沒有reward這個東西,在強化學習中,每採取一些action,環境(environment)會給一些reward,然後我們可以用於對modle進行更新。

    Q-learning演算法的簡介可以檢視http://baijiahao.baidu.com/s?id=1597978859962737001&wfr=spider&for=pc,主要詳細介紹下面幾點:

    1:Q-table的更新原則

    Q-table更新公式

    這裡的r是reward,指的是每次進行一步的時候,environment所給的分數,和Q(s,a)是不一樣的,http://baijiahao.baidu.com/s?id=1597978859962737001&wfr=spider&for=pc使用一個例子介紹了Q-table的更新過程。

    2:疑慮???

     Q-learning必須要知道所有的state和action,那麼訓練之後得到的實際上就是一個能夠得到高reward的模型。能不能不指定state,那麼得到的model才能夠對未知的情況進行判斷。