Abstract:本文介绍强化学习和优化方法之间的关系,他们之间一些共同误区以及强化学习的工程性质
Keywords:强化学习,优化方法,强化学习工程化
强化学习与优化方法
优化方法是机器学习的一个关键组成部分,大部分监督学习和部分非监督学习都要依靠优化方法找到模型的参数,强化学习中也会使用优化方法中的一些算法来使agent获得更多的reward signal,而强化学习或者优化方法在进行过程中有些说法会让人感到迷惑。
“强化学习的目标”与“优化问题的目标”
前面我们提到过,强化学习的目标或者叫做战略目标就是让agent获得更多的reward signal,注意“更多”这个说法,从数学的角度讲,更多是个增长的过程,而这个过程有没有极限,也就是会不会有“最多”这种情况,这也成了强化学习的一个极限。
同样的问题也出现在优化问题中,优化问题的解是否还可以进一步优化,或者,这个解已经是全局最优的了,这个判断其实是非常困难的。
所以,我们在描述强化学习或者优化问题的时候,提到“最大化xx的鼓励信号(reward signal)….”或者 “最优化xx函数” 这些都不是强调一定要找到最大的唯一解,事实上,这个解可能本身就不存在,或者即使存在,由于种种原因,我们也没办法找到这个解。
强化学习要做的就是不断的让agent去尝试找到比目前更好的 策略(policies) 来得到更多的鼓励信号(reward signal)
如果用一句话概括就是:
“Optimization is not the same as optimality”(优化不等于最优)
如果某个优化方法在别的系统中表现非常优秀,但是当他移植到其他系统中仍然需要仔细评估,和测试,因为系统的 “不可预测性” 使得算法的工作 “环境非常复杂”,所以不能依靠算法之前在别的系统的表现来随意的评估其在当前系统中的表现。agent通常能够发现预料之外的 策略(policies) 来获得意想不到的好结果。如果把这个过程对比自然界中的生物的行为的话,那么就应该是我们所说的“创造力”了。这种创造力表现在,“ 变化(variation) ”和“ 选择(selection) ”上,这是进化能解决物种所面对的生存挑战的基础,也是强化学习解决人工智能所面对的挑战的基础。但是创造是有风险的,因为有的时候我们并不知道“变化(variation)”是朝向好的方向还是不好的方向或者根本就是无意识无目标的变化。
优化,变化等以上观点一直以来都被思考,就是哪个才是最好的,如果改变agent目前的策略效果会变好还是变坏是不确定的,所谓的继续优化是 “优化” 还是 “恶化”?一个很有意思的比喻是;
“Be careful what you wish for because you just might get it”(小心你想得到的,有可能你已经得到了)
强化学习和工程
为了解决上面这个“世纪难题”(最优性,不可预测性,变化,等问题),有很多策略(注意这是抽象的宏观的方案,而不是具体实施的方案)被使用,比如:
- 限制agent的可变化方向
- 使目标函数(objective function)对风险敏感
但是这些方案都是比较片面的解决方法,不能从根本解决问题,标准工程化的要求是,在系统正式上线工作之前,要经过严格的测试,因为系统一旦上线,产品一旦销售,我们的技术必须对使用者负责,如果系统存在不可预测的风险,且风险对于使用者是高危的,不可抗拒的,那么我们必须在测试阶段发现,并且解决,这和其他工程师一样的。由于强化学习等机器学习算法都存在不可预知的行为,所以在上线之前更应该严格评估。
优化结果的随机性不可预测性只是强化学习工程化中的风险点之一,其他工程中存在风险,在强化学习中同样也大大小小的存在,所以在评估时,不能只关注强化学习的风险点,比如数据安全,网络安全,等等在其他工程中的风险,在强化学习都一并存在。
讨论详细的问题在我们这里很不现实,我们只要记住,严格的测试系统,强化学习系统,机器学习系统,提前发现风险,解决风险,降低风险这些事情无论何时都是重中之重。
总结
本文介绍了强化学习和优化方法之间的一些概念混乱,优化不一定找到最优解。以及强化学习的工程化问题,降低风险,解决风险是所有机器学习工程应用中的重点。
References
Sutton R S, Barto A G. Reinforcement learning: An introduction[J]. 2011.
原文地址:https://face2ai.com/RL-RSAB-1-4-1-Connection-to-Optimization-Method