首页 > 其他分享 >强化学习

强化学习

时间:2025-01-21 18:42:46浏览次数:1  
标签:状态 函数 动作 学习 奖励 强化

一.简介

        深度学习、强化学习和深度强化学习是机器学习的三个重要子领域。它们有着各自独特的应用场景和研究目标,虽然都属于机器学习的范畴,但各自的实现方式和侧重点有所不同。

1.1    深度学习与强化学习

1.1.1深度学习

        深度学习是一种基于神经网络的机器学习方法,通过多层网络结构(即深度网络)来自动从数据中提取特征,并逐层抽象出更高层次的特征。它与线性回归、决策树、支持向量机等传统机器学习算法在同一维度下,是一种特定的模型分类方法

        传统机器学习算法通常需要手动设计特征(例如线性回归或支持向量机),而深度学习的神经网络可以自动从原始数据中提取特征。这种特征学习能力使得深度学习在处理高维数据、图像、音频、文本等复杂数据时表现出色。深度学习是基于神经网络的一种技术,尤其是深度神经网络(DNNs)。它由多层的神经元组成,每一层负责提取输入数据中的不同层次特征。输入层接收原始数据,经过中间的隐藏层逐步提取更复杂的特征,最终通过输出层给出预测结果。尽管深度学习可以自动进行特征提取和学习,但由于网络结构复杂且参数众多,导致其可解释性较差,因此常被称为“黑盒模型”。这意味着我们很难准确解释模型做出某一预测的具体原因。

        深度学习广泛应用于图像分类(如卷积神经网络CNN)、自然语言处理(如循环神经网络RNN和Transformer)、语音识别、自动驾驶等领域。

1.1.2 强化学习

      强化学习是一种基于任务分类的机器学习方法,旨在通过与环境的交互来学习决策策略,从而使智能体在长期内获得最大化的累积奖励。它与有监督学习、无监督学习属于同一维度的任务分类方法。

      监督学习有标签告诉算法什么样的输入对应着什么样的输出(譬如分类、回归等问题),所以对于监督学习,目标是找到一个最优的模型函数,使其在训练数据集上最小化一个给定的损失函数,相当于最小化预测误差。无监督学习指的是没有标签的数据,模型从数据的分布和结构中发现潜在模式,如聚类或降维。不同于上述两者,强化学习中的数据并非来自静态的样本集合,RL没有标签告诉它在某种情况下应该做出什么样的行为,只有一个做出一系列行为后最终反馈回来的reward,然后判断当前选择的行为是好是坏。因此RL的目标是最大化智能体策略在和动态环境交互过程中的价值,而策略的价值可以等价转换成奖励函数的期望,即最大化累计下来的奖励期望

        从学习方式层面上来说,深度学习属于上述四种方式的子集。

        强化学习中智能体的学习过程基于奖励函数。在每一步的决策后,智能体从环境中收到反馈,可能是正奖励(表示决策正确)或负奖励(表示决策错误)。智能体通过反复试探环境并不断调整行为策略,以期获得最大化的累积奖励。强化学习的核心是“试错学习”,智能体通过不断尝试不同的动作来探索最佳策略。此外,强化学习中往往存在“延迟奖励”,即智能体的某些行为的影响可能在未来才会体现,这增加了决策的复杂性。

        它不是一个分类的任务,不是金融反欺诈场景中如何分辨欺诈客户和正常客户。强化学习主要是指导训练对象每一步如何决策,采用什么样的行动可以完成特定的目的或者使收益最大化

        强化学习广泛应用于游戏(如AlphaGo)、自动控制、机器人学、金融交易系统和自动驾驶等需要智能决策的领域。

        比如AlphaGo下围棋,AlphaGo就是强化学习的训练对象,AlphaGo走的每一步不存在对错之分,但是存在“好坏”之分。当前这个棋面下,下的“好”,这是一步好棋。下的“坏”,这是一步臭棋。强化学习的训练基础在于AlphaGo的每一步行动环境都能给予明确的反馈,是“好”是“坏”?“好”“坏”具体是多少,可以量化。强化学习在AlphaGo这个场景中最终训练目的就是让棋子占领棋面上更多的区域,赢得最后的胜利。

