【强化学习-理论背景知识】Day1-强化学习和if/else的区别

写在前面 / 链接存档

引入

解决一个最简单的强化学习入门的问题

引入-保护小人不掉水里

强化学习和 if / else 的核心区别

区别1:是否需要提前知道所有规则

  • if/else:需要程序员提前明确所有可能的情况,并写下对应的规则。

    • 如果问题的复杂度很高,规则会非常多,写起来费时费力,且容易遗漏特殊情况
  • 强化学习:无需提前设计所有规则。算法通过与环境的交豆,逐步学会最优策略(动作选择的规则)

    • 优越之处:强化学习适合复杂、多变、甚至未知的环境,比如机器人运动控制或无人驾驶。
  • 结合例子来看:地图中有一个参数:is_slippery=False,如果这个参数变成True,小人在每一步都有前后左右滑一下的可能

    • 这种情况,ifelse的代码就没法写了,采用常规搜索算法或if/else无法解决这个问题

区别2:适应动态环境的能力

  • if/else:规则是固定的,一旦环境变化(如传感器故障、外界温度剧变等),代码可能无法适应,甚至直接失效。

    • 例如:if/else 写死了温度变化规律,但实际中环境可能随季节、天气或其他因素动态变化。
  • 强化学习:模型会在不断交互中根据新的环境特性调整策略(通过更新 Q 值或策略网络的参数)

    • 优越之处:强化学习具有在线学习能力,可以根据环境变化重新优化动作选择。

区别3:优化目标和权衡多种因素

  • if/else:通常只能实现单一目标,逻辑过于复杂时容易难以维护。

    • 例如,如果同时需要控制温度和减少能耗,写 if/else会导致逻辑难以管理。
  • 强化学习:通过奖励函数,可以同时平衡多个目标(如接近目标温度和最小化能耗),算法会找到一种权衡。

    • 优越之处:强化学习能够自动发现让系统整体最优的动作选择,而不需要手工调试复杂规则。

区别4:可扩展性

  • if/else:当状态和动作数量较小时还可以写出明确的逻辑,但当问题变得复杂

    • 例如机器人有多个关节,且每个关节有多个动作,手写规则几乎是不可能的。
  • 强化学习:即使状态空间和动作空间很大,算法也能处理(例如使用神经网络近似值函数或策略)

    • 优越之处:强化学习在高维问题中表现尤为出色,例如无人机控制或自动驾驶等场景。

为什么在简单场景下,强化学习看起来像if / else?

  • 对于简单问题(如智能温控系统),if/else和强化学习的行为确实可能相似。这是因为:
    • 强化学习经过足够训练后,会学出接近于if/lelse 的规则,但这些规则是算法自动学习出来的,而不是由人写死的。
    • 简单场景中,强化学习的优势可能不明显,但在更复杂的系统中(如需要实时调整规则、环境变化多样),它的能力就能体现出来。
    • 现在的自动驾驶技术都已经从编写各种人为的规则,改为了端到端的强化学习,强化学习可以适配更复杂的环境,解决各种各样没有见到过的问题。
  • Copyrights © 2024-2025 brocademaple
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信