机器学习之强化学习
文章平均质量分 74
该专栏将记录作者学习强化学习的阶段性总结
魔法攻城狮MRL
技术到位,功夫到家
展开
-
【FlappyBird小游戏】编写AI逻辑(一)——RL系统和数据预处理
提示:如果本文对您有帮助,欢迎点赞支持!文章目录前言一、强化学习系统二、帧数据的预处理1、抓取帧图像2、预处理初始状态3、预处理下一状态前言我们的目标是训练小鸟尽可能地保持存活通过更多的管道障碍物从而最大化游戏得分。当很难完全罗列预定的行为进行编程时,就可采用强化学习方式。我们计划设计一个强化学习系统,其中Q函数通过一个卷积神经网络(深度Q网络)来模拟,其输入是原始像素,输出是一个评估未来奖励的价值函数,通过该价值函数来指导智能体采取动作。深度Q网络的训练是提取游戏运原创 2021-05-04 22:10:30 · 1423 阅读 · 1 评论 -
【FlappyBird小游戏】编写AI逻辑(二)——基于队列的经验重放池
如果本文对您有帮助,欢迎点赞支持!文章目录前言第1种设计方式:基于Numpy数组第2种设计方式:基于Python数组第3种设计方式:基于队列前言书写经验重放池是Deep Rl算法的必备技术之一,常见的是基于数组的形式,本文列举3种常见的实现方式。本文不会详细介绍代码,因为太过简单,不理解的同学可以直接在评论区提问。第1种设计方式:基于Numpy数组class ReplayBuffer(object): def __init__(self, capacity,原创 2021-05-06 15:52:14 · 758 阅读 · 1 评论 -
【FlappyBird小游戏】编写AI逻辑(三)——RL算法的训练主循环
本文隶属于一个完整小项目,建议读者按照顺序阅读。本文仅仅展示最关键的代码部分,并不会列举所有代码细节,相信具备RL基础的同学理解起来没有困难。全部的AI代码可以在【Python小游戏】用AI玩Python小游戏FlappyBird【源码】中找到开源地址。如果本文对您有帮助,欢迎点赞支持!文章目录一、训练主循环二、启动代码一、训练主循环训练主循环与Deep Rl算法紧密相关,本项目的主循环如下:def train(self,max_episodes): print原创 2021-05-06 16:12:51 · 706 阅读 · 1 评论 -
【FlappyBird小游戏】编写AI逻辑(四)——搭建CNN网络
本文隶属于一个完整小项目,建议读者按照顺序阅读。本文仅仅展示最关键的代码部分,并不会列举所有代码细节,相信具备RL基础的同学理解起来没有困难。全部的AI代码可以在【Python小游戏】用AI玩Python小游戏FlappyBird【源码】中找到开源地址。如果本文对您有帮助,欢迎点赞支持!文章目录前言一、封装基本操作1、卷积操作2、最大池化操作3、扁平化操作二、封装基本神经层1、卷积操作2、封装卷积神经层三、封装基本神经网络前言一、封装基本操..原创 2021-05-06 16:07:14 · 703 阅读 · 2 评论 -
【FlappyBird小游戏】编写AI逻辑(五)——搭建计算图和学习机制
本文隶属于一个完整小项目,建议读者按照顺序阅读。本文仅仅展示最关键的代码部分,并不会列举所有代码细节,相信具备RL基础的同学理解起来没有困难。全部的AI代码可以在【Python小游戏】用AI玩Python小游戏FlappyBird【源码】中找到开源地址。如果本文对您有帮助,欢迎点赞支持!文章目录一、定义计算图1、定义评估网络的输入输出2、定义目标网络的输入输出3、定义两个网络的参数更新操作二、定义学习机制1、从经验重放池中进行批采样2、根据批采样数据使用单步Q-l原创 2021-05-06 16:12:15 · 912 阅读 · 2 评论 -
基础阶段(一)——强化学习的基本认识
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系强化学习的基础认识前言一、强化学习的定位二、强化学习的定义2.1 强化学习的英文含义2.2 强化学习的灵感来源2.3 强化学习的研究内容三、强化学习的特点总结前言随着人工智能的不断发展,强化学习这门技术也越来越重要,很多人都开启了学习强化学习,本文简单介绍了强化学习的基础内容来帮助新手建立对强化学习的印象。提示:以下是本篇文章正文内容一、强化学习的定位传统的机器学习算法大致可以分为三类:有监督学习(Supervised原创 2020-09-30 01:42:14 · 856 阅读 · 0 评论 -
基础阶段(二)——马尔科夫决策过程(MDP)
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系基础阶段(二)——马尔可夫决策过程(MDP)前言一、马尔可夫模型的子模型1.1 马尔可夫链与马尔可夫性1.2 隐马尔可夫模型(HMM)和马尔可夫决策过程(MDP)1.3 马尔可夫子模型关系二、马尔可夫决策过程(MDP)1.基本定义2.读入数据总结前言提示:一个现实问题只有用数学语言描述后,建立了合适的数学模型,才能从工程上找到严谨的解决之道。强化学习也不例外,本文介绍强化学习问题的基本数学模型——MDP提示:以下是本篇文章正文原创 2020-09-30 01:43:35 · 1967 阅读 · 0 评论 -
基础阶段(三)MDP核心——贝尔曼方程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数..原创 2020-10-01 23:43:11 · 1716 阅读 · 0 评论 -
基础阶段(四)——MDP的动态规划算法
提示:转载请注明出处,若文章无意侵犯到您的合法权益,请及时与作者联系。基础阶段(四)——MDP的动态规划算法前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二原创 2020-10-04 15:01:17 · 3068 阅读 · 1 评论 -
基础阶段(五)——有限MDP问题及其策略迭代法总结
提示:转载请注明出处,若文章无意侵犯到您的合法权益,请及时与作者联系。基础阶段(五)——有限MDP问题及其策略迭代法代码分析前言1.1 强化学习的问题定义1.2 方格世界的经典MDP问题1.3环境与Agent对象二、策略迭代分析2.1 策略评估2.2 策略改进2.3策略迭代2.4值迭代前言在之前的学习中我们学习了有限MDP问题的基于模型的DP解法,也就是策略迭代法,但是很多东西不与实践代码相结合,总会觉得没有成就感,那么我们就将之前介绍的算法通过举...原创 2020-10-04 22:37:23 · 3802 阅读 · 2 评论 -
基础阶段(六)——蒙特卡罗(MC)方法
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。基础阶段(六)——蒙特卡罗(MC)方法前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、为什么要用蒙特卡罗方法?在之前的学习中我们学习了一种有限MDP问题的DP算法,我们已经提到这种算法是基于模型(Mo原创 2020-10-10 17:01:40 · 1230 阅读 · 2 评论 -
进阶阶段(一)——Q-Learning算法
提示:转载清楚出处,若本文无意侵犯到您的合法权益,请及时与作者联系。进阶阶段(一)——Q-Learning算法前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结一、Q-Learning的更新Q值的公式 在基础阶段我们已经学习了基于模型的动态规划算法,了解了值迭代的概念。Q-Learning的思想就是根据值迭代得到的。但要前面的值迭代每次都对所有状态和动作的Q值更新一遍,这在现实中可行性并不高。Q-Learning只使用有限的样本进行...原创 2020-10-22 16:31:19 · 12612 阅读 · 0 评论 -
进阶阶段(四)——基本DQN算法
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。进阶阶段(一)——基本DQN算法前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、DQN是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、DQ.原创 2020-10-22 22:57:05 · 2142 阅读 · 0 评论 -
莫烦Python代码实践(一)——Q-Learning算法工程化解析
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结声明本文是学习莫烦Python的笔记总结,如想深入可移步莫烦Python的该课程。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as np import panda原创 2020-10-19 23:17:52 · 3182 阅读 · 2 评论 -
莫烦Python代码实践(四)——DQN基础算法工程化解析
提示:转载请注明出处,若文本无意侵犯到您的合法权益,请及时与作者联系。进阶阶段(一)DQN算法入门前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤原创 2020-10-23 17:44:36 · 4201 阅读 · 2 评论 -
莫烦Python代码实践(五)——REINFORCE基础算法工程化解析
提示:转载请注明出处,若文本无意侵犯到您的合法权益,请及时与作者联系。莫烦Python代码实践(五)——REINFORCE基础算法工程化解析声明一、REINFORCE算法与DQN算法的区别2、REINFORCE的算法流程3、REINFORCE的代码实现1、算法的整体流程2、经验池的初始化与清空3、初始化策略网络4、运行策略网络选择动作5、学习并训练策略网络1、学习和训练网络2、计算折扣回报声明本文是作者学习莫烦Python的代码笔记总结,如想深原创 2021-03-16 15:13:51 · 1567 阅读 · 0 评论 -
使用多种AI算法玩方格迷宫——基于Value的RL算法 【开源】
使用多种AI算法玩方格迷宫——基于Value的RL算法目录使用多种AI算法玩方格迷宫——基于Value的RL算法前言(1)自定义数据可视化训练变化效果(2)训练模型的TensorBoard效果(3)训练过程的打印日志(4)本项目开源地址等附加信息前言本项目是作者(MRL Liu)使用AI算法的强化学习方法玩方格迷宫游戏的一个阶段性总结,本项目的迷宫游戏是简单的方格迷宫,其状态空间和动作空间都足够简单,是作者整理的手中的第1个RL项目。该项目重构了作者之前学习时原创 2021-04-26 17:16:12 · 582 阅读 · 0 评论 -
莫烦Python代码实践(六)——Actor-Critic算法框架工程化解析
提示:转载请注明出处,若文本无意侵犯到您的合法权益,请及时与作者联系。莫烦Python代码实践(六)——Actor-Critic算法框架工程化解析声明一、Actor-Critic框架的特点二、Actor-Critic框架流程三、Actor-Critic框架代码实现1、框架算法的整体训练流程2、构建和运用策略网络Actor(1)定义网络的输入信息(2)定义网络的两个全连接层(3)定义网络的损失函数(4)定义网络的优化器(5)定义网络的训练方法learn()原创 2021-03-17 17:58:15 · 2519 阅读 · 8 评论 -
Unity ML-Agent实践——环境搭建
提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。Unity ML-Agents实践——环境搭建前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结一、什么是Unity ML-Agents?Unity ML-Agents是Unity公司推出的一款用于在Unity上使用的进行机器学习的开源的Unity 插件工具包,其全称为Unity Machine Learning Agents。该工具包标志着Unity开始正式尝试进军机器学习领原创 2020-10-15 17:36:42 · 1879 阅读 · 0 评论 -
Gym实践(一)——环境安装
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档实践阶段(一)——Gym环境的安装前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、Gym是什么?示例:pandas 是基于NumPy 的一种工具..原创 2020-10-15 21:37:12 · 4215 阅读 · 2 评论