1.1.3 深度强化学习

        深度强化学习是深度学习和强化学习的结合体,利用深度神经网络的强大表示能力来解决强化学习中状态空间和动作空间庞大的问题。传统强化学习算法(如Q-learning或策略梯度法)在处理高维连续状态或动作空间时表现有限,难以应对复杂的任务场景。深度强化学习通过引入深度神经网络来表示Q函数或策略函数,从而使智能体能够在大规模复杂的环境中进行学习。

        在深度强化学习中,深度神经网络用于估计智能体在不同状态下的价值(或策略),从而引导智能体选择最优动作。这种方法使得强化学习可以处理更加复杂的问题,例如大规模图像输入或连续控制任务。深度Q网络(DQN)是深度强化学习的代表算法之一,通过将Q-learning与卷积神经网络结合,使得智能体能够处理复杂的视觉输入。其他著名算法包括深度确定性策略梯度(DDPG)、近端策略优化(PPO)等。

        将深度学习的感知能力和强化学习的决策能力结合在一起,就可以形成很多泛用的AI。深度强化学习在视频游戏、机器人控制、自动驾驶、推荐系统和金融市场分析等领域有重要应用。例如,Google DeepMind的AlphaGo和AlphaStar通过深度强化学习在围棋和星际争霸等游戏中击败了人类顶尖玩家。

1.2    强化学习的主要特点

  • 试错学习:强化学习需要训练对象不停地和环境进行交互,通过试错的方式去总结出每一步的最佳行为决策,整个过程没有任何的指导,只有冰冷的反馈。所有的学习基于环境反馈,训练对象去调整自己的行为决策。
  • 延迟反馈:强化学习训练过程中,训练对象的“试错”行为获得环境的反馈,有时候可能需要等到整个训练结束以后才会得到一个反馈,比如Game Over或者是Win。当然这种情况,我们在训练时候一般都是进行拆解的,尽量将反馈分解到每一步。
  • 时间是强化学习的一个重要因素:强化学习的一系列环境状态的变化和环境反馈等都是和时间强挂钩,整个强化学习的训练过程是一个随着时间变化,而状态&反馈也在不停变化的,所以时间是强化学习的一个重要因素。
  • 当前的行为影响后续接收到的数据:为什么单独把该特点提出来,也是为了和监督学习&半监督学习进行区分。在监督学习&半监督学习中,每条训练数据都是独立的,相互之间没有任何关联。但是强化学习中并不是这样,当前状态以及采取的行动,将会影响下一步接收到的状态。数据与数据之间存在一定的关联性。

1.3    强化学习的组成部分

  • Agent,一般译为智能体,就是我们要训练的模型,类似玩超级玛丽的时候操纵马里奥做出相应的动作,而这个马里奥就是Agent
  • action(简记为a),玩超级玛丽的时候你会控制马里奥做三个动作,即向左走、向右走和向上跳,而马里奥做的这三个动作就是action
  • Environment,即环境,它是提供reward的某个对象,它可以是AlphaGo中的人类棋手,也可以是自动驾驶中的人类驾驶员,甚至可以是某些游戏AI里的游戏规则
  • reward(简记为r),Agent在当前State下,采取了某个特定的action后,会获得环境的一定反馈就是Reward。接近目标意味着做得好则奖,远离目标意味着做的不好则惩,最终达到收益/奖励最大化,且这个奖励是强化学习的核心
  • State(简介为s),可以理解成环境的状态,简称状态。

二 强化学习训练过程

        整个训练过程都基于一个前提,我们认为整个过程都是符合马尔可夫决策过程(MDP)的。

