前言
深度强化学习就是 深度学习 和 强化学习 的结合体。它让计算机程序(也就是智能体)在特定环境中不断尝试,从错误中学习,最终找到最优的行动策略。
深度学习是AlphaGo从棋谱里学习,强化学些Alphazero 学习规则,自己下棋,左右互搏。
eg:计算机玩一个新游戏,一开始啥也不懂,但是通过不断尝试,你慢慢掌握了游戏规则,最后变成了高手。
一、前置知识
(一)强化学习(Reinforce Learning)
强化学习中智能体的学习过程基于奖励函数——环境给出反馈。在每一步的决策后,智能体从环境中收到反馈,可能是正奖励(表示决策正确)或负奖励(表示决策错误)。智能体通过反复试探环境并不断调整行为策略,以期获得最大化的累积奖励。
强化学习的核心是“试错学习”,智能体通过不断尝试不同的动作来探索最佳策略。
强化学习中往往存在“延迟奖励”,即智能体的某些行为的影响可能在未来才会体现,这增加了决策的复杂性。
强化学习是一种模仿生物学习机制的机器学习方法,它可以让智能体(agent)在没有明确指导的情况下,通过与环境的交互,根据奖励或惩罚来调整自己的行为,从而达到某个目标。
输入:清晰的规则
结果:具有决策能力的智能体(Agent)
特征:
- 不断试错
- 延迟奖励
- policy函数
- agent的action
- 持续学习、自主学习
1. 马尔可夫属性
-
定义:系统的未来状态仅取决于当前状态,而与过去的状态无关。
-
公式描述:P(st+1∣st,st−1,...,s0)=P(st+1∣st)P(s_{t+1} | s_t, s_{t-1}, ..., s_0) = P(s_{t+1} | s_t)
-
示例:自动驾驶汽车的决策只依赖当前传感器信息,而不依赖历史轨迹。
2. 马尔可夫链
-
定义:基于马尔可夫属性的离散时间随机过程,状态转移遵循特定概率分布。
-
状态转移矩阵(Transition Matrix):
-
描述从一个状态转移到另一个状态的概率。
-
例如,在机器人路径规划中,某个位置到下一个位置的概率矩阵。
-
3. 时间与状态空间的离散/连续
-
时间离散 vs. 连续:
-
离散时间:回合制游戏,逐步决策。
-
连续时间:自动驾驶,实时调整方向和速度。
-
- 状态空间离散 vs. 连续:
- 离散状态:棋盘游戏,有限状态集合。
- 连续状态:自动驾驶中的位置、速度等。
有监督学习:
在有标记的数据集上训练模型,目标是预测未知数据的结果。模型通过已知的标签调整参数,以便提高预测精度。强化学习中的数据并非来自静态的样本集合,而是通过智能体与动态环境的持续交互产生的。智能体根据环境反馈的奖励或惩罚(即奖惩机制)来调整其决策策略,最终目标是学会一套能最大化长期回报的策略。
无监督学习:
没有标签的数据,模型从数据的分布和结构中发现潜在模式,如聚类或降维。
应用领域:
游戏、自动驾驶、机器人学、金融交易系统等需要智能决策的领域
(二)深度学习
深度学习是一种利用多层神经网络来处理复杂数据的机器学习方法,它可以从图像、语音、文本等多维数据中提取有用的特征,实现识别、分类、生成等功能。
特征:
机器学习全自动;黑盒
从历史数据预测未来数据,不会适应新变化
瞬时学习
应用领域:
计算机视觉、自然语言处理、图像识别
二、深度强化学习(Deep Learning)
深度强化学习结合了深度学习的特征提取能力和强化学习的决策能力,可以直接根据输入的多维数据做出最优决策输出,是一种端对端(end-to-end)的决策控制系统。
深度强化学习通过与环境不断地进行实时交互,将环境信息作为输入来获取失败或成功的经验来更新决策网络的参数,从而学习到最优决策。
几个关键概念:
- 智能体(agent):是一个决策系统,可以根据当前的状态(state)选择一个动作(action),并从环境中获得一个奖励(reward)。
- 环境 :就是智能体所处的世界,可以根据智能体的动作改变自身的状态,并给出相应的奖励。可以是游戏、机器人控制系统,甚至是股票市场。
- 策略(policy):是一个从状态到动作或者动作概率的映射函数,表示智能体如何选择动作的规则。
- 状态 :描述环境在某一时刻的情况。比如在游戏中,状态可能包括玩家的位置、血量等信息。
- 动作 :智能体可以采取的行为。比如在游戏中移动、攻击等。
- 奖励 :环境给予智能体的反馈,表示环境对智能体动作好坏的反馈信号,通常是一个标量值,用来评价动作的好坏。
- 策略(policy):是一个从状态到动作或者动作概率的映射函数,表示智能体如何选择动作的规则。
- 价值函数(value function):是一个从状态或者状态-动作对到期望收益(expected return)的映射函数,表示智能体在某个状态或者状态-动作对下未来能够获得的平均收益。
- 收益(return):是一个表示智能体从某个时刻开始未来所有奖励之和的量,通常会对未来奖励进行折扣(discount),以表示不同时刻奖励对当前时刻的贡献程度。
深度强化学习的基石:Q-learning
Q-learning 是强化学习中的一个经典算法,也是深度强化学习的基础。
核心思想是:通过不断尝试和学习,估算出在每个状态下采取不同动作的价值(Q值)。
# Q-learning 更新公式Q(s,a)=Q(s,a)+α*(r+γ*max(Q(s', a'))-Q(s,a))
Q(s, a)
是当前状态 s 下采取动作 a 的价值
α
是学习率,决定了新知识的学习速度
r
是即时奖励
γ
是折扣因子,权衡了即时奖励和长期收益
max(Q(s', a'))
是下一个状态的最大 Q 值
就是根据新的经验来更新我们对某个动作价值的估计。
传统的 Q-learning 在状态空间很大时就不太好使了。
深度神经网络就派上用场了,近似 Q 值函数,处理更复杂的问题。
经验回放是深度强化学习中的一个重要技巧。
简单来说,就是把智能体的经历(状态、动作、奖励、下一个状态)存储起来,然后随机抽取一些经验进行学习。
主要是为了打破经验之间的相关性,让学习更稳定。如果你只根据最近的经历来学习,很容易被短期的情况误导。但是如果你能回顾过去的各种经历,学到的东西就会更全面。
应用领域:
-
在计算机视觉领域,深度强化学习可以用于图像分类、目标检测、图像语义分割等任务。
-
在语音识别领域,深度强化学习可以用于语音识别、语音合成等任务。
-
在自然语言处理领域,深度强化学习可以用于文本分类、命名实体识别、机器翻译、对话系统等任务。
-
在推荐系统领域,深度强化学习可以用于个性化推荐、协同过滤等任务。
-
在金融领域,深度强化学习可以用于风险评估、信用评分等任务。
-
在医疗领域,深度强化学习可以用于医学图像分析、疾病诊断等任务。
-
在机器人控制领域,深度强化学习可以用于实现对机器人的行为控制,如在2D和3D的模拟环境中让机器人走路、跑步、跳跃等。
-
在视频游戏领域,深度强化学习可以用于让智能体在复杂的游戏环境中达到或超越人类水平,如在Atari 2600游戏中使用深度Q网络(DQN),在围棋游戏中使用AlphaGo和AlphaGo Zero,在StarCraft II游戏中使用AlphaStar,在Dota 2游戏中使用OpenAI Five等。
-
在导航领域,深度强化学习可以用于让智能体在不同的地图和场景中实现自主导航,如在迷宫中寻找出口,在城市道路中规划最优路径,在室内环境中避开障碍物等。
-
在多智能体协作领域,深度强化学习可以用于让多个智能体之间实现有效的协调和合作,如在足球游戏中让智能体组成一个团队,在交通信号控制中让智能体协同优化交通流量,在无人机编队中让智能体保持一致性等。