强化学习十大原则
原则#1:评估(Evaluation)推动进步
客观,量化的评估推动了进步:
●评估指标的选择决定了进度的方向
●可以说是项目过程中最重要的单一决策
排行榜驱动的(Leaderboard-driven)研究:
●确保评估指标对应最终目标
●避免主观评估(例如人工检查)
假设驱动的(Hypothesis-driven)研究:
●提出一个假设:
○“Double-Q学习优于Q-learning,因为它减少了向上偏差(upward bias)”
●在广泛的条件下验证假设
●比较相似的现有stat-of-the-art技术
●寻求理解而不是排行榜绩效
原则#2:可伸缩性(Scalability)决定成功
●算法的可伸缩性是其相对于资源的性能梯度
○给定更多资源,性能如何提高?
●资源可以是计算(computation),内存(memory)或数据(data)
●算法的可扩展性最终决定了它的成功与否
○图像
●可伸缩性始终(最终)比起点更重要
●给定无限资源,(最终)优化算法是最佳的
原则#3:通用性(Generality)未来证明算法
●不同的RL环境中,算法的通用性表现不同
●避免过度拟合当前任务
●寻求推广到未知未来环境的算法
●我们无法预测未来,但是:
○未来的任务可能至少与当前任务一样复杂
○当前任务遇到的困难很可能会增加
●结论:针对RL环境进行测试
原则 #4:信任Agent的经验
●经验(观察observations,行动actions,奖励rewards)是RL的数据
●相信经验是唯一的知识来源
○总是有诱惑力来利用我们的人文专长(人类数据,功能,启发式,约束,抽象,域操作)
●从经验中学习似乎是不可能的
○接受RL的核心问题很难
○这是人工智能的核心问题
○值得努力
●从长远来看,从经验中学习总能赢得胜利
原则#5:状态(State)是主观的
●Agents应根据自己的经验构建自己的状态
●Agent状态是先前状态和新观察的函数
●它是循环神经网络的隐藏状态
●从未根据环境的“真实”状态定义
原则#6:控制流(Control theStream)
●Agents生活在丰富的感觉运动数据流中
○Observations流入Agent
○Actions流出Agent
●Agent的操作会影响流
●控制功能=>控制流
●控制流=>控制未来
●控制未来=>可以最大化任何奖励
原则#7:值函数(Value Functions)建模世界
为什么要使用值函数?
●价值功能有效地总结/缓存未来
●将计划减少到恒定时间查找,而不是指数前瞻
●可以独立于其跨度进行计算和学习
学习多种值函数:
●有效地模拟世界的许多方面(控制流)
○包括后续状态变量
●多个时间尺度
避免在原始时间步骤对世界进行建模。
原则#8:规划(Planning):从想象的经验中学习
一种有效的规划方法:
●想象一下接下来会发生什么
○模型中状态的样本轨迹
●从想象的经验中学习
○使用我们应用于实际实验的相同RL算法
现在,关注值函数近似值。
原则#9:授权函数近似器(FunctionApproximator)
●差异化的网络架构是强大的工具,可以促进:
○丰富的状态表示
○不同的记忆
○不同的计划
○分层控制
○...
●将算法复杂性推入网络架构
○降低算法的复杂性(如何更新参数)
○提高架构的表现力(参数的作用)
原则#10:学会学习(Learn toLearn)
人工智能的历史显示了明确的进展方向:
●第一代:良好的老式人工智能
○手工预测
○什么都不学
●第二代:浅学习
○手工功能
○学习预测
●第3代:深度学习
○手工算法(优化器,目标,架构......)
○端到端地学习功能和预测
●第4代:元学习
○无手工
○端到端学习算法和功能以及预测
原文发布时间为:2018-09-17
本文作者:Xiaowen
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android官方架构组件:Lifecycle详解&原理分析
应该是 Android Jetpack 讲解的最好的博客系列: ●Android官方架构组件Paging:分页库的设计美学 ●Android官方架构组件Navigation:大巧不工的Fragment管理框架 ●Android官方架构组件Lifecycle:生命周期组件详解&原理分析 概述 在过去的谷歌IO大会上,Google官方向我们推出了 Android Architecture Components,其中谈到Android组件处理生命周期的问题,向我们介绍了 Handling Lifecycles。 同时,如何利用 android.arch.lifecycle 包提供的类来控制数据、监听器等的 lifecycle。同时,LiveData 与 ViewModel 的 lifecycle 也依赖于 Lifecycle 框架。 经过公司内部的技术交流小组的探讨后,不少小伙伴觉得这个框架本身尚未成熟(当时的 Android Architecture Components组件还处于Alpha版本),再加上本身并没有足够的说服力让我们抛弃RxJava+RxAndroid全家桶转身投奔...
- 下一篇
2018年杭州云栖大会-企业办公数据处理和分发(函数计算篇)
综述 在企业办公自动化系统里,经常会有一种场景,当某个重要文件出现异动后,会通知客户文件的变化,今天结合阿里云的函数计算来完成这个异动信息的通知工作。阿里云的函数计算是2017年4月份发布,并于同年10月份正式商业化,是一款基于Serverless这种架构下实现的一款轻计算高弹性的产品。下面会讲解基于函数计算作为企业办公室数据处理并分发后的场景。整体架构图如下:配图说明:①企业人员把文件存放到对象存储里②对象存储通过文件的变化触发订阅的函数计算③函数计算根据用户定义的业务逻辑去分发消息,例如分发给消息通道或者手机 开通产品 在开始步骤之前,需要先开通以下产品,通过阿里云官网首页,找到各个产品详情页,并开通服务,这三个产品都是按量付费产品,开通流程都比较简单。函数计算产品详情页:https://www.aliyun.com/product
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度