《ARPG游戏深度强化学习 》深度强化学习概念:ARPG0.1世界的构造
深度强化学习概念:ARPG0.1世界的构造
背景:决策、计划及更复杂的任务需要更高水平的智能。更强的人工智能系统还需要具备推理、思考和规划能力。
深度学习=深度神经网络+数据平衡+各类体系化的优化算法、自动超参数策略等。
一、机器学习是什么
机器学习从学习的种类来说,最常见的我们习惯分作两种,一种叫无监督学习,一种叫有监督学习。
- 无监督学习:是指人们在获得训练的向量数据后在没有标签的情况下尝试找出其内部蕴含关系的一种挖掘工作,这个过程中使用者除了可能要设置一些必要的超参数以外,不用对这些样本做任何的标记甚至是过程干预
- 有监督学习:每一个样本都有着明确的标签,最后我们只是要总结出这些训练样本向量与标签的映射关系。
1.1聚类
聚类是一种典型的无监督学习,是把物理对象或抽象对象的聚合分组为由彼此类似的对象组成的多个类的分析过程。
比较常用的聚类算法由K-Means、DBSCAN等几种。
1.2回归
回归是一种解题方法,或者说“学习”方法,也是机器学习中比较重要的内容。
在机器学习领域,最常用的回归有两大类:
- 线性回归:就是在观察和归纳样本的过程中认为向量和最终的函数值呈线性的关系。
- 非线性回归:在机器学习领域中应用最多的当属逻辑回归。
1.3分类
分类是机器学习中使用最多的一大类算法,我们通常也喜欢把分类算法叫做“分类器”
流程:
- 输入样本和分类标签
- 建立映射假说的某个y=f(x)的模型
- 求解出全局的损失函数loss和待定系数w的映射关系,loss=g(w)
- 通过迭代优化逐步降低loss,最终找到一个能使召回率和精确率满足当前场景需要。注意,这里尤其指在验证数据集上的表现。
1.4综合应用
到现在为止,我们看到的绝大多数的机器学习的应用环境都非常单纯——向量清洗到位,边界划定清晰。
例如:
- 垃圾邮件的分拣,能够通过邮件内容的输入来判断邮件是否为垃圾邮件
- 新闻的自动分类,能够通过新闻内容的分类来判断新闻的类别或描述内容的属性
- 摄像头对车牌号OCR电子识别手、写识别
- 自动驾驶
小结
机器学习就是人类定义一定的计算机算法,让计算机根据输入的样本和一些人类的干预来总结归纳其特征与特点,并用这些特征和特点与一定的学习目标形成映射关系,进而自动化地做出相应反应的过程。
二、深度学习是什么
2.1 神经网络是什么
要要说深度学习( deep learning ),就必须先说神经网络,或者称人工神经网络(artificial neural network, ANN )。神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系。
人的神经细胞。
2.1.1 神经元
这就是一个最简单的神经元,有一个输入, 个输出,所以它所表达的含义跟普通的函数没有什么区别 不过请注意,现在我们使用的神经元通常有两个部分组成,一个是“线性模型”,另→个是“激励函数” 。
2.1.2 激励函数
激励函数( activation function) ——也有翻译成激活函数的,也是神经元中重要的组成部分。激励函数在一个神经元当中跟随在f(x)= wx+b函数之后,用来加入一些非线性的因素.
- Sigmoid 函数
Sigmoid 函数基本上是我们所有学习神经网络的人第一个接触到的激励函数.定义:
或者:
- Tanh 函数
Tanh 函数也算是比较常见的激励函数。
Tanh 函数也叫双曲正切函数,表达式如下:
- ReLU 函数
ReLU 函数是目前大部分卷积神经网络 CNN ( convolutional neural networks )中喜欢使用的激励函数,它的全名是 rectified linear units。
这个函数的形式为y= max(x, 0),在这个函数的原点左侧部分斜率为0 ,在右侧则是一
条斜率为1的 直线。 - Linear 函数
Linear 激励函数在实际应用中并不太多。
函数表达式:
2.1.3 神经网络
一旦多个神经元首尾连接形成一个类似网络的结构来协同工作的时候,那就可以被称为神经网络了。
神经网络的结构:
一个神经网络中通常会分这样几层:输入层隐藏层、输出层。
2.2 深度神经网络
这里所谓的深度学习实际指的是基于深度神经网络( deep neural networks, DNN )的
学习,也就是深度人工神经网络所进行的学习过程,或称作 Deep Learning。
很多人会认为深度学习在任何情况下都要比传统机器学习表现更好,但实际上并不是的其实想想也知道,这不符合“尺有所短,寸有长”的哲学观点 。传统机器学习在训练的过程中需要很少的样本向量,通常都是百级或者千级就够了,这对于深度学习来说也是无法做到的一一它需要数以万计的样本来做训练。
2.3 深度学习为什么这么强
神经网络,尤其是深度神经网络之所以这么吸引人,主要是因为它能够通过大量的线性分类器和非线性关系的组合来完成平时非常棘手的线性不可分的问题
2.3.1 不用再提取特征
这是一种非常新颖并且非常有吸引力的方式,人类对机器学习中的环节干预越少,就意味着距离人工智能的方向越近,这让我们充满了对未来的期望
2.3.2 处理线性不可分
神经网络还有一个最神奇的地方,那就是用大量的线性分类器的堆叠使得整个模型可以将线性不可分的问题变得可分。
神经网络的神经元可以有很多层,每层可以有很多个神经元,整个网络的规模可以有几千甚至几万个神经元,
2.4 深度学习应用
2.4.1 围棋机器人——Alpha Go
- 2015 10 AlphaGo : 完胜欧洲围棋冠军 职业 段选手樊摩;
- 2016 月对战世界围棋冠军 职业九段选手李世石,并以 : 的总比分获胜 2016 18 日,世界职业围棋排名网站 GoRatings 公布最新世界排名, AlpbaGo 3612 分,超越 3608 分的柯洁成为新的世界第一。
AlphaGo 其实是有两个“大脑”组成的,也就是两套完整的深度学习网络来进行配合计算的。
- 第一大脑:落子选择器
- 第二大脑:棋局评估器
2.4.2 被教坏的少女——Tai.ai
2016 月,微软在测试一款新型聊天机器人 Tay.ai ,不过悲剧的是这款机器人在 Twitter 上经过用户的不正当“调教”已经变成了“女流氓”,不仅飘脏话,还发表些带有种族歧视的言论,最后微软不得不将其下线。
2.4.3 本田公司的大宝贝——ASIMO
阿西莫是目前世界上为数不多的可以以类人型出现的综合场景应用的机器人阿西莫的身高为 130cm ,宽 45cm ,进深 34cm ,最大行进速度为每小时 9km-可别小看,人家是可以双脚离地进行奔跑的 9km 可以连续行走40min 不用充电。
小结
深度学习是 种前景非常好的应用领域,,它几乎在任何 个细分领域都可以有比较好的应用,并且能够产生大量的剩余价值,发展生产力,而且随着计算机计算性能的不断提升,深度学习的应用也将积累更快,落地更廉价我们有充分的理由相信,深度学习的发展将是未来几十年内世界科技发展的最为重要的领域之一。
三、TensorFlow代码解析
源代码:
import numpy as np
import time
import sysnp.random.seed(2) #reproducibleG,W,F,T=10,-2,1,0 #goal,wall,flower,treeMONKEY_TREE_WALL_FLOWER_MAP=[[W,W,W,W,W,W,W,W],[W,0,0,0,0,0,F,W],[W,0,0,0,0,0,F,W],[W,0,W,W,W,0,W,W],[W,0,W,G,0,0,F,W],[W,0,W,W,W,0,F,W],[W,0,0,0,0,0,0,W],[W,W,W,W,W,W,W,W]]class QLearning():def __init__(self,actions=['left','right','up','down'],max_episodes=13,fresh_time=0.1,MAP_=MONKEY_TREE_WALL_FLOWER_MAP):self.ACTIONS=actionsself.MAX_EPISODES=max_episodesself.FRESH_TIME=fresh_timeself.MAP=MAP_self.N_STATES =(len(self.MAP),len(self.MAP[0]))def choose_action(self,state):action_name=np.random.choice(self.ACTIONS)return action_namedef get_env_feedback(self,S,A):if A=='right' and self.MAP[S[0]+1][S[1]]!=W:S_=(S[0]+1,S[1])R=self.MAP[S[0]+1][S[1]]elif A=='left' and self.MAP[S[0]-1][S[1]]!=W:S_=(S[0]-1,S[1])R=self.MAP[S[0]-1][S[1]]elif A=='up' and self.MAP[S[0]][S[1]-1]!=W:S_=(S[0],S[1]-1)R=self.MAP[S[0]][S[1]-1]elif A=='down' and self.MAP[S[0]][S[1]+1]!=W:S_=(S[0],S[1]+1)R=self.MAP[S[0]][S[1]+1]else:R=0S_=Sif R==F:R=0return S_,Rdef update_env(self,S,episode,step_counter):n_str=self.N_STATES[0]+1BOARD='
《ARPG游戏深度强化学习 》深度强化学习概念:ARPG0.1世界的构造相关推荐
- 《ARPG游戏深度强化学习 》之实现一个Deep Q-learning Network(二叉树状态QDN(逐条分析python代码))
实现一个Deep Q-learning Network(二叉树状态DQN) 代码主要解决的问题: 有0-6,7个状态,从上图是他们可以状态跳转的方向和关系. 我们设定状态6是最终GDAL,目标,训练a ...
- 深度强化学习和强化学习_深度强化学习:从哪里开始
深度强化学习和强化学习 by Jannes Klaas 简尼斯·克拉斯(Jannes Klaas) 深度强化学习:从哪里开始 (Deep reinforcement learning: where t ...
- 八千字长文深度解读,迁移学习在强化学习中的应用及最新进展
点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 机器之心原创 作者:Luo Sainan 编辑:H4O 迁移学习通 ...
- 【资源下载】DeepMindUCL深度学习与强化学习进阶课程
点击我爱计算机视觉标星,更快获取CVML新技术 本文课程介绍部分来自机器之心,因为原视频国内无法观看,所以我爱计算机视觉费了老大劲专门搬到国内分享给大家,下载方法见文末. 11月23日,DeepMin ...
- AI小白必读:深度学习、迁移学习、强化学习别再傻傻分不清
摘要:诸多关于人工智能的流行词汇萦绕在我们耳边,比如深度学习 (Deep Learning).强化学习 (Reinforcement Learning).迁移学习 (Transfer Learning ...
- 系统学习深度学习(四十一)--AlphaGo Zero强化学习原理
转自:https://www.cnblogs.com/pinard/p/10609228.html 本篇主要参考了AlphaGo Zero的论文, AlphaGo Zero综述和AlphaGo Zer ...
- 什么是深度学习、强化学习
今天在学习过程中碰到一个自己不懂的常识:Reinforcement Learing(强化学习) 之前在入门机器学习过程中单纯的知道只有深度学习,今天看论文的时候发现还存在强化学习,所以今天就干脆将深度 ...
- 长文回顾NIPS大会最精彩一日:AlphaZero遭受质疑;NIPS史上第一场正式辩论和LeCun的激情抗辩/据理力争;元学习深度强化学习亮点复盘。
机器之心原创 机器之心海外部 作者:Tony Peng.Alex Chen.Qintong Wu.之乎 美国时间周四,NIPS大会走完了日程的一半.工业界的众多公司搬东西撤出了展览会场,受邀演讲也全部 ...
- 第七章 深度强化学习-深度Q网络系列1(Deep Q-Networks,DQN)
获取更多资讯,赶快关注上面的公众号吧! 文章目录 第七章 深度强化学习-深度Q网络 7.1 学习目标 7.2 深度学习和强化学习的区别 7.3 DQN原理 7.4 DQN算法 7.4.1 预处理 7. ...
最新文章
- rancher部署项目Validation failed in API: Deployment.apps“”must be no more than 63 characters问题原因及解决方法
- 七喜携手AMD,摆脱英特尔“潜规则”
- JPA_@Table 注解详解
- Hibernate中的命名SQL查询
- linux adb工具 终极总结
- <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分)
- 等差素数列(java)
- 计算数学领域一些期刊(持续更新)
- html多张图片合成一张,PS照片合成:多张照片合成一张
- 举办计算机知识竞赛的意义,计算机专业成功举办“计算机基础知识竞赛”
- 双屏计算机主机是什么,电脑双屏显示有人知道关于一个主机两个显示器的问题吗 爱问知识人...
- IIO子系统(Linux驱动开发篇)
- dotnet OpenXML 读取 PPT 主序列进入退出强调动画
- 使用74LS160设计六进制计数器
- 漏洞复现篇——利用XSS漏洞实现键盘记录
- iOS15上最受欢迎的功能,居然是“我想静静”?
- NYOJ 304 节能(DP)
- 使用sourcetree提交拉取代码
- c语言小人发射爱心,使用Python画出小人发射爱心的代码
- javaFx学习之分页控件Pagination
热门文章