learning the weight of each paras in DWA(Dynamic Window Approach) by using DQN(Deep Q-Learning)
使用matlab平台及deeplearning工具包,利用DQN(Deep Q-Learning)对DWA(Dynamic Window Approach)算法中各参数的权重进行学习。
直接运行DQN.m即可。
主训练函数,负责调用Agent与Environment的各个模块;训练时直接运行该文件即可。
对应RL(增强学习)中的Agent模块,完成学习网络的建立(新建或加载已有模型),DWA参数预测(前向传播)与更新。
通过cnn(卷积神经网络),由当前的状态得到此时各个选择的Q值,进而得到当前状态下的参数。
由上一步得到的参数前进后环境反馈得到的reward,更新卷积神经网络,到达对卷及神经网络进行学习的目的。
卷积神经网络的建立与定义,参照了DeepLearnToolbox并进行了部分修改。
神经网络的前向传播与残差的后向传播,参照了DeepLearnToolbox并进行了部分修改;可支持多通道、batch训练。
对应RL(增强学习)中的Environment模块,完成对DWA算法的仿真。
接受DQN.m传递的参数,利用仿真环境得到小车的下一帧周围环境、本次前进的奖励、小车的状态(是否到达终点,是否绕圈、停止等)并返回。
DWA主体部分,完成对各个路径的评价。
随机在地图上生成起始点和终点,要求避免两者距离太小或有一在障碍物中的情况。
按照坐标得到小车周围的障碍物信息。
由DQN.m保存的当前模型参数信息,文件名为保存模型时的时间戳,可通过修改DQN.m中调用CreateNeuralNetneural.m的形式决定加载已有模型进行训练或者创建一个新模型。
仿真的障碍物信息,可根据需要修改。
约定:白色(高像素值)部分为障碍物,黑色(低像素值)部分为可行区域。
目前尚未得到较好的训练结果。
建议修改方向:神经网络的结构、奖励的形式与大小等。
联系方式【Email:zhaoxrthu@gmail.com】