手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?

简介: 手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?

强化学习基本简介

  在19年4月,有写过一篇强化学习的入门直观简介。强化学习通俗入门简介(一)。感兴趣的可以看一下,如果知道一些基本概念的话,也就没啥必要了,都是些很通俗的理解。

  强化学习智能体通过与环境交互,为了获取整个交互过程中的收益最大,不断自我调整优化。就像你的整个人生过程一样,算法的原理上是不计较一实的得失,目光也比较长远,不会为了眼前利益,而丢失了之后更大的回报。

  但是在实际操作过程中,强化学习还是很容易被当前的及时奖励所蒙蔽。我们把这种问题称之为奖励延迟。就像司马懿一样忍辱负重数十载,最终夺取政权,这样长的奖励延迟,人能处理,那强化学习能不能呢?我们以后再讲好了。

  在强化学习算法里面,没有人告诉你你应该怎么做,给你的只有你做的好不好。就像你写论文一样,你这个方向是不是好,这个方向的论文是不是好中。那只有做了之后,评审专家才会告诉你你做对了做错了,并且他还不会告诉你对的是什么,全程靠自己悟。

  悟性越强,你就越厉害。强化学习也是这样,越强的算法就越快能找到正确的道路通往奖励最大的地方。

什么是强化学习

  想想训练一条小狗,你不会告诉他该做什么,因为它听不懂。他做对了你给他奖励,做错了给惩罚。慢慢它就知道你啥意思了。强化学习也是一样。而你把这个小狗看成一个机器人,用这个相同的思想来训练的话,那就是强化学习了。

  当你训练到一定程度之后,就需要思考一个问题。遇到相同的情况,你是选择探索(explore)还是利用(exploit)?啥意思呢?

  就是,假设你来到一个新的城市,你刚开始选择去哪吃饭可能随机选一选,你大概会知道哪些店比较符合你的口味。当你有了一些基本的判断之后,你是会选择吃原来觉得好吃的店呢?还是探索你从来都没有去过的店呢?从来都没有去过的店你可能会觉得更好吃,也有可能不会。人的选择一般都是探索一点点,大部分时候都会选择以前觉得还可以的店。这中间就有个的问题。在计算机中怎么量化这个度呢,其实还是蛮难的。这也是强化学习的一个研究难点。平衡这个度。

  从这个角度扩展,会涉及到两个方面,“探索”和“记忆”。前者指的是从每一个状态下的众多可选行为中尝试选择其中一个,后者指的是要记住在特定场景下最有效的行为。这也是试错学习的精髓,是有效区别于监督学习的一个关键点。

强化学习算法步骤

  典型强化学习的算法步骤主要如下所示:

  1. 智能体通过动作(action)与环境进行交互;
  2. 而这个动作将会改变智能体现在所处的处境,智能体会从现在这个状态,移动到下一个状态去,我们一般称之为状态转移
  3. 智能体在这个过程中会得到一个奖励,这个奖励是由状态所决定的而不是动作。

  单纯的动作是没有好坏之分的,只有状态与动作结合起来才会有,因为你在当前这个状态执行这个动作,你的下一个状态基本也就定下来了。这个时候可能就有同学会问了,那要是跳变系统(就是这个系统的参数会发生跳变,有些是有规律的,有些是没有规律的)呢?你在相同的状态下执行相同的动作转移到下一个状态也不一定会相同呀。是不一定会完全相同,但是好的动作所能带来的期望收益是不一样的。

  关于这个跳变系统,这里我推荐两篇文章:

  一个是东北大学张化光老师团队的强化学习应用在马尔可夫跳变系统上;Optimal tracking control for completely unknown nonlinear discrete-time Markov jump systems using data-based reinforcement learning method。

  一个就是强化学习应用在跳变速度伺服系统上文章:Control Strategy of Speed Servo Systems Based on Deep Reinforcement Learning。

  第一篇呢我觉得是开创性的,解决了所有的跳变系统。文章采用的系统就是Markov jump systems。所谓的马尔可夫跳变系统,我百度一下:马尔科夫跳变系统是一种具有多个模态的随机系统,系统在各个模态之间的跳变转移是由一组马尔科夫链来决定的。

  第二篇是我之前做的速度伺服跳变系统,主要是其实验部分的数据是绝对真实的,以及网络、奖励参数的设置说地比较详细,对复现有很大帮助。自己写的代码太垃圾了,不敢放出来,但是是真实的。

  1. 基于这个奖励,这个智能体就能够知道自己的动作是好还是坏。好的话,当你下次在相同或者类似的情况下,采取这个动作的概率就要被增大。而怎么来实现这一点就是算法更新那一步的核心思想了。

