1. 程式人生 > >白話文學強化學習-1

白話文學強化學習-1

強化學習介紹

強化學習(reinforcement learning),又稱再勵學習、評價學習,是一種重要的機器學習方法,在智慧控制機器人及分析預測等領域有許多應用。

強化學習用人話來解釋的話,假設CV(計算機視覺)和NLP(自然語言處理)是教會計算機如何看和聽這個世界的話,那RL(強化學習)則是教會計算機如何思考這個世界了。這裡要拿出被舉的最多的例子了:

巴甫洛夫的狗

強化學習的過程和訓狗很像的,沒有訓練過的狗狗是不會聽到訓犬師說坐下就理解並馬上坐下的,所以需要一個訓練的過程:通常是訓犬師發出坐下的命令,然後可能狗狗會隨便做一些動作也可以是在訓犬師幫助下它完成坐下的動作,並且在狗狗完成後坐下的動作後給予獎勵,比如喂點狗狗的零食什麼的,並且不斷重複這個過程,狗狗做對了就給獎勵,沒做對什麼也不給(或者可以給點小小的懲罰)。出於對食物零食的渴望,狗狗慢慢就學習到了訓犬師說出坐下的命令和自己坐下以及得到食物的獎勵這三者的關係,時間久了狗狗也就會聽從訓犬師的坐下命令了。不單單是坐下的命令,其他的動作也可以用這種獎勵懲罰的規則進行訓練,但是不要毆打我們可愛的狗狗哦~

經典的S、A、R

學習強化學習是離不開這3個字母的,分別是State狀態或者環境,Action動作,Reward獎勵。對於上面的訓狗例子這3個分別對應:S 訓犬師的指令,A 狗狗選擇的動作, R 獎勵或者懲罰。
所以流程是這樣的,首先由訓犬師給出當前的S(指令),狗狗選擇一個動作A(可以是坐下也可以是其他的動作),訓犬師根據狗狗當前選擇的動給狗狗一定的R(如果做對了就給 食物 即正面獎勵,如果沒做對就 打屁屁 即負面獎勵)
S-A-R
網上找的圖
在這裡插入圖片描述
強化學習還有一大應用場景就是玩遊戲,這裡可以想象我們的遊戲玩家當接觸到一款新遊戲的時候還不知道怎麼玩,就會隨便按下按鈕或者撥弄搖桿,然後觀察螢幕上玩家操作的角色的位置或者是否死亡等來判斷當前選擇的動作是否正確,並改善自己玩的策略,從而越玩越好。
所以除了上面的SAR,還有就是S’,上面的小撇代表的下一個時間序列的,也就是下一個狀態,因為在當前的狀態下選擇了動作返回的不僅僅是獎勵還有下一個狀態,不然沒有下一個狀態遊戲怎麼繼續玩下去咧~這裡下一個狀態只是為下一個時刻的狀態,也可能和當前的狀態是同一個狀態(上面例子中可以理解為同一個命令 ‘坐下’),也可能是不同的狀態(即不同的命令 ‘握手’),所以完整的序列為
S - A - R S’ - A’ - R’ S’’ - A’’ - R’’ S’’’ … 等等,這裡為什麼R和S’之間沒有‘-’,那是因為這兩個就應該要一起返回啊,選擇完動作就應該要知道獎勵和下一個狀態是什麼~

總結:所以強化學習的過程就是一串狀態動作獎勵的序列,那什麼時候結束呢?其實這個序列可以結束也可以不結束,看應用場景,比如玩遊戲的話就可以把遊戲結束作為一個階段的結束,又比如炒股則可以是個沒有結束的序列(炒股也是可以設定結束條件的,比如賺了多少錢或者賠了多少錢作為結束的條件,人為的結束~)