基于混合计算机的机器学习系统Python实现:倒立摆平衡问题求解
在机器学习领域,解决倒立摆平衡问题是一个经典且具有挑战性的任务。本文将介绍一种基于混合模拟/数字的机器学习实现方法,结合强化学习中的Q学习算法和线性回归,来解决倒立摆的平衡问题。
1. 整体思路与Python实现基础
在解决倒立摆平衡问题时,作者选择了混合模拟/数字的机器学习方法,使用强化学习中的Q学习算法结合线性回归。需要说明的是,这并非是解决倒立摆平衡问题的唯一或最优方式。实际上,作者通过Python实验发现,简单的随机搜索在几千次尝试后得到的向量 $\vec{\theta} = (\theta_1, \theta_2, \theta_3, \theta_4)$,与当前模拟状态 $\vec{s} = (x, \dot{x}, \phi, \dot{\phi})$ 进行点乘,根据结果是否大于零,就能可靠地决定将小车向左还是向右推动。
作者采用这种方法的目的,是为了展示像Q学习这样的通用机器学习算法,在按文中描述实现后,无需修改即可适用于大量其他(且更为复杂)的现实世界应用,并且可以通过混合模拟/数字设置进行高效训练。Python拥有丰富的开源机器学习生态系统,作者选择了scikit - learn作为实现的基础。
2. 状态(States)
在算法实现中,算法1第9行的While循环每次重复代表当前迭代中的一步。该While循环会一直运行,直到倒立摆模拟的当前状态 $s \in S$ 达到终止状态。当达到终止状态时,一次模拟结束,模拟会重置并开始下一次模拟。
终止状态有两种定义情况:
- 小车到达某个特定位置 $|x|$,可理解为“小车移动
超级会员免费看
订阅专栏 解锁全文
1199

被折叠的 条评论
为什么被折叠?