强化学习与其他机器学习的区别

  一些基本的不同在上一篇文章里面好像有介绍与监督学习的不同点,这里说点不一样的。在监督学习里面,神经网络学习一个数据分布,然后应用于满足这个数据分布,但是却没有出现过的数据点上。在强化学习里面更倾向于是学习一种知识,或者说是一种思想,然后将学到的知识、思想用于解决一个任务(task)。

  这里是存在一些问题的,比如说我们小学学到的知识到了大学会不会忘记呢?人类当然是不怎么会忘记的,但是对于机器而言就不一定了。因为机器不能找到知识之间的逻辑关系,它们只是学到知识的输入输出的基本模式,并不是知识本身,就像刷题怪一样,可能对知识的理解不多,但是做题贼强。强化学习就有点类似刷题怪,所以它们很容易忘记以前所学的东西。其实这也是这两年顶会比较喜欢的东西。

  那怎么办呢?想想想让刷题怪还能不忘记以前的题目是怎么刷的咋整。就是再刷新的题目的时候刷少量以前的题目相当于温习一遍。AI也是这么干的,训练新数据的时候拿以前的数据拿过来再训练一下子。这样的话也会存在问题,就是随着任务的增多,你需要存放的数据也越来越多,就是需要刷的题目量越来越多。而当前的一种解决方法就是我们存一个模型,这个模型能够产生之前的数据,用这个模型产生以前的数据。

  或者我们做Konwledge Transfer,希望机器能够触类旁通。它与迁移学习不一样,迁移学习Transfer Learning不需要会以前的知识,而Konwledge Transfer需要。还有一种办法就是我训练新的数据的时候模型只做一小部分调整,相当于人类的固执。

  与无监督学习的区别:无监督学习是学习数据本身的规律、模式。强化学习是最大化期望收益。就像你去看电影,无监督学习学习你以前的观影记录,然后开始分析,给你推荐电影。强化学习相当于从用户那获得反馈,学习的是用户偏好,而不是数据本身,然后建立自己的知识框架,再来给你推荐电影。

  机器学习中还有另外一种学习方法,叫作半监督学习(semi-supervised learning),半监督学习是具有部分标签的。可能你会先聚类一下,然后看看哪些标签都再哪些类里面,再来进行划分。因此强化学习与它们是完全不同的。

我的微信公众号名称深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

相关文章
|
2月前
|
机器学习/深度学习 传感器 算法
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
|
2月前
|
机器学习/深度学习 人工智能 算法
机器学习中的元强化学习
元强化学习是强化学习与元学习的交叉领域,旨在通过迁移已有知识来提升新任务上的学习效率。
56 2
|
2月前
|
机器学习/深度学习 自然语言处理 算法
机器学习和深度学习之间的区别
机器学习和深度学习在实际应用中各有优势和局限性。机器学习适用于一些数据量较小、问题相对简单、对模型解释性要求较高的场景;而深度学习则在处理大规模、复杂的数据和任务时表现出色,但需要更多的计算资源和数据,并且模型的解释性较差。在实际应用中,需要根据具体的问题和需求,结合两者的优势,选择合适的方法来解决问题。
83 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
浅谈机器学习与深度学习的区别
浅谈机器学习与深度学习的区别
66 0
|
3月前
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
76 4
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
131 1
|
4月前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
103 4
|
6月前
|
机器学习/深度学习 算法 搜索推荐
机器学习方法之强化学习
强化学习是一种机器学习方法,旨在通过与环境的交互来学习如何做出决策,以最大化累积的奖励。
83 2
|
6月前
|
机器学习/深度学习 自然语言处理 算法
机器学习和深度学习的区别
机器学习和深度学习的区别
133 1
|
6月前
|
机器学习/深度学习 算法 TensorFlow
强化学习是一种通过与环境交互来学习最优行为策略的机器学习方法。
强化学习是一种通过与环境交互来学习最优行为策略的机器学习方法。