视觉机器学习20讲-MATLAB源码示例(10)-增强学习算法)
1. 增强学习算法
增强学习(Reinforcement Learning)要解决的是这样的问题:一个能感知环境的自治agent,怎样通过学习选择能达到其目标的最优动作。
增强学习目的是构造一个控制策略,使得Agent行为性能达到最大。Agent从复杂的环境中感知信息,对信息进行处理。Agent通过学习改进自身的性能并选择行为,从而产生群体行为的选择,个体行为选择和群体行为选择使得Agent作出决策选择某一动作,进而影响环境。
增强学习是指从动物学习、随机逼近和优化控制等理论发展而来,是一种无导师在线学习技术,从环境状态到动作映射学习,使得Agent根据最大奖励值采取最优的策略;Agent感知环境中的状态信息,搜索策略(哪种策略可以产生最有效的学习)选择最优的动作,从而引起状态的改变并得到一个延迟回报值,更新评估函数,完成一次学习过程后,进入下一轮的学习训练,重复循环迭代,直到满足整个学习的条件,终止学习。
2. Matlab仿真
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:演示增强学习算法在计算机视觉中的应用
%基于增强学习实现目标分类;
%环境:Win7,Matlab2018a
%Modi: C.S
%时间:2022-4-5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global NO_REPLICATIONS ITERMAX NA NS SMALL TPM TRM LAMBDA
global3 % global parameters initialized
stat=struct('Q',zeros(NS,NA),'iter',0,'old_action',1,'old_state',1,'current_state',1,'rimm',0,'total_reward',0);
done=0; % Pnemonic for simulation, 1 stands for end
% 0 stands for continue
while 0==done
[stat,done]=jump_learn(stat);
end
policy=pol_finder(stat);
3. 仿真结果
>> main
policy =
2 1
value_function =
55.2019 49.6852
state =
1
action =
1
ans =
44.3862
state =
1
action =
2
ans =
55.2019
state =
2
action =
1
ans =
49.6852
state =
2
action =
2
ans =
46.1931
4. 小结
增强学习算法发展在现在比较有名的就是AlphaGo的核心:深度增强学习算法,有兴趣的推荐去仔细查看全文《机器学习20讲》中第十讲内容,源码在分享的资源中已打包好,欢迎取用。