热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深度强化学习笔记(一)——深度强化学习简述

深度强化学习笔记(一)——深度强化学习简述前言为什么会学习这个方向呢?现在还在放暑假,也还算有较为充裕的学习时间,所以自己暂时还有较为充裕的时间&#

深度强化学习笔记(一)——深度强化学习简述


前言

为什么会学习这个方向呢?现在还在放暑假,也还算有较为充裕的学习时间,所以自己暂时还有较为充裕的时间,目前就主要当作一个拓展的知识面,万一可能以后需要相关方向的研究生方向,或者其他原因,自己可以相对更快的学习。

PS:还有感觉蛮好玩的~2333


简介

强化学习(Reinforcement Learning,RL) 与深度学习都作为机器学习的一个重要方向,人工智能的一个重要目标是生成一个完全自主的智能体(agent),能够通过与环境的交互,学习最优行为。

深度学习方向更多的探索对事物的更好感知和表达,比如图像识别,目标检测,语义分割等方向。而强化学习方向擅长学习解决问题的策略。强化学习(RL)与深度学习(DL)的结合产物深度强化学习(DRL)对人工智能的重要目标迈出了更近的一步,DRL对自主系统的有更高层次的理解


强化学习发展简史

强化学习(Reinforcement Learning,RL) 历史上有三条主线,其中有两条主线有重要的历史地位。


  • 试错学习
    • 源于动物学习过程中的心理学,在学习过程中通过不断地尝试各种(错误或正确)行为以最终学习到最优的正确行为,即通过试错的方法进行学习
  • 最优控制方法
    • 使用值函数(value-function)和动态规划(Dynamic Programming,DP)的方法来解决最优控制问题,在大多数情况下不涉及学习
  • 时间(序)差分(Temporal-Difference,TD)学习
    • 与上两条相比,并不太明显
    • 由同一时间内进行地连续估计之间的差异所驱动,在该方面是独特的,比如,棋类游戏获胜的概率
    • 1972年,Klopf提出了广义强化的概念,即每个组成部分(每个神经元)都以强化的角度看待所有输入(作为奖励的兴奋性输入,作为惩罚的抑制性输入),打算将TD学习和试错学习结合起来
    • 1981年,提出了actor-critic架构,也称为"行动者-评论者架构",现在DRL算法下,都包含在此架构下。actor是行动者,负责动作的选择和执行,critic是评论者,负责评价actor所选动作的好坏

上个世纪80年代后期所有这三条主线汇集在一起,产生了现代RL领域


强化学习简介

RL的本质是互动学习,即让智能体与其外界环境进行交互

智能体根据自己每次感知到的外界环境状态来选择相应的动作,以对环境进行响应,然后观测该动作造成的结果(或好或坏),并根据结果调整自身动作选择机制

RL模型中有最关键的三个部分:


  • 状态(state):状态就是智能体所处坏境的、看嘛外界信息,外界的状态要能够准确地描述外界环境,尽可能将有效信息包含在内,要着重体现出外界环境的特征
  • 动作(action):动作就是智能体在感知到所处环境状态后所要采取的行为动作的表现形式,既可以是离散的,也可以是连续的
  • 奖励(reward):智能体感知到外界环境并采取动作后所获得的奖赏值,正向奖励会激励智能体趋向于学习该动作,负向奖励值则反之

最优的动作顺序由环境提供的奖励决定,每次环境转换到新状态时,它还会向智能体提供**标量rt+1**作为反馈。策略(控制策略)π\piπ:S->A,以使得预期回报(累积折扣奖励)最大化,其中S为外界环境状态的集合S={s1,s2,…,st,st+1,…},A为动作的集合A={a1,a2,…ak}。

给定状态,智能体根据策略返回要执行的动作,最优策略是最大化环境预期回报的任何策略。RL旨在解决与最优控制相同的问题,而RL是需要通过智能体通过试错学习的方法来了解在环境中采取某种动作后的所产生的结果

