精华内容
下载资源
问答
  • 强化学习matlab源代码

    2020-12-04 01:30:15
    强化学习matlab源代码很少见的源代码,详细介绍Q学习的编程过程。 强化学习matlab源代码很少见的源代码,详细介绍Q学习的编程过程。
  • 强化学习matlab代码

    2020-02-29 17:30:29
    强化学习算法,实现强化学习对网络资源的分配,目的是频谱利用最大化 强化学习算法,实现强化学习对网络资源的分配,目的是频谱利用最大化
  • 强化学习MATLAB代码实现 目录倒立摆代码实现 倒立摆代码实现 代码如下(MATLAB): mdl = 'rlSimplePendulumModel'; open_system(mdl) env = rlPredefinedEnv('SimplePendulumModel-Discrete'); env.ResetFcn = @...

    强化学习MATLAB代码实现


    倒立摆代码实现

    代码如下(MATLAB):

    mdl = 'rlSimplePendulumModel';
    open_system(mdl)
    env = rlPredefinedEnv('SimplePendulumModel-Discrete');
    env.ResetFcn = @(in)setVariable(in,'theta0',pi,'Workspace',mdl);
    obsInfo = getObservationInfo(env);
    actInfo = getActionInfo(env);
    Ts = 0.05;
    Tf = 20;
    rng(0);
    dnn = [
        featureInputLayer(3,'Normalization','none','Name','state')
        fullyConnectedLayer(24,'Name','CriticStateFC1')
        reluLayer('Name','CriticRelu1')
        fullyConnectedLayer(48,'Name','CriticStateFC2')
        reluLayer('Name','CriticCommonRelu')
        fullyConnectedLayer(3,'Name','output')];
    figure;
    plot(layerGraph(dnn));
    criticOpts = rlRepresentationOptions('LearnRate',0.001,'GradientThreshold',1);
    critic = rlQValueRepresentation(dnn,obsInfo,actInfo,'Observation',{'state'},criticOpts);
    agentOptions = rlDQNAgentOptions(...
        'SampleTime',Ts,...
        'TargetSmoothFactor',1e-3,...
        'ExperienceBufferLength',3000,... 
        'UseDoubleDQN',false,...
        'DiscountFactor',0.9,...
        'MiniBatchSize',64);
    agent = rlDQNAgent(critic,agentOptions);
    trainingOptions = rlTrainingOptions(...
        'MaxEpisodes',1000,...
        'MaxStepsPerEpisode',500,...
        'ScoreAveragingWindowLength',5,...
        'Verbose',false,...
        'Plots','training-progress',...
        'StopTrainingCriteria','AverageReward',...
        'StopTrainingValue',-1100,...
        'SaveAgentCriteria','EpisodeReward',...
        'SaveAgentValue',-1100);
    doTraining = false;
    
    if doTraining
        trainingStats = train(agent,env,trainingOptions);
    else
        load('SimulinkPendulumDQNMulti.mat','agent');
    end
    simOptions = rlSimulationOptions('MaxSteps',500);
    experience = sim(env,agent,simOptions);
    

    来自MATLAB帮助文档

    展开全文
  • Q强化学习matlab源代码

    热门讨论 2011-05-09 22:05:49
    Q强化学习matlab源代码,注释详细,本人亲自运行测试。
  • matlab强化学习中山地车问题的代码实现,包括Q学习、Sarsa学习、Sarsa(lambda)等
  • 强化学习matlab工具箱应用

    千次阅读 热门讨论 2020-03-11 19:27:48
    众所周知reinforcement learning Toolbax for matlab是非常强大的,小编刚开始使用时走了很多弯路,有试过一层一层的去找调用的函数...接下来想说下如何快速上手编写强化学习的代码。小编以用DQN训练Cart-Pole为例:

    1. 如何使用强化学习强大的工具箱编写自己的工程

    众所周知reinforcement learning Toolbax for matlab是非常强大的,小编刚开始使用时走了很多弯路,有试过一层一层的去找调用的函数等等,看过底层的同学就知道用类做的集成,如果你的面向对象基础知识很牢固大概能看懂这其中的奥秘。小编研究下去的结果就是快吐了,其实没有必要这样。接下来想说下如何快速上手编写强化学习的代码。小编以用DQN训练Cart-Pole为例:
    

    2.了解和编程步骤

    2.1环境的编写

    强化学习的主体之一是环境,MATLAB的reinforcement learning toolbax中环境有三种编写方式:

    1. 预定义的模型(是MATLAB内部集成好的模型,可以拿来学习下强化学习)
    2. M函数编写
    3. simlink仿真模型
      其中后两种主要是为用户自定义的环境服务的,小编主要分享第二种,请详细阅读link

    2.2 算法部分

    这个部分只需要调用工具箱即可,参考案例为link按照此链接的内容进行编写,此时文中的env = rlPredefinedEnv("CartPole-Discrete")可以用上部分自己编写的环境代替。然后开始训练即可。
    提醒大家一下现在matlab版本更新,如果你用的2019版本的很有可能好多函数不可用,但是19版本的函数2020一定可以用。

    代码

    clc;
    clear;
    close all;
    ObservationInfo = rlNumericSpec([4 1]);
    ObservationInfo.Name = 'CartPole States';
    ObservationInfo.Description = 'x, dx, theta, dtheta';
    %%%%动作状态空间
    ActionInfo = rlFiniteSetSpec([-10 10]);
    ActionInfo.Name = 'CartPole Action';
    %%创建环境
    env = rlFunctionEnv(ObservationInfo,ActionInfo,'myStepFunction','myResetFunction');
    %%%%创建DQN
    statePath = [
        imageInputLayer([4 1 1],'Normalization','none','Name','state')
        fullyConnectedLayer(24,'Name','CriticStateFC1')
        reluLayer('Name','CriticRelu1')
        fullyConnectedLayer(24,'Name','CriticStateFC2')];
    actionPath = [
        imageInputLayer([1 1 1],'Normalization','none','Name','action')
        fullyConnectedLayer(24,'Name','CriticActionFC1')];
    commonPath = [
        additionLayer(2,'Name','add')
        reluLayer('Name','CriticCommonRelu')
        fullyConnectedLayer(1,'Name','output')];
    criticNetwork = layerGraph(statePath);
    criticNetwork = addLayers(criticNetwork, actionPath);
    criticNetwork = addLayers(criticNetwork, commonPath);    
    criticNetwork = connectLayers(criticNetwork,'CriticStateFC2','add/in1');
    criticNetwork = connectLayers(criticNetwork,'CriticActionFC1','add/in2');
    figure
    plot(criticNetwork)
    %%%
    criticOpts = rlRepresentationOptions('LearnRate',0.01,'GradientThreshold',1);
    obsInfo = getObservationInfo(env);
    actInfo = getActionInfo(env);
    critic = rlRepresentation(criticNetwork,obsInfo,actInfo,'Observation',{'state'},'Action',{'action'},criticOpts);
    agentOpts = rlDQNAgentOptions(...
        'UseDoubleDQN',false, ...    
        'TargetUpdateMethod',"periodic", ...
        'TargetUpdateFrequency',4, ...   
        'ExperienceBufferLength',100000, ...
        'DiscountFactor',0.99, ...
        'MiniBatchSize',256);
    agent = rlDQNAgent(critic,agentOpts);
    trainOpts = rlTrainingOptions(...
        'MaxEpisodes', 1000, ...
        'MaxStepsPerEpisode', 500, ...
        'Verbose', false, ...
        'Plots','training-progress',...
        'StopTrainingCriteria','AverageReward',...
        'StopTrainingValue',480); 
    doTraining = true;
    if doTraining    
        % Train the agent.
        trainingStats = train(agent,env,trainOpts);
    else
        % Load pretrained agent for the example.
        load('MATLABCartpoleDQN.mat','agent');
    end
    

    其中myStepFunction、myResetFunction函数参考链接一。弄懂上文中的两个链接的内容离编写一个自己的强化学习程序不远了。用深度强化学习解决迷宫问题后续会发布。

    展开全文
  • This brings up a window with all the displays and buttons. Pull down the "Run" menu at top of window and select "Start". From then on you may click on the "update" buttons and change the text in the ...
  • 参考 6.4 (Sarsa: On-Policy TD Control), Reinforcement learning: An Introduction, RS Sutton, AG Barto, MIT press 在这个演示中,强化学习技术 SARSA 解决了两个不同的迷宫。 State-Action-Reward-State-Action...
  • 使用Matlab / Octave的循环强化学习实施 20210321更新:此仓库的PyTorch端口可在。 参考: 文件描述 核心功能 costFunction.m updateFt.m rewardFunction.m featureNormalize.m sharpRatio.m 实用功能 ...
  • 一个简单的matlab的M语言编写的强化学习Q-Learning算法
  • 学习强化学习(在MATLAB:registered:中) 抽象的 该软件是一个游乐场,专门针对具有多种设置的详细学习强化学习(RL)。 运动场的核心是基于移动机器人的模型,被称为“扩展的非完整双积分器”(ENDI)。 有关说明,...
  • matlab中平衡杆问题的强化学习代码,包含Q学习、Sarsa学习的实现。
  • 该软件是一个游乐场,专门针对具有多种设置的详细学习强化学习(RL)。 游乐场的核心基于一个移动机器人模型,称为所谓的“扩展非完整双积分器”(ENDI)。 有关说明,请参见这些注释。 整个代码的流程图可以在这里...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 861
精华内容 344
关键字:

强化学习matlab

matlab 订阅