版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章强化学习赵卫东复旦大学赵卫东复旦大学强化学习发展迅速
Google全球搜索指数,AI主流领域趋势对比强化学习2022年12月25日赵卫东复旦大学强化学习发展迅速赵卫东复旦大学强化学习的由来强化学习来源于心理学里的行为主义理论。强化学习是在环境给予的奖励或惩罚信号的反馈下,逐步形成能获得最大利益的行为策略。赵卫东复旦大学19世纪后期,心理学家EdwardThorndike提出的效应定律:在特定情境中具有积极影响的行为,在该情境中更有可能再次发生,而产生负面影响的行为则不太可能再发生。强化学习基础强化学习(ReinforcementLearning,RL)是agent与环境之间进行交互,并将其状态映射到动作以获得最大累计奖励,实现最优策略的学习机制。与监督学习相比,强化学习不需要事先准备样本集,而是通过不断尝试,发现不同动作产生的反馈,来指导策略的学习。与无监督式学习相比,强化学习不只是探索事物的特征,而是通过与环境交互建立输入与输出之间的映射关系,得到最优策略。赵卫东复旦大学强化学习、机器学习与深度学习强化学习属于机器学习范畴,与监督学习和无监督学习并列;深度强化学习是强化学习与深度学习的结合,利用深度学习技术实现复杂策略的学习。强化学习是人工智能行为学派的核心方法。赵卫东复旦大学强化学习应用案例从2016年开始,AlphaGo、AlphaStar(星际争霸战胜职业选手)、AlphaFold(解决蛋白质合成)和ChatGPT(内容合成,
使用一种人类反馈强化学习的方法来训练模型)等是强化学习的产物。亚马逊通过强化学习训练智能体对市场做出相应最优决策、库存管理。百度在强化学习方面投入大量研究和实践,将其用于新闻推荐。滴滴的人工智能实验室用强化学习为乘客匹配司机,最小化乘客等待时间。赵卫东复旦大学议程强化学习(ReinforcementLearning)基本概念贝尔曼(Bellman)方程深度强化学习常用算法深度强化学习应用赵卫东复旦大学强化学习基础强化学习(RL)是机器学习的子领域,其中学习是通过试错(trialanderror)的方法进行的。强化学习是一种强大的学习方法,不需要标记数据。强化学习已被研究人员成功应用于视频游戏、自动驾驶运动规划和控制、工业机器人拾取物品、交易员投资组合投注、医疗保健从业者、芯片设计等领域。深度强化学习芯片布局赵卫东复旦大学强化学习的特点试错学习:
agent与环境交互,每一步通过试错的方式学习最佳决策,没有任何的指导。延迟反馈:
agent的试错获得环境的反馈,可能需要等到过程结束才会得到一个反馈。过程性学习:强化学习的训练过程是一个随着时间变化的过程。环节之间的行为相关性:当前的行为影响后续的状态和行为。探索(explore)和利用(exploit)的综合:强化学习开始时agent更偏向于探索,行为具有一定的随机性,尝试多种可能性。训练很多轮后再降低探索的比例。赵卫东复旦大学状态A状态A状态A状态A行为1行为2行为3回报1:2回报2:3回报3:4强化学习应用领域赵卫东复旦大学强化学习基本概念:agentagent(智能体)不可避免地要与环境进行交互,这对某些任务相关的agent可能是有益的。因此,agent必须了解环境将如何响应所采取的操作。这是一种多次试验的试错学习方法。在强化学习的概念中,状态表示agent的当前状况。agent执行行为(动作)以探索环境。赵卫东复旦大学agent和环境强化学习是agent与周围的环境交互,并在此过程中学习执行任务,环境将为其提供奖励。agent在一种状态下所做的合适行为将获得高的奖励;另一方面,不良行为将受到惩罚。这可以用作机器人改善自身的学习信号。经过许多这样的试错事件后,机器人将根据奖励学习在给定状态下执行的最佳动作。离散动作和连续动作赵卫东复旦大学策略
赵卫东复旦大学回合agent在学习最大化目标之前,会反复试错,探索环境。每个从开始到结束的试验称为一个回合(episode)。起始位置可能来自不同位置。回合的结束或结尾可能是预期或非预期的结果。当agent完成其预定目标时,可以得到一个好的结果,该目标可以成功导航移动机器人到最终目的地,或者成功地拾取钉子,并将其放置在工业机器人手臂的孔中等等。回合也可能得到一个不令人满意的结局,agent撞到障碍物或陷入迷宫。赵卫东复旦大学轨轨迹(Trajectory)是从开始到结束一回合游戏中agent观测到的所有状态、动作序列,没有长度限制,记作。初始状态从初始状态分布中得到,agent的动作从策略中得到。轨迹可以使有限的(存在回合),也可以是无限的(持续的)。赵卫东复旦大学状态转移
赵卫东复旦大学奖励函数奖励(报酬,reward)函数定义了agent可能碰到的有利和不利情境。例如,达到目标的移动机器人会得到奖励,但撞到障碍物会受到惩罚。类似地,工业机器人手臂将钉子钉入孔中会获得奖励,但破裂或碰撞而造成的不良姿势可能是灾难性的,因而会受到惩罚。奖励函数度量agent策略的价值。agent的长期目标是最大限度地获得高的奖励或者最大限度地减少惩罚。赵卫东复旦大学奖励
赵卫东复旦大学折扣奖励
赵卫东复旦大学状态价值函数
人们往往低估了长期影响,而高估了短期作用
赵卫东复旦大学动作价值函数
赵卫东复旦大学状态价值函数和动作价值函数(1)状态价值函数和动作价值函数是可以相互转化的。赵卫东复旦大学
状态价值函数和动作价值函数(2)/p/359713951最优策略和动作强化学习的基本思想是最大化最终的回报(累计奖励)。最优策略
最优动作(活动)
赵卫东复旦大学优势函数
赵卫东复旦大学马尔可夫决策过程
赵卫东复旦大学议程强化学习(ReinforcementLearning)基本概念贝尔曼(Bellman)方程深度强化学习常用算法深度强化学习应用赵卫东复旦大学贝尔曼方程(1)贝尔曼(Bellman)方程体现一种递归关系。
赵卫东复旦大学
贝尔曼方程(2)状态价值函数和动作价值函数的贝尔曼方程也可以写成(式中S、A分别为agent的状态和动作集合):连续和离散变量的数学期望赵卫东复旦大学
最优价值函数和最优动作价值函数最优状态价值函数和最优动作价值函数的贝尔曼方程赵卫东复旦大学议程强化学习(ReinforcementLearning)基本概念贝尔曼(Bellman)方程深度强化学习常用算法深度强化学习应用赵卫东复旦大学深度学习和强化学习进入21世纪,深度学习的发展推动了强化学习与深度学习的结合。2013年,DeepMind公司发布了深度Q网络DeepQ-Network(DQN)算法,用于Atari游戏,掀起了深度强化学习的热潮。2016年3月,AlphaGo在围棋比赛中以4∶1击败顶尖职业棋手。2017年,AlphaZero将价值网络和策略网络整合成一个网络,击败了AlphaGo。赵卫东复旦大学深度强化学习的常见算法基于价值(value-based):基于动作的价值选择价值最高的动作。适用于非连续的动作:Q-Learning、DeepQNetwork和SARSA等。基于策略(policy-based):返回下一步动作的概率来选取动作。适用于非连续和连续的动作:PolicyGradients、TRPO、PPO等。Actor-Critic:组合基于价值和基于策略的方法,actor根据概率做出动作,critic根据动作评估价值:A2C、A3C等。赵卫东复旦大学基于价值的强化学习:SARSA算法学习率(α)决定了新获取的信息覆盖旧信息的程度。α为0时,表示让agent不学习任何东西;α为1时,表示让agent只学习最新的信息。探索(exploration)与利用(exploitation)的平衡!赵卫东复旦大学SARSA(State-Action-Reward-State-Action)算法是时序差分算法的一种,用的是离开该动作的即时奖励Rt与下一时刻状态St+1和动作at+1的动作价值函数乘折扣系数
。其中
为TD目标值,
为预测值,
为TD误差。SARSA算法将需要估计的状态价值函数V替换成动作价值函数Q,通过多个轨迹不断迭代兑现奖励,使得逐渐逼近真实的动作价值函数Q。SARSA算法每次更新价值函数时需要知道当前状态、当前动作、奖励、下一步状态、将要执行的动作。SARSA算法动作a的选取遵循-贪心策略,目标
值的计算也是根据
策略得到动作,属于在线策略(On-Policy)学习算法。价值函数的估计是通过自举(bootstrap)方法得到的:用未来状态的价值来估计当前状态的价值,可能引入了噪声。SARSA算法代码state_space_size和action_space_size分别是环境中的状态和操作的数量。num_episodes是运行SARSA算法的轮次数。Initial_state是环境的初始状态。take_action(current_state,action)是一个将当前状态和作为操作输入的函数,并返回下一个状态、奖励和一个指示情节是否完成的布尔值。在while循环中,使用在单独的函数epsilon_greedy_policy(epsilon,Q,current_state)中定义的epsilon-greedy策略来根据当前状态选择操作。使用概率epsilon选择一个随机动作,使用概率1-epsilon对当前状态具有最高Q值的动作。赵卫东复旦大学Q-Learning算法(1)Q-Learning是基于价值的经典算法之一,通过维护QTable记录状态在各种动作下的期望收益。通过训练不断地迭代QTable,以便获得在每个状态下的最优策略。Q-Learning采用下一个状态的数据进行学习。只适合状态和动作空间不大的场合。赵卫东复旦大学Q-Learning算法(2)Q-Learning算法的过程:1.使用策略π,获得动作a=π(S)根据Q表格来选择价值最大的动作(若两个动作效用值都为0,可以选第一个动作)。可能会使Q陷入局部最优,实际上采用改进的策略ε-贪心策略2.更新Q表格赵卫东复旦大学Q-Learning算法代码tate_space_size和action_space_size分别是环境中的状态数和动作数。num_episodes是要为运行算法的轮次数。initial_state是环境的起始状态。take_action(current_state,action)是一个函数,它将当前状态和一个动作作为输入,并返回下一个状态、奖励和一个指示轮次是否完成的布尔值。在while循环中,使用epsilon-greedy策略根据当前状态选择一个动作。使用概率epsilon选择一个随机动作,使用概率1-epsilon选择对当前状态具有最高Q值的动作。赵卫东复旦大学基于Q-Learning实现迷宫路径求解(1)迷宫游戏:要求从初始的S0走到目标S15格子,在走的过程中通过向上、向下、向左和向右的动作来控制圆形图标的移动,需要避开黑线的阻挡。赵卫东复旦大学基于Q-Learning实现迷宫路径求解(2)在这个游戏中,动作空间={向上,向下,向左,向右},状态空间
对应迷宫中16个格子,采用
对状态-动作对应的概率向量进行定义,其大小为15*4。最优动作策略函数
用值由每个状态中各动作除以当前状态下所有动作数量得到,例如在S5状态下,可以执行向左、向右和向下3个动作,则向左的概率为1/3≈33.3%,其他动作依此类推。赵卫东复旦大学基于Q-Learning实现迷宫路径求解(3)importnumpyasnpfrommazeimportMazeDIRECTION=["Up","Right","Down","Left"]classAgent:def__init__(self):self.state=0#策略:各状态对应的动作执行概率self.state_action_pi=Noneself.action=Noneself.state_history=[[0,np.nan]]self.step_log=list()#定义不同状态S对应动作,每一行的4个数值分别代:Up、Right、Down、Left动作self.theta=np.array([[np.nan,1,np.nan,np.nan],#S0:开始[np.nan,1,np.nan,1],#S1[np.nan,np.nan,1,1],#S2[np.nan,np.nan,1,np.nan],#S3[np.nan,1,np.nan,np.nan],#S4[np.nan,1,1,1],#S5[1,1,np.nan,1],#S6[1,np.nan,np.nan,1],#S7[np.nan,np.nan,1,np.nan],#S8[1,1,1,np.nan],#S9[np.nan,1,1,np.nan],#S10
[np.nan,np.nan,1,1],#S11[1,1,np.nan,np.nan],#S12[1,1,np.nan,1],#S13[1,np.nan,np.nan,1],#S14])#S15:结束
#np.nan表示在当前状态下某动作不会发生state_count,action_count=self.theta.shape#初始的epsilon值为1self.epsilon=1.0#随机初始化Q表格self.Q=np.random.rand(state_count,action_count)*self.theta#设置目标状态的序号为15self.END_STATE=15#转化为概率self.initial_covert_from_theta_to_pi()'''将初始化状态值转化为概率'''definitial_covert_from_theta_to_pi(self):[m,n]=self.theta.shapepi=np.zeros((m,n))#更新每种状态下各动作的概率foriinrange(0,m):pi[i,:]=self.theta[i,:]/np.nansum(self.theta[i,:])#转化为数字,空转为0self.state_action_pi=np.nan_to_num(pi)定义初始化系统的变量赵卫东复旦大学基于Q-Learning实现迷宫路径求解(4)获取动作结果对应的函数定义defget_action(self):p_value=self.state_action_pi[self.state,:]ifnp.random.rand()<self.epsilon:#随机选择动作next_direction=np.random.choice(DIRECTION,p=p_value)else:#计算Q(s,a)最大化值对应的动作q_value=self.Q[self.state,:]next_direction=DIRECTION[int(np.nanargmax(q_value))]
ifnext_direction=="Up":action=0elifnext_direction=="Right":action=1elifnext_direction=="Down":action=2elifnext_direction=="Left":action=3returnaction获得在下一个状态的函数定义defmove_next_state(self,action=None):ifactionisnotNone:next_direction=DIRECTION[action]else:next_direction=np.random.choice(DIRECTION,p=self.state_action_
pi[self.state,:])ifnext_direction=="Up":next_state=self.state-4
#表示向上移动一行,对应状态序列减去4个elifnext_direction=="Right":next_state=self.state+1elifnext_direction=="Down":next_state=self.state+4#表示向下移动一行,对应状态序列加上4个elifnext_direction=="Left":next_state=self.state-1self.state=next_statereturnself.state赵卫东复旦大学基于Q-Learning实现迷宫路径求解(5)更新Q表格的函数定义defupdate_Q(self,s,a,r,s_next,a_next,Q,alpha,gamma):ifs_next==self.END_STATE:#达到目标Q[s,a]=Q[s,a]+alpha*(r-Q[s,a])else:#按Q-Learning原理,更新Q表格中对应(s,a)单元格的值Q[s,a]=Q[s,a]+alpha*(r+gamma*np.nanmax(Q[s_next,:])-Q[s,a])self.Q=Q赵卫东复旦大学基于Q-Learning实现迷宫路径求解(6)更新Q表格中的状态-动作对应单元格的值defsolve_maze(self,alpha=None,gamma=None):#获取下一个动作a_next=self.get_action()whileTrue:act=a_next#保存动作self.state_history[-1][1]=act#暂存当前状态cur_state=self.state#寻找下一个状态state_next=self.move_next_state(action=act)#保存历史记录self.state_history.append([state_next,np.nan])ifstate_next==self.END_STATE:#到达目标状态reward=1a_next=np.nanelse:#获得下一个动作reward=0a_next=self.get_action()#更新Q表格单元格的值self.update_Q(cur_state,act,reward,state_next,a_next,self.Q,alpha,gamma)#到达目标后停止循环ifstate_next==self.END_STATE:break赵卫东复旦大学基于Q-Learning实现迷宫路径求解(7)迷宫游戏执行训练的代码deftrain(self,alpha=0.15,gamma=0.9,total_episode=10):v=np.nanmax(self.Q,axis=1)episode=1V=list()V.append(v)whileTrue:#衰减epsilon值self.epsilon=self.epsilon/2#完成一次迷宫任务self.solve_maze(alpha=alpha,gamma=gamma)#更新V结果new_v=np.nanmax(self.Q,axis=1)print(f"Episode:{episode}Statevaluedifference:{np.sum(np.abs(new_v-v))}")v=new_vV.append(v)episode+=1#过程日志self.step_log.append(len(self.state_history)-1)ifepisode>total_episode:print("Statevalueaftertraining:",V)breakself.state=0self.state_history=[[0,np.nan]]赵卫东复旦大学基于Q-Learning实现迷宫路径求解(8)主程序代码if__name__=="__main__":#定义对象agent=Agent()#训练agent.train(alpha=0.15,gamma=0.8,total_episode=100)print("stephistory:",agent.step_log)forstate,actinagent.state_history:ifstate==agent.END_STATE:next_direction="Success"else:next_direction=DIRECTION[act]print("State:",state,"Go",next_direction)#可视化保存结果maze=Maze()maze.save_animation('maze.gif',agent.state_history)stephistory:[62,178,164,226,30,20,14,26,24,18,26,22,22,14,12,16,18,10,16,14,12,10,18,10,10,10,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]State:0GoRightState:1GoRightState:2GoDownState:6GoLeftState:5GoDownState:9GoDownState:13GoRightState:14GoUpState:10GoRightState:11GoDownState:15GoSuccess赵卫东复旦大学赵卫东复旦大学Q-Learning算法(基于神经网络)Q-learning学习最优策略,而SARSA在探索时学会了近优的策略。赵卫东复旦大学Q-Learning算法也是时序差分算法的一种,相比于SARSA算法多了对动作a取最大值的操作:其中,
为TD目标值,
作为预测值,
为TD误差。深度Q网络(1)深度Q网络(DeepQNetwork,DQN):用神经网络近似。DQN是一种无模型、非策略算法。赵卫东复旦大学深度Q网络(2)深度Q网络(DeepQNetwork,DQN)结构赵卫东复旦大学深度Q网络(3)时序差分学习:把网络的训练转化为回归问题
估计值实际值估计值
赵卫东复旦大学深度Q网络(4)时序差分学习
赵卫东复旦大学深度Q网络(5)DQN训练
赵卫东复旦大学深度Q网络(6)深度Q网络DQN(DeepQNetwork)采用了经验回放方法:agent采用策略
π
与环境交互,把收集到的数据放入回放缓冲区,回放缓冲区在装满时会删除旧数据。
回放缓冲区里面的经验可能来自不同的策略(off-policy策略)。注意时间上相近的状态有比较大的相关性,因此可以从回放缓冲区随机抽取一部分样本训练。赵卫东复旦大学深度Q网络(7)深度Q网络DQN(DeepQNetwork)还采用了
贪心探索方法:开始时需要一定的随机性去探索不同的策略,随着迭代次数的增加,应根据积累的经验来选取策略。赵卫东复旦大学深度Q网络代码赵卫东复旦大学DDQN网络(1)DQN估计值比实际值要大(算法选择价值最大的活动),导致得不到最优值。DDQN(DoubleDeepQNetwork)模型选择动作和计算价值不实用同一个网络,可以更加稳定,减少过大偏差。
赵卫东复旦大学DDQN网络(2)赵卫东复旦大学DDQN网络(3)与DQN网络的区别目标网络更新不同动作选择不同
赵卫东复旦大学
DuelingDQN网络(1)DuelingDQN网络是在DQN基础的改进。把DQN最后的全连接层输出的n个Q值(n代表可选择的动作个数),改为两个变量V(statevalue)和A(actionadvantage),这2个变量的和表示Q值。在同一个状态下,所有动作的优势值之和为0。赵卫东复旦大学𝑄(𝑠,𝑎)=𝐴(𝑠,𝑎)+𝑉(𝑠)η是状态价值函数和优势函数共享的网络参数,一般用在神经网络中,用来提取特征的前几层;而α,β分别为状态价值函数和优势函数网络的参数。DuelingDQN网络(2)DQN相比DuelingDQN能够获得更多的回报。DuelingDQN可以缓解过高估计这一问题。赵卫东复旦大学DuelingDQN网络(3)每一次更新时,状态价值函数都会被更新,这也会影响到其他动作的Q值。DQN算法只会更新某个动作的Q值,其他动作的Q值就不会更新。赵卫东复旦大学DuelingDQN和DoubleDQN的思想可以结合使用,形成DuelingDoubleDQN,同时利用了两种改进的优势进一步提高了性能和稳定性。DuelingDQN网络(4)赵卫东复旦大学DuelingDQN的训练过程是一个循环过程,主要包括以下步骤:初始化网络:初始化主网络和目标网络的参数。交互与采样:智能体在环境中交互,收集经验并存储到经验回放缓存中。采样经验:从经验回放缓存中随机采样一批数据。计算目标Q值:根据采样数据计算目标Q值。计算损失函数:计算预测Q值与目标Q值之间的损失。更新网络参数:通过梯度下降法更新主网络的参数。更新目标网络:根据选择的更新方式更新目标网络的参数。重复上述步骤:直到智能体的性能达到预期或训练完成。在线策略和离线策略在线策略(On-Policy)是指agent使用同一个策略探索环境和更新策略,例如SARSA算法。离线策略(Off-Policy)是指agent使用不同策略探索环境和更新策略。例如采用ε贪心策略的DQN网络。赵卫东复旦大学基于策略的强化学习(1)通过状态选出一个行为,利用reward对选择行为的概率进行增强和减弱。近似的价值函数策略网络策略梯度提升
赵卫东复旦大学基于策略的强化学习(2)近似的价值函数随机选择某个活动,,得到策略梯度的无偏估计
赵卫东复旦大学Actor-critic网络(1)状态价值函数的近似用策略网络近似,,用价值网络网络近似策略网络(Actor)和价值网络(Critic)赵卫东复旦大学运动员-裁判员网络Actor-critic网络(2)策略网络(Actor)和价值网络(Critic)赵卫东复旦大学Actor-critic网络(3)
赵卫东复旦大学Actor-critic网络(4)随机策略梯度
赵卫东复旦大学Actor-Critic算法中的高方差的问题A2C算法(1)赵卫东复旦大学解决Actor-Critic算法的策略梯度高方差问题:策略梯度估计的方差(环境的随机性)价值函数估计的方差(自举引起):受状态价值波动影响样本效率低A2C(AdvantageActor-Critic)算法将策略梯度分解为两部分:Advantage函数和策略函数。
减弱Q值受状态价值波动影响:A2C算法可以更好地控制策略梯度的方差,从而提高算法的稳定性。
A2C算法(2)赵卫东复旦大学A2C算法通常采用同步并行的方式:多个worker(工作线程)同时运行,每个worker维护一份Actor和Critic网络的副本。这些worker独立地与环境交互,收集数据,并行更新本地网络参数。这些worker会周期性地将自己的网络参数同步到一个全局的网络。这些worker是同步的,在每轮训练中,Globalnetwork等待每个worker完成当前的episode,然后把这些worker上传的梯度求平均,得到一个统一的梯度并用其更新主网络的参数,最后用这个参数同时更新所有的worker。A2C算法(3)A2C算法的损失函数包含三部分:策略损失、价值损失和熵损失。策略损失用策略梯度来更新策略网络。价值损失是使用均方误差来更新价值网络。熵损失是为了鼓励探索,增加策略的随机性。赵卫东复旦大学loss=policy_loss+self.value_coeff*value_loss-self.entropy_coeff*entropy/rpatrik96/pytorch-a2cA3C算法(1)
赵卫东复旦大学A3C算法(2)A3C算法采用了异步的训练方式,多个训练线程独立地与环境交互,并通过参数共享实现梯度更新。在训练中,每个线程都会复制全局模型并在各自线程进行模型的训练。较高的训练效率和稳定性,提高策略函数和价值函数的训练效果。A3C算法的特点:支持连续动作空间和高维状态空间的强化学习。通过多个并行的智能体实现快速而稳定的训练。通过异步训练提高了训练的效率和稳定性。赵卫东复旦大学A3C算法(3)赵卫东复旦大学TRPO算法(1)置信域策略优化算法(TrustRegionPolicyOptimization,TRPO)是PolicySearchMethods中的一类随机策略搜索算法,优化了梯度更新步长选择的问题,使算法既高效,又稳定。赵卫东复旦大学TRPO算法(2)TRPO算法(2015年提出)的核心是找到合适的步长,使每次更新时都能保证回报函数单调递增。赵卫东复旦大学策略梯度参数更新方程为:TRPO算法(3)为了减少计算量,TRPO算法通过采用KL散度平均值来近似代替。赵卫东复旦大学使用共轭梯度法和线搜索求解约束优化问题将目标线性近似,约束二次近似,计算搜索方向在方向上进行线性搜索,满足约束的同时,改进非线性目标TRPO算法(3)为了减少计算量,TRPO算法通过采用KL散度平均值来近似代替。赵卫东复旦大学使用共轭梯度法和线搜索求解约束优化问题将目标线性近似,约束二次近似,计算搜索方向在方向上进行线性搜索,满足约束的同时,改进非线性目标PPO算法(1)
赵卫东复旦大学
轨迹样本
收集轨迹样本策略提升
PPO性能稳定性易于实现低计算成本PPO算法(2)
赵卫东复旦大学
PPO算法(3)赵卫东复旦大学
……
PPO算法(4)赵卫东复旦大学PPO算法在TRPO目标的基础上,使用一种无约束的裁剪代理目标(ClippedSurrogateObjective),优化这个目标可以控制新旧策略的差异:
PPO算法(5)赵卫东复旦大学
PPO算法(6)赵卫东复旦大学
梯度截断,策略不更新
梯度不截断,策略更新赵卫东复旦大学PPO算法(7)PPO算法使用一个单独的网络来估计值函数:为了进一步提高策略的探索能力,PPO算法引入了熵正则化。熵正则化通过在目标函数中加入熵项来鼓励策略的多样性,从而避免策略过早收敛到局部最优解。PPO算法的最终目标函数可以表示为:其中,,
是策略的熵,
是超参数,分别控制值函数优化和熵正则化的权重。赵卫东复旦大学同步策略同步策略方法使用相同的策略进行评估,从而对操作做出决策。同步策略算法通常没有缓冲区;一般经验是在原地训练模型。SARSA等是常见的同步策略算法。赵卫东复旦大学异步策略异步策略方法使用不同的策略来制定行动决策并评估绩效。例如,许多异步策略算法使用重(回)放缓冲区来存储体验,并从重放缓冲区中采样数据以训练模型。如果使用缓冲区对一小批经验数据进行采样然后训练agent,则它是异步策略学习,因为机器人的当前策略(用于获取即时动作)与用于获取训练agent的小批量经验中的样本的策略不同(因为策略已从收集数据的较早时刻变为当前时刻)。DQN、DDQN、A3C和DDPG是常见的异步策略算法。赵卫东复旦大学无模型训练和基于模型训练不用学习环境模型的强化学习算法称为无模型算法。如果构建环境模型,则该算法被称为基于模型算法。如果使用价值(V)或动作-价值(Q)函数来评估性能,则它们被称为无模型算法,因为没有使用特定的环境模型。另一方面,如果你构建了环境如何从一种状态转换到另一种状态的模型,或者确定agent将通过模型从环境获得多少奖励,那么它们被称为基于模型的算法。赵卫东复旦大学议程强化学习(ReinforcementLearning)基本概念贝尔曼(Bellman)方程深度强化学习常用算法深度强化学习应用赵卫东复旦大学案例1
背景介绍在线内容服务的爆炸性增长为用户提供了大量的选择。新闻聚合服务是其中最受欢迎的在线服务之一,如新浪新闻等新闻媒体可以提供大量的新闻内容,但内容的数量大大超过了用户可以消化的范围。因此,个性化在线内容推荐是提高用户体验的必要条件。由于新闻特征和用户偏好的动态性,在线个性化新闻推荐是一个极具挑战性的问题。参考文献:GuanjieZheng,FuzhengZhang,ZihanZheng,etal.ADeepReinforcementLearningFrameworkforNewsRecommendation.ProceedingsofWWW2018,April23–27,2018,Lyon,France./10.1145/3178876.3185994新闻推荐赵卫东复旦大学案例
面临的问题市面上已有多种针对在线个性化新闻推荐的解决方案,例如基于内容的推荐,协同过滤算法等,但这些方法并不能解决以下三个问题:新闻推荐的动态变化难以处理。新闻的实时性很差,据统计,从一条新闻发布的时间到最后一次点击的时间的平均时间是4.1小时。因此,新闻特征和新闻候选集会迅速变化。目前的推荐方法通常只考虑以新闻的点击量签或对新闻的满意度作为用户的反馈(reward)。然而,一个用户将多久返回到此服务也能表明该用户对推荐有多满意。推荐方法倾向于向用户推荐类似主题的新闻,这会造成用户的审美疲劳。更具体地说,当前推荐算法的探索策略仍不够有效。赵卫东复旦大学案例
框架概述为了解决上述三个问题,案例使用了一个深度强化学习框架。针对新闻动态性:案例提出了一个强化学习框架来做在线个性化新闻推荐。这个框架应用了DQN网络,可以同时照顾即时和未来的奖励。针对用户反馈的改进:在用户反馈中增加用户活跃度指标,以帮助提高推荐的准确性,而不仅仅是使用用户是否点击标签作为反馈。针对探索策略的改进:采用了一种更有效的探索策略---决斗梯度下降法(DuelingBanditGradientDescent)。避免了经典探索策略,如ϵ-greedy和UpperConfidenceBound引起的推荐精度下降。框架概要图赵卫东复旦大学案例
特征构成从用户资料以及新闻中提取信息,构建了四种特征:Newsfeatures:形式为417维独热向量。描述了特定属性是否出现在新闻中,以及过去一段时间(过去1、6、24个小时、一周以及一年)新闻的点击量。Userfeatures:形式为2065维向量。描述了过去一段时间(过去1、6、24个小时、一周以及一年)内用户点击的新闻内容(如标题,类别,提供者等),以及这5个时间段用户的点击数。User-newsfeatures:形式为25维向量。描述了用户和某篇新闻间的交互情况。例如新闻内容(如标题,类别,提供者等)在用户阅读历史中的频率。Contextfeatures:形式为32维向量。描述了一个新闻被用户请求时的背景,如请求发生的时间,新闻的新鲜度(请求时间与新闻出版时间之差)等。赵卫东复旦大学案例
强化学习框架本案例设计的强化学习框架的详细结构如右图。该框架分为离线部分以及在线部分。赵卫东复旦大学案例
结论使用基于DQN的强化学习框架用于在线个性化新闻推荐可以有效地对动态新闻特征和用户偏好进行建模,并能考虑未来的情况,获得更高的回报。增加用户活跃度作为用户反馈,可以捕捉更多的用户反馈信息。实验应用了一种更有效的探索策略,以改善推荐多样性,并寻找潜在的更有价值的推荐。经实验证明,综上所述的方案能显著提高推荐精度和推荐多样性。同时也可以推广到许多其他推荐问题。赵卫东复旦大学案例2
基于运动员-评论家算法的基金定投策略将深度强化学习应用在基金定投策略场景,主要过程如下:确定合适的基金数据集作为预测和决策对象,并对数据集进行划分和预处理;定义强化学习的环境、状态、动作、奖励、状态转移,建立起马尔可夫决策过程;定义深度学习网络结构,将深度学习与强化学习结合形成深度强化学习模型;将探索和应用方法相结合训练模型、返回模型最佳参数;仅对深度强化学习应用方法在测试集上测试模型的泛化能力;统计训练、测试过程中不同策略的输出结果及表现。赵卫东复旦大学基于运动员-评论家算法的基金定投策略强化学习在交易策略上有根据价值函数和基于策略两种学习方法。实例中选用将两者相结合的运动员-评论家模型,为了提高数据的可复用性和提升模型训练的效果,引入经验回放机制,将运动员-评论家模型改为离线策略算法。赵卫东复旦大学基于运动员-评论家算法的基金定投策略
赵卫东复旦大学策略网络和价值网络的损失函数策略网络的损失函数为:其中,价值网络也以均方误差作为损失函数赵卫东复旦大学数据数据集采用中国场外开放式基金数据,并使用Tushare中的对应基金特征字段作为辅助。数据集中包括从2018到2021
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 屯昌县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 枣庄市山亭区2025-2026学年第二学期五年级语文第六单元测试卷(部编版含答案)
- 白城市大安市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 临夏回族自治州临夏市2025-2026学年第二学期五年级语文期中考试卷(部编版含答案)
- 长治市平顺县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 河池市巴马瑶族自治县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 张家口市尚义县2025-2026学年第二学期二年级语文期中考试卷(部编版含答案)
- 深度解析(2026)《2026-2027年光伏组件在建筑窗户上的半透明应用实现采光与发电平衡在高端绿色建筑中示范并获建筑开发商与幕墙公司联合研发》
- 物理判断题目及答案解析
- 17 盼 公开课一等奖创新教学设计
- 校园防溺水安全教育课件
- 5.1 人要自强(课件) 2025-2026学年统编版道德与法治七年级下册
- 2026年智能科学与技术专业发展规划
- 2026春季安徽黄山东海景区开发有限公司东海索道分公司招聘49人考试备考试题及答案解析
- 2026年湖北国土资源职业学院单招职业技能考试题库及答案详细解析
- 广东粤财投资控股有限公司招聘笔试题库2026
- 肺癌诊治中心建设与管理指南
- 建筑工程起重吊装监理实施细则
- 房屋建筑维修保养方案
- 黔南民族师范学院物流管理专升本考试真题
- GB/T 2829-2025周期检验计数抽样程序及表(适用于对过程稳定性的检验)
评论
0/150
提交评论