通过智能体与环境进行交互来感知环境,依靠策略π\piπ选择动作,从而获得最大累积奖赏值

在时间t,智能体从环境感知状态st,然后使用其策略选择动作at。一旦执行了动作,环境就会转换到下一个状态,并提供下一个状态st+1和奖励rt+1作为新的反馈

智能体以序列(st,at,st+,rt+1)的形式使用状态转换的知识来学习和改进其策略


深度强化学习简介

DL方法擅长对事物的感知和表达,RL方法擅长学习解决问题的策略,2016年AlphaGo使用蒙特卡洛树搜索与DRL相结合的方法来打败了顶尖选手。

蒙特卡洛树搜索分为以下4个步骤:


  • 选择:从根节点开始,选择连续的子节点向下至叶子节点。 后面给出了一种选择子节点的方法,让游戏树向最优的方向扩展
  • 扩展:除非任意一方的输赢使得游戏在叶子节点结束, 否则创建一个或多个子节点并选取其中一个子节点
  • 仿真:从选取的子节点开始,其随机策略进行游戏,又称为playout或rollout
  • 反向传播:使用随机游戏的结果,更新从选择的子节点到根节点的路径上的节点信息

每一个节点的内容代表胜利次数/游戏次数

目前DRL下,都在actor-critic框架下,actor-critic属于TD学习方法,其用独立的内存结构来明确地表示独立鱼值函数的策略。actor行动模块是大脑动作执行机构,输入外部的环境状态s,然后输出动作a。而critic评判模型则可被认为是大脑的价值观,根据历史信息及回馈r进行自我调整,然后对整个actor行动模块相关的更新指导

DRL目前已有:


  • 基于值函数(value-based)的DRL
  • 基于策略(policy-based)的DRL
  • 基于模型(model-based)的DRL
  • 基于分层(hierarchical-based)的DRL

推荐阅读
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 在互联网信息爆炸的时代,当用户需求模糊或难以通过精确查询表达时,推荐系统成为解决信息过载的有效手段。美团作为国内领先的O2O平台,通过深入分析用户行为,运用先进的机器学习技术优化推荐算法,提升用户体验。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 随着技术的发展,黑客开始利用AI技术在暗网中创建用户的‘数字孪生’,这一现象引起了安全专家的高度关注。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 智能投顾机器人:创业者如何应对新挑战?
    随着智能投顾技术在二级市场的兴起,针对一级市场的智能投顾也逐渐崭露头角。近日,一款名为阿尔妮塔的人工智能创投机器人正式发布,它将如何改变投资人的工作方式和创业者的融资策略? ... [详细]
  • 2017年苹果全球开发者大会即将开幕,预计iOS将迎来重大更新,同时Siri智能音箱有望首次亮相,AI技术成为大会焦点。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
  • 本文详细介绍了基于模型相似性的聚类采样算法的实现过程,并探讨了该算法在面对样本量和梯度攻击时的表现。通过具体的实验结果,分析了算法的鲁棒性和潜在的安全威胁。 ... [详细]
  • 本文旨在探讨机器学习与数据分析之间的差异,不仅在于它们处理的数据类型,还包括技术背景、业务应用场景以及参与者的不同。通过深入分析,希望能为读者提供清晰的理解。 ... [详细]
  • 浪潮AI服务器NF5488A5在MLPerf基准测试中刷新多项纪录
    近日,国际权威AI基准测试平台MLPerf发布了最新的推理测试结果,浪潮AI服务器NF5488A5在此次测试中创造了18项性能纪录,显著提升了数据中心AI推理性能。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 图像分类算法的优化策略与实践
    本文探讨了《Bag of Tricks for Image Classification with Convolutional Neural Networks》论文中的多项技术,旨在通过具体实例和实验验证,提高卷积神经网络在图像分类任务中的性能。文章详细介绍了从模型训练加速、网络结构调整到训练参数优化等多个方面的改进方法。 ... [详细]
author-avatar
泱泱大国吴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有