2.1 MDP基础

        MDP核心思想就是下一步的State只和当前的状态State以及当前状态将要采取的Action有关,只回溯一步。在某时刻t的状态通常取决于t时刻之前的状态,我们将已知历史信息时下一个时刻的状态的概率表示成。马尔可夫性质即。比如AlphaGo下围棋,当前棋面是什么,当前棋子准备落在哪里,我们就可以清晰地知道下一步的棋面是什么了。

        为什么我们要先定义好整个训练过程符合MDP呢,因为只有符合MDP,我们才方便根据当前的State,以及要采取的Action,推理出下一步的State。方便在训练过程中清晰地推理出每一步的State变更,如果在训练过程中我们连每一步的State变化都推理不出,那么也无从训练。

        在马尔可夫过程的基础上加入奖励函数R和折扣因子γ,就可以得到马尔可夫奖励过程(Markov reward process,MRP)。

  • 奖励函数,某个状态s的奖励,是指转移到该状态时可以获得奖励的期望。(即时)
  • 实际中,因为一个状态可以得到的奖励是持久的,所有奖励的衰减之和称为回报,可用G表示当下即时奖励和所有持久奖励等一切奖励的加权和(考虑到一般越往后某个状态给的回报率越低,也即奖励因子或折扣因子越小),从而有

        而一个状态的期望回报就称之为这个状态的价值,所有状态的价值则组成了所谓的价值函数,用公式表达为,展开一下可得

        前半部分表示当前状态得到的即时奖励,后半部分表示当前状态得到的所有持久奖励,可以根据从状态s出发的转移概率得到。

2.2 MDP:马尔可夫奖励(MRP) + 智能体动作因素

        MRP+action=MDP

        在马尔可夫决策过程中,(S是状态的集合)和(R是奖励的集合)的每个可能的值出现的概率只取决于前一个状态和前一个动作(A是动作的集合),并且与更早之前的状态和动作完全无关。换言之,当给定当前状态(比如),以及当前采取的动作(比如),那么下一个状态出现的概率,可由状态转移概率矩阵表示如下

        假定在当前状态和当前动作确定后,其对应的奖励则设为,故状态转移概率矩阵类似为

        从而可得奖励函数即为

         Action因素:涉及到策略policy,策略函数可以表述为Π函数。,意味着输入状态s,策略函数Π输出动作a。再比如这种,相当于输入一个状态s下,智能体采取某个动作a的概率。

        有了动作这个因素之后,我们重新梳理下价值函数

2.2.1通过“动作价值函数”对动作的评估

        动作价值函数Qπ有什么直观意义呢?Qπ说明agent处在状态s时做出动作a是否明智,Qπ可以给动作a打分。最好的a是什么呢?就是让Qπ最大化的那个a。

        相当于对当前状态s依据策略​Π执行动作a得到的期望回报,(s,a均确定)这就是大名鼎鼎的Q​函数,得到Q​函数后,进入某个状态要采取的最优动作便可以通过Q​函数得到.如果当前的状态是st,这个Q函数就会告诉我们这个动作at好不好,比如下围棋的时候状态就是这个棋盘,Q函数就会告诉我们了,如果你把棋子放在这个位置你的胜算有多大,如果把棋子放在别的位置你的胜算有多大,Q函数非常有用,假如有了Q,agent就能根据Q对动作的评价来做决策了.

        当有了策略、价值函数和模型3个组成部分后,就形成了一个马尔可夫决策过程。且通过状态转移概率分布,我们可以揭示状态价值函数和动作价值函数之间的联系。

2.2.2状态价值函数对状态的评估

        Vπ是把Qπ中的变量A用积分去掉,这样变量就只剩下状态s,Vπ跟policy函数π和状态s有关和动作a无关。在使用策略Π时,状态s的价值等于在该状态下基于策略Π采取所有动作的概率与相应的价值相乘再求和的结果

        Vπ是动作价值函数Qπ的期望,Qπ和policy函数π,状态St,动作At有关,可以把这里的动作A作为随机变量,然后关于A求期望把A消掉,求期望得到的Vπ只和π和s有关。

         它能告诉我们当前的局势好不好。假如我来根据policy函数π来下围棋,让Vπ看一下棋盘,它就会告诉我,当前我的胜算有多大,是快赢了快输了还是和对手不分高下,这里的期望都是根据随机变量A来求的,A的概率密度函数是π。

2.3 如何控制agent

        一种办法是学习policy函数π,这在强化学习里面叫做policy-based learning 基于策略的学习.

        另外一种方法是optimal action-value function(最优动作-价值函数)Q* ,这在强化学习里面称为value-based learning 价值学习。

        第三种是两者结合。

 

