强化学习入门:一文入门强化学习AlanFire

强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决decisionmaking问题,即自动进行决策,并且可以做连续决策。

它主要包含四个元素,agent,环境状态,行动,奖励,强化学习的目标就是获得最多的累计奖励。

让我们以小孩学习走路来做个形象的例子:

小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。

小孩就是agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。

在机器学习中,我们比较熟知的是监督式学习,非监督学习,此外还有一个大类就是强化学习:

强化学习和监督式学习的区别:

监督式学习就好比你在学习的时候,有一个导师在旁边指点,他知道怎么是对的怎么是错的,但在很多实际问题中,例如chess,go,这种有成千上万种组合方式的情况,不可能有一个导师知道所有可能的结果。

而这时,强化学习会在没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行为,就这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。

就好比你有一只还没有训练好的小狗,每当它把屋子弄乱后,就减少美味食物的数量(惩罚),每次表现不错时,就加倍美味食物的数量(奖励),那么小狗最终会学到一个知识,就是把客厅弄乱是不好的行为。

两种学习方式都会学习出输入到输出的一个映射,监督式学习出的是之间的关系,可以告诉算法什么样的输入对应着什么样的输出,强化学习出的是给机器的反馈rewardfunction,即用来判断这个行为是好是坏。

另外强化学习的结果反馈有延时,有时候可能需要走了很多步以后才知道以前的某一步的选择是好还是坏,而监督学习做了比较坏的选择会立刻反馈给算法。

而且强化学习面对的输入总是在变化,每当算法做出一个行为,它影响下一次决策的输入,而监督学习的输入是独立同分布的。

通过强化学习,一个agent可以在探索和开发(explorationandexploitation)之间做权衡,并且选择一个最大的回报。exploration会尝试很多不同的事情,看它们是否比以前尝试过的更好。exploitation会尝试过去经验中最有效的行为。

一般的监督学习算法不考虑这种平衡,就只是是exploitative。

强化学习和非监督式学习的区别:

从强化学习的几个元素的角度划分的话,方法主要有下面几类:

我们可以用一个最熟知的旅行商例子来看,

我们要从A走到F,每两点之间表示这条路的成本,我们要选择路径让成本越低越好:

那么几大元素分别是:

有一种走法是这样的,在A时,可以选的(B,C,D,E),发现D最优,就走到D,此时,可以选的(B,C,F),发现F最优,就走到F,此时完成任务。这个算法就是强化学习的一种,叫做epsilongreedy,是一种Policybased的方法,当然了这个路径并不是最优的走法。

此外还可以从不同角度使分类更细一些:

如下图所示的四种分类方式,分别对应着相应的主要算法:

主要算法有下面几种,今天先只是简述:

1.Sarsa

Q为动作效用函数(action-utilityfunction),用于评价在特定状态下采取某个动作的优劣,可以将之理解为智能体(Agent)的大脑。

SARSA利用马尔科夫性质,只利用了下一步信息,让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新,更新公式如下所示:

s为当前状态,a是当前采取的动作,s’为下一步状态,a’是下一个状态采取的动作,r是系统获得的奖励,α是学习率,γ是衰减因子。

2.Qlearning

QLearning的算法框架和SARSA类似,也是让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新。关键在于QLearning和SARSA的更新公式不一样,QLearning的更新公式如下:

3.PolicyGradients

系统会从一个固定或者随机起始状态出发,策略梯度让系统探索环境,生成一个从起始状态到终止状态的状态-动作-奖励序列,s1,a1,r1,.....,sT,aT,rT,在第t时刻,我们让gt=rt+γrt+1+...等于q(st,a),从而求解策略梯度优化问题。

4.Actor-Critic

算法分为两个部分:Actor和Critic。Actor更新策略,Critic更新价值。Critic就可以用之前介绍的SARSA或者QLearning算法。

5.Monte-carlolearning

用当前策略探索产生一个完整的状态-动作-奖励序列:s1,a1,r1,....,sk,ak,rk~π

在序列第一次碰到或者每次碰到一个状态s时,计算其衰减奖励:

最后更新状态价值:

6.Deep-Q-Network

DQN算法的主要做法是ExperienceReplay,将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。它也是在每个action和environmentstate下达到最大回报,不同的是加了一些改进,加入了经验回放和决斗网络架构。

强化学习有很多应用,除了无人驾驶,AlphaGo,玩游戏之外,还有下面这些工程中实用的例子:

1.Manufacturing

例如一家日本公司Fanuc,工厂机器人在拿起一个物体时,会捕捉这个过程的视频,记住它每次操作的行动,操作成功还是失败了,积累经验,下一次可以更快更准地采取行动。

2.InventoryManagement

3.Dynamicpricing

强化学习中的Q-learning可以用来处理动态定价问题。

4.CustomerDelivery

5.ECommercePersonalization

在电商中,也可以用强化学习算法来学习和分析顾客行为,定制产品和服务以满足客户的个性化需求。

6.AdServing

再如双11推荐场景中,阿里巴巴使用了深度强化学习与自适应在线学习,通过持续机器学习和模型优化建立决策引擎,对海量用户行为以及百亿级商品特征进行实时分析,帮助每一个用户迅速发现宝贝,提高人和商品的配对效率。还有,利用强化学习将手机用户点击率提升了10-20%。

7.FinancialInvestmentDecisions

例如这家公司Pit.ai,应用强化学习来评价交易策略,可以帮助用户建立交易策略,并帮助他们实现其投资目标。

8.MedicalIndustry

动态治疗方案(DTR)是医学研究的一个主题,是为了给患者找到有效的治疗方法。例如癌症这种需要长期施药的治疗,强化学习算法可以将患者的各种临床指标作为输入来制定治疗策略。

