Q Learning(強化學習) 機器學習

2021-10-06 22:44:19 字數 2434 閱讀 8410

我們在之前接觸過了監督學習和無監督學習,強化學習可以看作是不同於二者的另一類演算法,強化學習讓計算機從什麼都不懂的時刻開始,通過不斷地嘗試,從錯誤中學習,找到一種規律,能夠掌握達到目的的方法。

強化學習的思想就類似於我們去訓練乙隻狗,一開始它聽不懂任何我們下達的指示,但是我們可以在每次說出指令並且它做出正確動作的時候,都給它一定的獎勵,否則沒有獎勵,讓它知道對錯,最終每次都能夠直接作出可以得到獎勵的動作(正確的反應)。

與訓練動物不同的是,我們所要訓練的是計算機並不是乙個活體,但是我們要知道電腦也是「腦」我們總會有方法來找到訓練計算機的方式。

根據我們上面的介紹,很容易可以知道強化學習的核心就在於通過「行為」得到「獎勵」,所以我們需要乙個裁判,對計算機的行為進行打分。

這裡與之前我們了解到的監督學習不同之處在於,監督學習中,我們事先知道「行為」以及對應的「獎勵」是什麼,但是強化學習中,要通過一次次在環境中的嘗試, 獲取這些「行為」和「獎勵」, 然後再學習通過哪些「行為」能夠對應哪些「獎勵」, 通過學習到的這些規律,盡可能地選擇帶來高分的「行為」。

q-learning的決策

q-learning是一種通過**來學習的強化學習演算法

先舉乙個小例子:

假設小明處於寫作業的狀態,並且曾經沒有過沒寫完作業就打遊戲的情況。現在小明有兩個選擇(1、繼續寫作業,2、打遊戲),由於之前沒有嘗試過沒寫完作業就打遊戲的後果,所以小明選擇打遊戲、繼續打遊戲、接著打遊戲。最終當父母回來發現小明沒有寫完作業就在打遊戲,小明獲得了一次接受男女混合雙打的獎勵。這給小明留下了深刻的印象,也明白了這不是乙個好的做法。對於這個小的例子,我們的q-learning會怎麼做呢?

首先我們定義兩個內容:當前的狀態s,可以進行的行為a,則有如下的表示形式: a1

a2s1-22

很顯然對於狀態s1小明應該選擇a2作為要選擇的行為,然後狀態更新為s2。 a1

a2s2-43

接著還會有狀態s3、s4等等,每次我們都重複上面的過程,這就是q-learning演算法的決策過程。

q-learning的更新

q-learning的更新策略使用了貝爾曼方程(也叫動態規劃方程)作為方法來進行演算法的更新,下面來了解一下貝爾曼方程:

q (s

t,at

)←q(

st,a

t)+α

[rt+

1+λm

axaq

(st+

1,a)

−q(s

t,at

)]q(s_t,a_t)\leftarrow q(s_t,a_t)+\alpha[r_+\lambda \undersetq(s_,a)-q(s_t,a_t)]

q(st​,

at​)

←q(s

t​,a

t​)+

α[rt

+1​+

λamax

​q(s

t+1​

,a)−

q(st

​,at

​)]

式子中的各項意義如下:

我們換一種更通俗的方式來理解一下這個方程:

新 q(

st,a

t)=舊

q(st

,at)

+α∗差

距新q(s_t,a_t)=舊q(s_t,a_t)+\alpha*差距

新q(st​

,at​

)=舊q

(st​

,at​

)+α∗

差距這裡:差距=現實-估計

現實:r+λ

maxa

q(st

+1)r+\lambda \undersetq(s_)

r+λamax

​q(s

t+1​

) 估計:q(s

t,at

)q(s_t,a_t)

q(st​,

at​)

每次我們就是通過這樣的方式來對q-learning演算法中的q表來進行更新。

q-learning演算法步驟

初始化q table為0

每一次遍歷,隨機選擇乙個狀態作為起點

在當前狀態 (s) 的所有可選的行動中選擇乙個 (a)

移動到下乙個狀態 (s』)

在新狀態上選擇 q 值最大的那個行動 (a』)

用 bellman equation 更新 q-table

將新狀態設定為當前狀態重複第 2~6 步

如果已經到了目標狀態就結束

強化學習之Q learning

三要素 狀態 state 動作 action 獎賞 reward 更具具體情況自行進行給定。q更新公式 q是什麼?動作效用函式 action utility function 用於評價在某一狀態下採取某個動作的優劣。如果q訓練好了,之後 時就可以按照q進行選擇動作。詳解q更新函式 是學習速率 是折扣...

強化學習演算法 Q learning

q learning 演算法的步驟 1 給定引數lamda和獎勵矩陣r 2 令q為0 3 for each episode 3.1 隨機選擇初始的狀態s 3.2 未達到目標狀態,則執行以下幾步 1 在當前狀態s的所有可能行為中選取乙個行為a 2 按照q s,a r s,a lamda max,其中s...

強化學習 Q learning演算法

我們以乙個迷宮尋寶的遊戲為例來看什麼是 q learning。在這個遊戲中,agent 從乙個給定的位置開始,即起始狀態。在不穿越迷宮牆壁的前提下,在每個狀態時,都可以選擇上下左右四個方向走一步,或者原地不動,上下左右這四個動作的每乙個都會將 agent 帶到網格的乙個新的單元格,即新的狀態,在迷宮...