强化学习

简介: 前言机器学习可以大致分为四类:监督学习无监督学习半监督学习强化学习监督学习是利用标记了的样本进行学习,无监督学习则是使用未标记的样本进行学习,这两个是我们最常见的。

前言

机器学习可以大致分为四类:

  • 监督学习
  • 无监督学习
  • 半监督学习
  • 强化学习

监督学习是利用标记了的样本进行学习,无监督学习则是使用未标记的样本进行学习,这两个是我们最常见的。半监督学习则是样本中只有少量带标记的样本,多数样本都未标记,利用这些样本进行学习。强化学习则是很不同的一种学习方式,它没有规则的训练样本和标签,主要通过奖励和惩罚达到学习的目的。

什么是强化学习

《最强大脑》曾经有个挑战项目叫蜂巢迷宫,挑战者不断尝试不断试错。强化学习做法也类似,它主要包含三个概念:状态、动作和回报。同样是以迷宫为例,智能体所在的位置即是状态,从某个位置向某方向走一步则为动作,比如可以向左向右或向上向下,每走一步会产生回报,比如撞到墙就是负回报,好的动作则会带来正回报。而且不仅要关注当前的回报,还要关注长期的回报,通过不断试错学习到一个长期回报的动作序列。

强化学习是机器学习的主要学习方法之一,智能体从环境到行为的学习,也就是如何在环境中采取一些列行为,才能使得奖励信号函数的值最大,即获得的累积回报最大。

强化学习不同于监督学习,监督学习通过正确结果来指导学习,而强化学习通过环境提供的信号对产生的动作的好坏做一种评价,它必须要靠自身经历进行学习。学习后智能体知道在什么状态下该采取什么行为,学习从环境状态到动作的映射,该映射称为策略。

如下图,一个智能体agent通过与环境environment相互交互并以一定的策略改变环境,agent可以从环境中得到状态St,然后执行一个动作At,接着得到一个即时回报Rt,最后转移到下一个状态。

这里写图片描述

所以整个过程就可以总结为根据当前观察状态值找到一个最优的动作使得回报最多。

Markov决策过程

智能体与环境的交互过程会生成一个序列,

H=S0,A0,R1,S1,A1,R2,S2,A2...,St1,At1,Rt1,St,Rt

对应的Markov动态过程为:agent初始状态为S0,然后执行动作A0,得到回报R1,然后转移到下个状态S1,不断重复。

这里写图片描述

这个过程构成Markov决策过程,服从“未来独立于过去”的Markov假设,所以下一时刻的状态只取决于当前时刻状态。即

p(St+1|St)=p(St+1|S1,S2,...,St)

如果定义了一个转换过程后,得到的回报函数累加和为

R(S0)+γR(S1)+γ2R(S2)+...

强化学习目标就是寻找一个最佳的策略,使回报加权和的期望值最大。

E[R(S0)+γR(S1)+γ2R(S2)+...]

而t时刻的累积回报可以表示为

Ct=Rt+1+γRt+2+γ2Rt+3+...=Tk=0γkRt+k+1

可以看到包含了一个阻尼系数r,它的取值为0到1,越靠后的状态对回报的影响越小,逐步衰减。

  • r=0时,Ct=Rt+1,这时只考虑当前动作的回报。
  • 0< r<1时,Ct=Rt+1+γRt+2+γ2Rt+3+...,这时考虑当前回报和未来回报。
  • r=1时,Ct=Rt+1+Rt+2+Rt+3+...,这时当前回报和未来回报比重一样。

在某个状态s下,价值函数为

vπ(s)=Eπ[Ct|St=s]

vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...|St=s]
vπ(s)=Eπ[Rt+1+γ(Rt+2+γRt+3+...)|St=s]
vπ(s)=Eπ[Rt+1+γCt+1|St=s]
vπ(s)=Eπ[Rt+1+γvπ(St+1)|St=s]

价值函数可以看成两部分,Rt+1为即时回报,γvπ(St+1)为下一状态价值函数值的打折值。上面的价值函数为Bellman Equation形态,即动态规划方程,可用迭代方式求解。