标签:状态,函数,动作,学习,奖励,强化
From: https://www.cnblogs.com/mmhhhlb/p/18684189

相关文章

  • 将机器学习算法移植到低端MCU上的实用指南
    将机器学习算法移植到低端MCU上的实用指南在物联网(IoT)和边缘计算迅猛发展的今天,将智能功能嵌入到资源有限的低端单片机(MicrocontrollerUnit,MCU)上,已经成为许多开发者和工程师追求的目标。然而,这一过程充满挑战,但只要掌握正确的方法,也能在低端MCU上实现高效的机器学习应用。......
  • Django学习笔记(安装和环境配置)-01
    Django学习笔记(安装和环境配置)-01一、创建python环境1、可以通过安装Anaconda来创建一个python环境#创建一个虚拟python环境condacreate-ndjangopython=3.8#切换激活到创建的环境中activatedjango2、安装django#进入虚拟环境中安装django框架pipinstal......
  • Linux学习笔记——vim编辑器的使用
    sudo    提权命令,在没有权限执行的时候,在命令前面加上该命令就会使用root身份进行执行。注:输入密码时看不见密码,输入正确即可。vi/vim命令:终端下编辑文件的首选工具。三种模式:1.命令模式:vim        文件名进入文件默认进入命令模式,不能编辑。后续按esc进入......
  • 我的 Python 学习之旅:从入门到实践
    在当今数字化时代,编程语言成为了开启无数可能的钥匙,而Python以其简洁易读、功能强大的特性吸引了众多学习者。我也踏上了这条学习Python的奇妙旅程,下面就来分享一下我的学习过程。一、学习动机的萌芽最初接触Python,是听闻它在数据科学、人工智能、自动化脚本等多个领域......
  • 元强化学习算法—— EMCL —— 《Adapting to Dynamic LEO B5G Systems Meta-Critic L
    原文地址:https://orbilu.uni.lu/bitstream/10993/52996/1/Adapting_to_Dynamic_LEO-B5G_Systems_Meta-Critic_Learning_Based_Efficient_Resource_Scheduling.pdfPS:大概距离这个论文是fake的,无法做验证,其中对引用的算法的描述也是错的,基于一堆错误的东西能搞错对的东......
  • 深度学习与大语言模型开源书单
    下面是一些开源的深度学习与大语言模型教程书籍,可以从GitHub免费下载。神经网络与深度学习链接:https://nndl.github.io/介绍:系统地整理了神经网络和深度学习的知识体系。鉴于深度学习涉及的知识点较多,本书从机器学习的基本概念、神经网络模型以及概率图模型三个层面来串联......
  • 【人工智能】Python实战:构建高效的多任务学习模型
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界多任务学习(Multi-taskLearning,MTL)作为机器学习领域中的一种重要方法,通过在单一模型中同时学习多个相关任务,不仅能够提高模型的泛化能力,还能......
  • Go语言学习----Go优势及安装
    1,脚本化的语法;开发效率高,容易上手2,静态类型+编译型,程序运行速度有保障,速度大于动态类型+解释型语言,速度高出很多3,原生的支持并发编程;降低开发、维护成本/程序可以更好的执行Go语言的劣势1,语法糖并没有Python和Ruby那么多2,目前的程序运行速度还不及C,速度已赶超C++和java3......
  • 深入探讨RAMS(区域大气建模系统)与机器学习的结合方法
    在现代气象科学中,区域大气建模系统(RegionalAtmosphericModelingSystem,简称RAMS)与机器学习(MachineLearning,ML)的结合为提升天气预报的精度和效率提供了新的途径。本文将详细说明如何将RAMS与机器学习技术有效结合,从数据预处理、模型优化、预测改进等多个方面进行探讨。1.数......
  • STM32学习笔记-创建工程模版
    1、通过Keil创建新项目。2、在创建的项目文件夹下分别建立Strat、Library、User文件夹。3、在Start文件夹中放入以下固件库中的文件。启动文件:\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm外设文件:\固件库\ST......