一文看懂強化學習中的那些概念及各算法之間本質上的聯繫易懂梳理簡單舉例與python實踐

關鍵點1:強化學習它的基本思路

強化學習它的思路基本是想要遍歷窮舉計算各種狀態的價值,然後儘可能的達到高價值的那些狀態。那麼什麼是狀態?什麼是狀態的價值?不同問題的裏面含有的“狀態”的內容和數量都不一樣。下面我舉個例子。
比如玩井字棋(三個相同色在一條線就贏)。看下面這張圖**,每張圖對應的棋子放置的位置就是一個狀態**。(在本例子中我們編程的話那就保存一個狀態就只需要用一個3×3的數組來保存棋譜即可)。

# 用3×3的二維數組保存狀態1,假設棋盤中沒落子的地方值爲0,黑棋爲1,綠棋爲2
state1 = [
	[0,1,0],
	[2,1,0],
	[0,0,0]
]

在這裏插入圖片描述
我們讓程序各種嘗試然後程序經過統計最後發現,包含狀態1和狀態3的那種下法贏的次數總是比狀態2和狀態4的多。然後程序得出一個結論狀態1和狀態3是高價值狀態。然後以後每次都儘可能的往這兩種狀態靠近。(事實上爲何狀態1和狀態3價值高呢?因爲井字棋只要佔了中心點那就穩贏,而剛好狀態1和狀態3就佔了中心點。雖然算法不知道佔了中心的會穩贏,但是它只要知道狀態1和狀態3是具有很高價值然後那就會盡量讓棋譜達到狀態1和3,然後就可以表現的像是有智能的樣子

關鍵點2:如何知道某個狀態的價值大小?

在前面提到了強化學習的核心思想在於計算出各種狀態的價值,然後儘可能的讓當前狀態向高價值狀態靠攏。那麼問題來了我們如何才能達到高價值狀態?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章