【强化学习/OpenAI】强化学习中的关键概念
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
介绍 今天,人工智能(AI)已经经历了令人印象深刻的进步。根据机器逻辑独立执行智能任务的能力,人工智能可以分为三个不同的层次: 窄AI:机器在执行非常特定的任务时比人类更有效率(但不会尝试执行其他类型的任务)。 强AI:机器在不同领域(在我们可能或根本无法执行的任务中)都比人类表现得更好。 通用AI:机器和人类一样智能。 现在,因为机器学习我们已经能够在有限的人工智能水平上获得良好的能力。主要有三种机器学习算法: 监督学习:使用有标记的训练集来训练模型,然后对没有标记的数据进行预测。 无监督学习:给一个模型
【教程】AlphaGo Zero 核心技术 - David Silver深度强化学习课程中文学习笔记
al软件教程视频,al零基础教学视频,al软件使用教程,cad怎么操作点击上方“专知”关注获取更多AI知识!
【导读】昨天 Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。Alpha Zero的背后核心技术是深度强化学习,为此,专知有幸邀请到叶强博士根据DeepMind AlphaGo的主要研究人员David Silver《深度强化学习》视频公开课进行创作的中文学习笔记,在专知发布推荐给大家!
随着DeepMind公司开发的AlphaGo Zero横空出世,无师自通,其背后应用的强化学习思想受到了广泛关注,也吸引了我想一探究竟为什么强化学习的威力这么大。早在2015年,DeepMind就在youtube上发布了围棋程序master的主要作者David Silver主讲的一套强化学习视频公开课,较为系统、全面地介绍了强化学习的各种思想、实现算法。其一套公开课一共分为十讲,每讲平均为100分钟。其中既包括扎实的理论推导,也有很多有趣的小例子帮助理解,对于理解强化学习来说是一套非常好的教程。我在跟随这套教程学习的过程中一边听讲、一边笔记,最后编写代码实践,终于算是对强化学习的概念终于有了初步的认识,算是入门了吧。为了巩固加深自己的理解,同时也能为后来的学习者提供一些较为系统的中文学习资料,我萌生了把整个公开课系统整理出来的想法。
本学习笔记力求尽可能还原David Silver的视频演讲,力求用通俗的语言、丰富的示例讲解来深入浅出的解释强化学习中的各种概念算法。对于其中重要概念的英文词汇的翻译,力求能尽可能符合其实际含义,同时保留英文原文。限于水平,其中难免有理解偏颇甚至错误的地方,希望同行能够不吝指出,在此先表谢意。
David Silver的这套视频公开课可以在youtube上找到,其链接地址如下:https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r78-wCZcQn5IqyuWhBZ8fOxT 。不知道国内的视频网站有没有原版视频。同时David也公开了它视频里所使用的讲义pdf,讲义内容与视频内容在某些地方有细微差别,应该是讲义更新些。我把这些转到百度网盘,地址是:https://pan.baidu.com/s/1nvqP7dB。 同样在这个地址还有David在公开课第一讲里推荐阅读的两篇关于强化学习的教材。
目前用于强化学习编程实践的常用手段是使用OpenAI推出的gym库,该库支持python语言。其官方网站在这里: OpenAI Gym: A toolkit for developing and comparing reinforcement learning algorithms。 正如其描述的一样,它是一个开发、比较各种强化学习算法的工具库,提供了不少内置的环境,是学习强化学习不错的一个平台,gym库的一个很大的特点是可以可视化,把强化学习算法的人机交互用动画的形式呈现出来,这比仅依靠数据来分析算法有意思多了。我自己也设计了与gym兼容的、针对讲义内容中提到的格子世界环境类和其它一些有意思的类。
这里还介绍一个网站给大家:Gridworld with Dynamic Programming。它是人工智能领域的青年专家Karpathy用javascript结合d3可视化的几个强化学习的Demo,非常有趣,我也借鉴了不少他的ReinforceJS库中的代码。不过Python将会是我结合公开课进行编码的主要编程语言。在早期,我将在尽可能不适用任何库的情况下实践一些简单的算法思想,在后期,由于涉及到一些函数的近似,需要使用一些深度学习的算法,会使用到Tensorflow或Pytorch。
总体来说,学习强化学习、理解其算法不需要特别深的数学和编程知识,但一定的微积分、矩阵、概率统计知识还是需要的。对于编程来说,Python已经使得编程变得非常容易。相信跟随这套笔记,任何想了解强化学习的人都能对其有比较深刻的理解。
序言就写到这里吧,敬请期待David Silver的《强化学习》学习笔记包括以下:
《强化学习》第一讲 简介
《强化学习》第二讲 马尔科夫决策过程
《强化学习》第三讲 动态规划寻找最优策略
《强化学习》第四讲 不基于模型的预测
《强化学习》第五讲 不基于模型的控制
《强化学习》第六讲 价值函数的近似表示
《强化学习》第七讲 策略梯度
《强化学习》第八讲 整合学习与规划
《强化学习》第九讲 探索与利用
以及包括也叶博士独家创作的强化学习实践系列!
强化学习实践一 迭代法评估4*4方格世界下的随机策略
强化学习实践二 理解gym的建模思想
强化学习实践三 编写通用的格子世界环境类
强化学习实践四 Agent类和SARSA算法实现
强化学习实践五 SARSA(λ)算法实现
强化学习实践六 给Agent添加记忆功能
强化学习实践七 DQN的实现
敬请关注专知公众号(扫一扫最下方二维码或者最上方专知蓝字关注),以及专知网站www.zhuanzhi.ai, 第一时间得到的一个开源项目要学多久 如何加入一个开源项目的开发一个开源项目要做多久,一个开源项目学到什么程度可以换,一个开源项目多个商业化公司,一个开源项目赚多少钱 OpenAI 上周介绍了 NLP 领域内最先进的文本生成模型 GPT-2,但他们最终决定不公开全部的数据,对此给出的说法是: 「由于担心该技术被恶意应用,我们不会发布经过培训的模型。」 从 OpenAI 发布 GPT-2 ,到宣布只开源部分成果的这段时间里,引起了巨大的争议。有观点认为如果全部开源,一定会有恶意使用,甚至引发犯罪;而支持公开的言论认为不公开全部数据,会其他的科研人员对成果复现困难。 Anima Anankumar 致力于机器学习理论和应用的协调发展。 她在推特上对 OpenAI 决定发布模型的回应是: 这就是一个非黑即白的问题。你们在利用媒体炒作语言模型。关于这个话题的研究有很多。你们声称研究结果效果惊人却只让记者了解个中详情。应该有知情权的是研究人员而不是记者。 Stephen Merity 对社交媒体的回应进行了总结,他感叹机器学习社区在这方面的经验不多: 今日总结(关于 OpenAI ):在负责任的披露,双重使用或如何与媒体互动方面,我们都没有对这件事情达成任何共识。这应该是和我们每个人(无论领域内外)都息息相关的事情。 开源这个事情,相信很多人都已经从中收益。那么牵涉到我们作为独立工程师或依附于公司或机构的工程师,我们自己的模型要不要开源呢? 有人总结了一份指南,可以在你踌躇不定时,引导你往前一步去思考。 Q是否要去考虑开源自己的模型? 当然是要!无论最终结果如何,思考一下模型开源的可能性,不要完全回避开源。 不过,如果你的模型涉及到私密数据,一定要考虑到不法分子,可能通过反编译获取原数据的风险。 Q如果模型全部来自公开数据集,我需要担心什么问题?即使都来自于公开数据集,但是与其他人研究方向和目的的不同,可能会带来新的影响。 因此,需要问一个问题:即使只使用公开数据集,但不同的研究方向是否会对数据或模型会造成什么影响? 比如在阿拉伯之春期间,有些地区因为动乱导致经常封路,当地年轻人就在 Twitter 上吐槽,而有关组织,就利用监控 Twitter 上的用户的内容来分析敌对方的军事路线。 单条数据看起来可能没什么用,但一旦数据被组合起来,就有可能产生许多敏感的结果。 所以,要去考虑这个问题:模型中的数据合并起来,是否会比单个数据点更加敏感? Q如何评估开源后的风险?从安全性去考虑,权衡「不开源」和「开源却被滥用」所造成的影响,哪一个更严重。 ? 要将每个策略视为「可更改的梗安全措施的成本,可能高于被保护的数据价值。比如有些信息涉及私密,但有时效性作为前提,一旦过了时效,信息就不再私密,但却依然有极大的研究价值。 因此,对于不好的安全策略也要及时舍弃,高效地识别和维护数据集价值。 此外,衡量一下模型使用的复杂程度,和坏人拿来利用的门槛来比,哪个更容易?确认过这个影响,再去决定是否开源。 在 OpenAI 的案例中,他们可能认为不开放全部模型,就足以阻止互联网上的恶意使用。 但要承认,对于不少业内人士来说,即使开放了全部模型,都不一定能复现得出论文,有心恶意利用的人也需要很大的成本。 Q我应该相信媒体们所描述的开源的风险吗? 不。 媒体的描述总是会引导舆论,记者们想要更高的阅读量,耸人听闻的标题和观点会更吸引人。记者们可能倾向于开源,因为这样他们更容易报道,另一方面,不开源的决定可能导致怂人听闻的谣言(与 OpenAI 案例一样,开不开源都会被媒体记者们各种夸大其词)。 Q应该相信有关部门对开源风险的意见吗?显然也是不。 当然首先要自己确保研究是合法合理的,那些政府机构的工作人员也可能并不专业,他们可能更关心舆论的压力,正所谓「没有事,就是好事」,所以他们的观点也不是判断是否开源的关键。 不过也要像记者一样,既将政府视为重要的合作伙伴,同时也意识到彼此有不同的诉求。 Q应该思考应对开源后负面用例的解决方案吗? 是的! 这是 OpenAI 此次没做好的地方。如果模型能被用来创建假新闻,那么假新闻也可能被进一步的检测出来。比如创建一个文本分类任务,去更准确地区分是人类写的和 OpenAI 模型的输出。 Facebook 、微信和各类媒体网站,一直在打击假新闻和谣言上付出了很多努力, OpenAI 的这项研究明显是能提供帮助的,是否能以相关的方式检测这种模型输出,从而去对抗假新闻? 按理说,OpenAI 能在短时间内出个解决方案的,但他们没有。 Q是否应该去注意平衡模型的负面案例和正面用例?是。 通过发布具有积极应用的模型,比如医疗、安防、环保,很容易对社会运行的各个环节都产生贡献。 OpenAI 的另一个失败之初在于,他们的研究缺乏多样性。OpenAI 发布了的研究仅适用于英语和少数其他语言。但英语仅占全世界对话的 5% 。对于句子中的单词顺序,标准化拼写以及「单词」如何用作机器学习功能的原子单位,英语的情况可能不适用于其他语言。 OpenAI 作为科研领域的先驱,也有责任尝试其他语言类型的研究, 帮助更需要帮助的语言和地区。 Q开源模型之前,数据要脱敏到什么程度? 建议脱敏到字段级别,最起码从字段级别开始评估。 比如我在 AWS 工作时负责的刚好是:命名实体识别服务,我就必须要考虑到:是否要将街道级地址识别为显式字段,以及是否将具体坐标映射到该地址。 这从本质上都是非常敏感的私人信息,尤其在被商业公司产品化的时候,应该考虑到。所以,在任何研究项目中都要考虑这一点:是否已经将关键数据进行脱敏? Q当别人都说可以开源时,我应该开源我的模型吗? 不,你应该有自己的判断力。 无论你是否同意 OpenAI 的决定,他们都是自己做出最后的决定,而不是盲目地听从网友的意见。 增量学习 Incremental learning 增量学习是指当新增数据时,只做关于新数据引起的学习更新。增量学习能不断地从新样本中学习新的知识, 并能保存大部分以前已经学习到的知识。 它类似于人类的学习模式,是一个逐渐积累和更新过程。 传统的学习方式批量模式,是准备好所有数据,应对随时更新的数据,需要重新训练和学习,增量学习解决了这一弊端,是一种得到广泛应用的智能化数据挖掘和知识发现技术。