一文看懂强化学习中的那些概念及各算法之间本质上的联系易懂梳理简单举例与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:如何知道某个状态的价值大小?
在前面提到了强化学习的核心思想在于计算出各种状态的价值,然后尽可能的让当前状态向高价值状态靠拢。那么问题来了我们如何才能达到高价值状态?
知乎 https://www.zhihu.com/people/yuanmuou/activities