在 Engineering Ingegneria Informatica (EII), 我们看到了将仿真与机器学习相集成的巨大潜力。这个简短的博客介绍了一个工业问题及其强化学习解决方案,由EII使用AnyLogic开发制作。AnyLogic的灵活性和可定制性使我们可以使用 Skymind的外部深度强化学习包RL4J创建混合平台。
继续阅读,找出问题所在,并了解如何使智能体与AnyLogic环境进行交互,从而实现对智能体的训练。您还将学习如何以适合机器学习的方式解决工业问题。
为什么要进行仿真和机器学习?
虽然机器学习的三个主要范例(有监督,无监督和强化)之间有许多差异,但它们也具有一个共同的重要特征:对数据的渴求。其中,强化学习不仅需要最多数据才能获得最佳的解决方案,而且还需要与实际环境建立连接以获取数据。
由于成本高、风险高以及与之相关的物理时间限制,实时环境和大量数据源不容易获得。这一原因导致强化学习领域中的许多最新突破都是来自与游戏的交互,从而提供了安全、免费和轻松的交互环境。
除游戏外,仿真建模还消除了与实际系统相关的主要限制。它具有较低的价格标签、无风险并且可以执行虚拟时间(例如,在几秒钟内模拟整个系统的演变)。这些功能使仿真成为在业务环境中培训强化学习型智能体的最可行环境。
问题描述
想象一下一家制造重型工业部件的工厂。 该生产线由几个自动化的工作站组成,由于产品的重量,重型输送机系统将这些工作站连接在一起——铁磁芯生产就是这种情况。
对于相关工厂,为了满足每个变压器的特定要求,铁磁芯是高度定制的,因此,生产周期和生产线上磁芯的移动不容易实现自动化。
在任何给定时间,生产线经理都可能需要处理多个磁芯,因此需要考虑每个单独的生产周期并预先计划行动。尽管尽了最大的努力,但仍会出现瓶颈和生产线堵塞,使工厂蒙受损失。面临的最大问题是生产线上不同对象的移动以及如何管理它们。
解决方案
解决方案涉及确定生产线上铁芯运动的强化学习型智能体。智能体共同努力寻找工作站之间的最短路径,以完成磁芯生产。
训练智能体需要一个真实的系统仿真模型,并且有必要将问题分解为更小的任务。将这些较小的任务分配给单个学习型智能体,之后这些学习型智能体开始学习如何使用任意初始布局。换句话说,达到工作站目标的主要任务被分解为较小的任务,这些任务由一组智能体进行管理。
强化学习使用DDQN算法,因为它们显示了合理的样本效率,并且在动作空间离散的情况下得以有效地使用——在任何给定时间针对该问题的可能行动数为64。
每个行动都会得到一个小的负奖励(rn),直到达到最终位置并得到一个大的正奖励(rp)。但是,鉴于有大量的状态-行动组(约3600万),这种奖励计划很少。为了解决这一问题,添加另一种会创建更密集的奖励函数的奖励机制——智能体每次决定移动磁芯或磁芯附近的对象时,都会获得相对于 rp 的小奖励(ri)。奖励方案可以概括为:
- rp:如果采取的行动在最终位置结束(例如rp = 1000),则奖励
- ri:如果所采取的行动移动了磁芯心或磁芯附近的对象
- rn:在任何其他情况下的奖励(例如rn = -1)。
ri的引入是基于这样一种理解,即移动磁芯或磁芯附近的物体将增加到达最终位置的概率。还值得注意的是,RL试图最大限度地累积奖励在一个阶段;因此, ri 应该足够小,使这些小奖励的最大积累远远小于 rp (即,在一个阶段中的最大行动* ri < rp).
如果 ri不够小,则智能体可能会学习一种策略,在该策略中,它会重复执行只会给它带来很少回报的行动。例如,考虑到上面列表中给出的奖励,如果每个阶段的长度为1000个行动,则智能体无需学习如何到达最终位置;只要它学会了如何来回移动磁芯,就可以在整个阶段做到这一点,并获得1000的累积奖励。 OpenAI 在错误的奖励功能 示例中对此问题进行了观察和讨论。
最初,智能体不知道对象的位置和可用行动之间的联系,因此它会做出在物理上有时是无效的随机决定(下面视频中的红色箭头),并且不会导致状态改变。
从上面的视频中可以看到,大多数智能体的随机决策无法移动布局中的对象。无论如何,智能体都会将所有这些交互存储在其内存中,并通过探索新的行动来发现更好的。与环境交互的丰富经验使智能体最终可以针对任何给定情况推断出最佳决策。经过训练后,智能体可以高效、有效地执行其任务,如以下视频所示。
在下面的简短视频中,智能体需要从任意给定位置取一个磁芯到中间的平台T16。每次到达目标点时,布局都会随机化,然后重新开始仿真。之后,智能体再次成功执行必要的移动。
最后,通过像上面视频中演示的那样,将经过训练的智能体群放在一起,可以实现布局中的一系列目标。
强大的建模和连接性
通过在AnyLogic仿真模型中准确捕获生产线动态,EII能够成功地应用深度强化学习。仿真结果提供了可以有效管理产线移动的策略。 该项目成功的关键在于AnyLogic能够以适当的方式捕获系统的性能情况以及它与机器学习技术连接的可行性——了解有关 AnyLogic AI的更多信息。
该示例由Engineering Ingegneria Informatica使用AnyLogic和用于强化学习的RL4J软件包进行创建。