上面简单地介绍了强化学习的概念,区别,主要算法,下面是一些学习资源,供参考:

THE END
1.强化学习的基础知识和6种基本算法解释ADP和TD学习是离线强化学习算法,但在线强化学习算法中也存在主动ADP和主动TD学习!4、Exploration 基于模型的在线学习,主动ADP Exploration 算法是一种主动ADP算法。与被动ADP算法类似,代理试图通过经验学习转换和奖励函数,但主动ADP算法将学习所有动作的结果,而不仅仅是固定的策略。它还有一个额外的函数,确定代理在https://baijiahao.baidu.com/s?id=1752610004711982199&wfr=spider&for=pc
2.强化学习极简入门:通俗理解MDPDPMCTC和Q学习策略梯度PPO本文介绍了强化学习的基本概念,如马尔可夫决策过程(MDP)、策略梯度、优势函数和Actor-Critic算法,并详细探讨了PPO算法的原理,包括目标函数、信任区域优化和近端策略优化。文章通过实例和公式推导,帮助初学者理解RL中的策略更新和价值学习过程。 摘要由CSDN通过智能技术生成 https://blog.csdn.net/v_JULY_v/article/details/128965854
3.强化学习实战教程:从理论基础到游戏AI的应用开发指南以机器人自主导航为例,利用基于策略的强化学习算法,训练机器人学会在复杂环境中规划最优路径,以达到目标位置。 结语 通过本篇教程,我们了解了强化学习的基本概念和原理,并通过实战示例展示了强化学习在游戏AI和机器人控制中的应用。希望读者能够通过本教程对强化学习有更深入的了解,进而在实际项目中应用强化学习技术,实https://www.jianshu.com/p/166f0ed40f46
4.强化学习算法入门(豆瓣)《强化学习算法入门》使用通俗易懂的语言,按照“原理-公式-程序”的方式,对强化学习的基础知识进行了详细讲解。书中先让大家从熟悉的“平均值计算”作为切入点,学习强化学习的基本概念,然后结合实例学习了函数近似方法、深度强化学习的原理和方法等,比较了各算法的特点和应用,并用Python和MATLAB两种语言进行了编程实现。https://book.douban.com/subject/36693351/
5.入门指南人工智能的新希望——强化学习全解很多人说,强化学习被认为是真正的人工智能的希望。本文将从7个方面带你入门强化学习,读完本文,希望你对强化学习及实战中实现算法有着更透彻的了解。 大数据文摘(微信ID:BigDataDigest)作品,转载请联系邮箱zz@bigdatadigest.cn 作者| FAIZAN SHAIKH 编译团队 | Jennifer Zhu 赖小娟 张礼俊 https://36kr.com/p/1721373523969
6.深度学习:卷积神经网络从入门到精通带目录完整pdf[92MB]电子书下本书专注讨论深度学习中应用非常广泛的模型——卷积神经网络,该模型特别适用于图像分类和识别、目标分割和检测以及人工智能游戏方面,受众对象包括计算机、自动化、信号处理、机电工程、应用数学等相关专业的研究生、教师以及算法工程师和科研工作者。本书的最大特色是对卷积神经网络进行由浅入深的分类描述,依次包括:现代雏https://www.jb51.net/books/684151.html
7.深度学习入门到精通系列深入浅出强化学习Sarsa从算法来看, 这就是他们两最大的不同之处了. 因为 Sarsa 是说到做到型, 所以我们也叫他 on-policy, 在线学习, 学着自己在做的事情. 而 Q learning 是说到但并不一定做到, 所以它也叫作 Off-policy, 离线学习. 而因为有了 maxQ, Q-learning 也是一个特别勇敢的算法. https://blog.51cto.com/u_14013325/4285906
8.强化学习算法与应用综述摘要:强化学习是机器学习领域的研究热点, 是考察智能体与环境的相互作用, 做出序列决策、优化策略并最大化累积回报的过程. 强化学习具有巨大的研究价值和应用潜力, 是实现通用人工智能的关键步骤. 本文综述了强化学习算法与应用的研究进展和发展动态, 首先介绍强化学习的基本原理, 包括马尔可夫决策过程、价值函数、探索-https://c-s-a.org.cn/html/2020/12/7701.html
9.17个机器学习的常用算法应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。 4.强化学习: 在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一https://aidc.shisu.edu.cn/78/aa/c13626a161962/page.htm
10.强化学习QLearning算法详解腾讯云开发者社区QLearning是强化学习算法中value-based的算法,Q即为Q(s,a)就是在某一时刻的 s 状态下(s∈S),采取 动作a (a∈A)动作能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward r,所以算法的主要思想就是将State与Action构建成一张Q-table来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。 https://cloud.tencent.com/developer/article/2157015
11.头条文章图6 强化学习的基本学习流程 部分机器学习代表算法介绍如下: ? 线性回归 在机器学习中,有一组输入变量(x)用于确定输出变量(y)。输入变量和输出变量之间存在某种关系,机器学习的目标是量化这种关系。 图7 数据集的绘制 x 和 y 值 ? 在线性回归中,输入变量(x)和输出变量(y)之间的关系表示为 y = ax +https://card.weibo.com/article/m/show/id/2309404598738399395890
12.科学网—[转载]基于深度强化学习的六足机器人运动规划以平面随机梅花桩为例,设定随机起始点与目标区域,利用深度强化学习算法进行训练,并得到六足机器人在平面梅花桩环境中的运动策略。为了加快训练进程,采用具有优先经验重放机制的深度确定性策略梯度算法。最后在真实环境中进行验证,实验结果表明,所规划的运动策略能让六足机器人在平面梅花桩环境中高效平稳地从起始点运动到https://blog.sciencenet.cn/blog-951291-1288193.html