Q学习

前面说到的是状态价值函数,我们还需要动作价值函数,它可以用来根据动作价值的大小而做出动作。Q学习即是学习不同状态下各个动作的质量,它定义为

Qπ(s,a)=Eπ[Ct|St=s,At=a]

它同样可以变换成Bellman Equation形态,

Qπ(s,a)=Eπ[Rt+1+γQπ(St+1,At+1)|St=s,At=a]

最优动作价值函数,

Q(s,a)=MaxπQπ(s,a)

Q(s,a)=Eπ[MaxRt+1+γMaxSt+1Qπ(St+1,At+1)|St=s,At=a]

可以看到最大化当前的动作价值函数就是最大化当前回报和下一时刻状态的最优动作价值函数。

动作价值函数虽然能直接计算出Q值,但实际学习时并没有直接使用该Q值来更新,而是通过渐进的方式来更新。学习的方法可用如下伪代码说明,首先初始化Q学习的状态集和动作集组成的数组,然后观察初始状态,接着不断重复执行:选择一个动作,观察回报并转移到新状态,更新Q学习数组值,涉及迭代方式更新,由于我们不能知道下一刻状态的Q值,所以更新时用之前迭代的Q值来更新此次迭代的Q值,其中α表示学习率。

initialize Q[numstates,numactions] arbitrarily
observe initial state s
repeat
    select and carry out an action a
    observe reward R and new state s'
    Q[s,a] = Q[s,a] + α(R + γmaxa'Q[s',a'] - Q[s,a])
    s = s'
until terminated

强化学习的特点

  • 它是试错学习,因为它没有像监督学习一样的直接指导信息,所以它只能不断去跟环境交互不断试错来获取最佳策略。
  • 它的回报具有延迟性,因为它往往只能在最后一个状态才能给出指导信息,这个问题也让回报的分配更加困难,即在得到正回报或负回报后怎么分配给前面的状态。

强化学习的运用

  • 比如飞行器的飞行控制。
  • 比如控制机器人的行走。
  • 比如学习怎么玩游戏。
  • 比如学习怎么理财投资。
  • 比如学习怎么下棋。

以下是广告

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

目录
相关文章
|
机器学习/深度学习 存储 算法
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型(三)
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型
500 0
|
17天前
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
20 4
|
4月前
|
机器学习/深度学习 人工智能 运维
|
4月前
|
机器学习/深度学习 人工智能 运维
【AI 初识】监督学习、无监督学习和强化学习定义
【5月更文挑战第2天】【AI 初识】监督学习、无监督学习和强化学习定义
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
|
机器学习/深度学习 算法 自动驾驶
【强化学习】什么是“强化学习”
强化学习是机器学习领域的一种重要方法,主要通过使用环境的反馈信息来指导智能体的行为,并且通过智能体收集的经验数据对自身策略进行优化。在强化学习中,我们通常用“智能体”来表示学习机器或者一个决策实体。这个智能体在某个环境中采取行动,然后收到环境的反馈信号(奖励或者惩罚),从而逐渐学习到一个最优的行动策略。在强化学习中,主要涉及到一些概念,如状态、行动、奖励、策略等等。状态指的是输入进入智能体算法的集合,行动指的是智能体做出的反应,奖励通常是指环境给予智能体的反馈信息,策略指的是智能体在某种状态下选择的行为。
191 0
【强化学习】什么是“强化学习”
|
4月前
|
机器学习/深度学习 数据可视化 数据挖掘
强化学习第1天:强化学习概述
强化学习第1天:强化学习概述
|
机器学习/深度学习 决策智能
初探强化学习
初探强化学习
124 0
|
11月前
|
机器学习/深度学习 算法 自动驾驶
强化学习模型
强化学习模型
161 0
|
机器学习/深度学习 人工智能 算法
人工智能LLM模型:奖励模型的训练、PPO 强化学习的训练、RLHF
人工智能LLM模型:奖励模型的训练、PPO 强化学习的训练、RLHF
人工智能LLM模型:奖励模型的训练、PPO 强化学习的训练、RLHF