当前位置:首页 » 操作系统 » sarsa算法

sarsa算法

发布时间: 2023-03-16 06:32:20

⑴ 人工智能算法简介

人工智能的三大基石—算法、数据和计算能力,算法作为其中之一,是非常重要的,那么人工智能都会涉及哪些算法呢?不同算法适用于哪些场景呢?

一、按照模型训练方式不同可以分为监督学习(Supervised Learning),无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)和强化学习(Reinforcement Learning)四大类。

常见的监督学习算法包含以下几类:
(1)人工神经网络(Artificial Neural Network)类:反向传播(Backpropagation)、波尔兹曼机(Boltzmann Machine)、卷积神经网络(Convolutional Neural Network)、Hopfield网络(hopfield Network)、多层感知器(Multilyer Perceptron)、径向基函数网络(Radial Basis Function Network,RBFN)、受限波尔兹曼机(Restricted Boltzmann Machine)、回归神经网络(Recurrent Neural Network,RNN)、自组织映射(Self-organizing Map,SOM)、尖峰神经网络(Spiking Neural Network)等。
(2)贝叶斯类(Bayesin):朴素贝叶斯(Naive Bayes)、高斯贝叶斯(Gaussian Naive Bayes)、多项朴素贝叶斯(Multinomial Naive Bayes)、平均-依赖性评估(Averaged One-Dependence Estimators,AODE)
贝叶斯信念网络(Bayesian Belief Network,BBN)、贝叶斯网络(Bayesian Network,BN)等。
(3)决策树(Decision Tree)类:分类和回归树(Classification and Regression Tree,CART)、迭代Dichotomiser3(Iterative Dichotomiser 3, ID3),C4.5算法(C4.5 Algorithm)、C5.0算法(C5.0 Algorithm)、卡方自动交互检测(Chi-squared Automatic Interaction Detection,CHAID)、决策残端(Decision Stump)、ID3算法(ID3 Algorithm)、随机森林(Random Forest)、SLIQ(Supervised Learning in Quest)等。
(4)线性分类器(Linear Classifier)类:Fisher的线性判别(Fisher’s Linear Discriminant)
线性回归(Linear Regression)、逻辑回归(Logistic Regression)、多项逻辑回归(Multionmial Logistic Regression)、朴素贝叶斯分类器(Naive Bayes Classifier)、感知(Perception)、支持向量机(Support Vector Machine)等。

常见的无监督学习类算法包括:
(1) 人工神经网络(Artificial Neural Network)类:生成对抗网络(Generative Adversarial Networks,GAN),前馈神经网络(Feedforward Neural Network)、逻辑学习机(Logic Learning Machine)、自组织映射(Self-organizing Map)等。
(2) 关联规则学习(Association Rule Learning)类:先验算法(Apriori Algorithm)、Eclat算法(Eclat Algorithm)、FP-Growth算法等。
(3)分层聚类算法(Hierarchical Clustering):单连锁聚类(Single-linkage Clustering),概念聚类(Conceptual Clustering)等。
(4)聚类分析(Cluster analysis):BIRCH算法、DBSCAN算法,期望最大化(Expectation-maximization,EM)、模糊聚类(Fuzzy Clustering)、K-means算法、K均值聚类(K-means Clustering)、K-medians聚类、均值漂移算法(Mean-shift)、OPTICS算法等。
(5)异常检测(Anomaly detection)类:K最邻近(K-nearest Neighbor,KNN)算法,局部异常因子算法(Local Outlier Factor,LOF)等。

常见的半监督学习类算法包含:生成模型(Generative Models)、低密度分离(Low-density Separation)、基于图形的方法(Graph-based Methods)、联合训练(Co-training)等。

常见的强化学习类算法包含:Q学习(Q-learning)、状态-行动-奖励-状态-行动(State-Action-Reward-State-Action,SARSA)、DQN(Deep Q Network)、策略梯度算法(Policy Gradients)、基于模型强化学习(Model Based RL)、时序差分学习(Temporal Different Learning)等。

常见的深度学习类算法包含:深度信念网络(Deep Belief Machines)、深度卷积神经网络(Deep Convolutional Neural Networks)、深度递归神经网络(Deep Recurrent Neural Network)、分层时间记忆(Hierarchical Temporal Memory,HTM)、深度波尔兹曼机(Deep Boltzmann Machine,DBM)、栈式自动编码器(Stacked Autoencoder)、生成对抗网络(Generative Adversarial Networks)等。

二、按照解决任务的不同来分类,粗略可以分为二分类算法(Two-class Classification)、多分类算法(Multi-class Classification)、回归算法(Regression)、聚类算法(Clustering)和异常检测(Anomaly Detection)五种。
1.二分类(Two-class Classification)
(1)二分类支持向量机(Two-class SVM):适用于数据特征较多、线性模型的场景。
(2)二分类平均感知器(Two-class Average Perceptron):适用于训练时间短、线性模型的场景。
(3)二分类逻辑回归(Two-class Logistic Regression):适用于训练时间短、线性模型的场景。
(4)二分类贝叶斯点机(Two-class Bayes Point Machine):适用于训练时间短、线性模型的场景。(5)二分类决策森林(Two-class Decision Forest):适用于训练时间短、精准的场景。
(6)二分类提升决策树(Two-class Boosted Decision Tree):适用于训练时间短、精准度高、内存占用量大的场景
(7)二分类决策丛林(Two-class Decision Jungle):适用于训练时间短、精确度高、内存占用量小的场景。
(8)二分类局部深度支持向量机(Two-class Locally Deep SVM):适用于数据特征较多的场景。
(9)二分类神经网络(Two-class Neural Network):适用于精准度高、训练时间较长的场景。

解决多分类问题通常适用三种解决方案:第一种,从数据集和适用方法入手,利用二分类器解决多分类问题;第二种,直接使用具备多分类能力的多分类器;第三种,将二分类器改进成为多分类器今儿解决多分类问题。
常用的算法:
(1)多分类逻辑回归(Multiclass Logistic Regression):适用训练时间短、线性模型的场景。
(2)多分类神经网络(Multiclass Neural Network):适用于精准度高、训练时间较长的场景。
(3)多分类决策森林(Multiclass Decision Forest):适用于精准度高,训练时间短的场景。
(4)多分类决策丛林(Multiclass Decision Jungle):适用于精准度高,内存占用较小的场景。
(5)“一对多”多分类(One-vs-all Multiclass):取决于二分类器效果。

回归
回归问题通常被用来预测具体的数值而非分类。除了返回的结果不同,其他方法与分类问题类似。我们将定量输出,或者连续变量预测称为回归;将定性输出,或者离散变量预测称为分类。长巾的算法有:
(1)排序回归(Ordinal Regression):适用于对数据进行分类排序的场景。
(2)泊松回归(Poission Regression):适用于预测事件次数的场景。
(3)快速森林分位数回归(Fast Forest Quantile Regression):适用于预测分布的场景。
(4)线性回归(Linear Regression):适用于训练时间短、线性模型的场景。
(5)贝叶斯线性回归(Bayesian Linear Regression):适用于线性模型,训练数据量较少的场景。
(6)神经网络回归(Neural Network Regression):适用于精准度高、训练时间较长的场景。
(7)决策森林回归(Decision Forest Regression):适用于精准度高、训练时间短的场景。
(8)提升决策树回归(Boosted Decision Tree Regression):适用于精确度高、训练时间短、内存占用较大的场景。

聚类
聚类的目标是发现数据的潜在规律和结构。聚类通常被用做描述和衡量不同数据源间的相似性,并把数据源分类到不同的簇中。
(1)层次聚类(Hierarchical Clustering):适用于训练时间短、大数据量的场景。
(2)K-means算法:适用于精准度高、训练时间短的场景。
(3)模糊聚类FCM算法(Fuzzy C-means,FCM):适用于精确度高、训练时间短的场景。
(4)SOM神经网络(Self-organizing Feature Map,SOM):适用于运行时间较长的场景。
异常检测
异常检测是指对数据中存在的不正常或非典型的分体进行检测和标志,有时也称为偏差检测。
异常检测看起来和监督学习问题非常相似,都是分类问题。都是对样本的标签进行预测和判断,但是实际上两者的区别非常大,因为异常检测中的正样本(异常点)非常小。常用的算法有:
(1)一分类支持向量机(One-class SVM):适用于数据特征较多的场景。
(2)基于PCA的异常检测(PCA-based Anomaly Detection):适用于训练时间短的场景。

常见的迁移学习类算法包含:归纳式迁移学习(Inctive Transfer Learning) 、直推式迁移学习(Transctive Transfer Learning)、无监督式迁移学习(Unsupervised Transfer Learning)、传递式迁移学习(Transitive Transfer Learning)等。

算法的适用场景:
需要考虑的因素有:
(1)数据量的大小、数据质量和数据本身的特点
(2)机器学习要解决的具体业务场景中问题的本质是什么?
(3)可以接受的计算时间是什么?
(4)算法精度要求有多高?
————————————————

原文链接: https://blog.csdn.net/nfzhlk/article/details/82725769

⑵ Q-Learning 和 SARSA 算法对比

Q-learning算法的过程可以根据下面的步骤:

首先,我们会初始化一个Q-table,可以是全0或者是其他的数值,一般咐裤悉都是全0,然后我们设定训练的轮数episodes,这里从初始状态直到终止状态算作一轮。那么在每一轮中,我们会有一个初始状态,然后会不断的采取动作,这里每一个动作叫做一个step。在每一个step中,我们根据当前的状态通过一定的策略选择动作A,这里的策略可能是以0.9的概率选择Q-table中当前状态对应的q值最大的动作,以0.1的概率选择随机动作。然后在选择动作A之后,我们可以得到奖励值R和新的状态S,那么当前q值的更新基于下面的公式:

其中alpha是学习率,表示保留之前训练效果的多少,学习速率α越大,保留之前训练的效果就越少,如果学习率是1的话,完全用新学到的q值替换掉了原来的q值。R是从环境获得的奖励,而gamma是折现系数,我们会选择到新状态之后能够得到的最大的Q值来更新当前的Q值。

对于Q-learning来说,
1.在状态s'时,只是计算了 在s'时要采取哪个a'可以得到更大的Q值,并没有真的采取这个动作a'。
2.动作a的选取是根据当前Q网络以及策略(e-greedy),即每一步都会根据当前的状况选择一个动作A,目标Q值的计算是根据Q值最大的动作a'计算得来,因此为off-policy学习。

SARSA算法根Q-learning很像,也是基于Q-table,但是不同的是,在每一个episode的每一个step,我们会确定下一步采取的动作,而不是在下一个衡乎step开始时动态的确定step,算法步骤看下面的图示。

因此对于SARSA来说
1.在状态s'时,就知道了要采取哪个a',并真的采取了这个动作。
2.动作a的选取遵循e-greedy策略,目标Q值的计算也是根据(e-greedy)策略得到的动作a'纯档计算得来,因此为on-policy学习。

⑶ 什么是 Sarsa

sarsa 英['sɑ:sə] 美['sɑ:sə]
n. 撒尔沙,由撒尔沙梁搜根中提炼的药;
[例句]Based on the factored representation of a state, a new SARSA ( λ) algorithm is proposed.
基于状态的因素化表达,提灶盯出了一个新的SARSA(λ)激励学习橡辩历算法。

⑷ 关于强化学习需要了解的知识

自从人工智能这一事物流行以后,也开始流行了很多的新兴技术,比如机器学习、深度学习、强化学习、增强学习等等,这些技术都在人工智能中占据着很大的地位。我们在这篇文章中重点给大家介绍一下关于强化学习需要了解的知识,希望这篇文章能够更好地帮助大家理解强化学习。
为什么强化学习是一个热门的研究课题呢?是因为在人机大战中强化学习在阿尔法狗中大放光彩,也正是这个原因,强化学习越来越受到科研人员的喜爱。那么强化学习是什么呢?强化学习与其它机器学习方法有什么关系呢?
首先,强化学习是一种机器学习方法,强化学习能够使Agent能够在交互式环境中年通过试验并根据自己的行动和经验反馈的错误来进行学习。虽然监督学习和强化学习都使用输入和输出之间的映射关系,但强化学习与监督学习不同,监督学习提供给Agent的反馈是执行任务的正确行为,而强化学习使用奖励和惩罚作为积极和消极行为的信号。
那么强化学习和无监督学习有什么不同呢?如果和无监督学习相比,强化学习在目标方面有所不同。虽然无监督学习的目标是找出数据点之间的相似性和不同性,但是在强化学习中,其目标是找到一个合适的动作模型,能够最大化Agent的累积奖励总额。
那么如何创建一个基本的强化学习的问题呢?这就需要我们先了解一下增强学习中的一些概念,第一就是环境,也就是Agent操作的现实世界。第二就是状态,也就是Agent的现状。第三就是奖励,也就是来自环境的反馈。第四就是策略,也就是将Agent的状态映射到动作的方法。第五就是价值,也就是Agent在特定状态下采取行动所得到的报酬。所以说,为了建立一个最优策略,Agent需要不断探索新的状态,同时最大化其所获奖励累积额度,这也被称作试探和权衡。
而马尔可夫决策过程是用来描述增强学习环境的数学框架,几乎所有的增强学习问题都可以转化为马尔科夫决策过程。马尔科夫决策由一组有限环境状态、每个状态中存在的一组可能行为、一个实值奖励函数以及一个转移模型组成。然而,现实世界环境可能更缺乏对动态环境的任何先验知识。通过这些去试错,一直在每一步中去尝试学习最优的策略,在多次迭代后就得到了整个环境最优的策略。
那么最常用的强化学习算法有哪些呢?Q-learning和SARSA是两种常用的model-free强化学习算法。虽然它们的探索策略不同,但是它们的开发策略却相似。备毕虽然Q-learning是一种离线学习方法,其中Agent根据从另一个李滚漏策略得到的行动a*学习价值,但SARSA是一个在线学习方法,它从目前哪烂的策略中获得当前行动的价值。这两种方法实施起来很简单,但缺乏一般性,因为无法估计出不可见状态的价值。
在这篇文章中我们给大家介绍了很多关于强化学习的知识,通过这些知识我们不难发现,强化学习是一个十分实用的内容,要想学好人工智能就一定不能够忽视对强化学习知识的掌握,最后祝愿大家早日拿下强化学习。

⑸ 深度学习中sarsa算法和Q-learning算法的区别

每每看到胡说八道的就忍不住怒答一波,虽然我可能表述不清晰

  1. sarsa-learning q-learning都是reinforcement learning中用来解决MDP最优化值函数问题的temporal-difference方法,跟DL没啥卵关系,虽然RL可以深度化

  2. 区别在于,在更新Q(S_t, A_t)时,前者Q(S_t+1)的动作A_t+1通过episinon-greedy确定,而后者的A_t+1通过greedy确定;共同点在于S_t选择动作的策略是一样的(episinon-greedy)

  3. episinon-greedy 是一种策略, 比如 epsilon = 0.9 时, 就说明0.9的概率我会按照 Q 表的最优值选择行为, 0.1的概率使用随机选行为. 简单来说,就是在更新Q时,sarsa以概率episinon选择S_t+1状态的最大动作值函数,q-learning直接选最大

⑹ SARSA 算法简介

State–action–reward–state–action (SARSA) 也是强化学习中很重要的一个算法,它的算法和公式和 Q learning 很像,但是 Q-Learning 是Off-Policy的,SARSA 是On-Policy 的,具体区别我们可以在下一节中再看。

下面是 Q-Learning 的算法流程,前面几篇文章介绍的比较详细了,相信理解起来也很轻松,

下面是肢裤SARSA的算法流程:

可以看出主碧历要区别在Q 值的更新公式:历慧简

⑺ Sarsa-lambda

Sarsa-lambda
Q learning 和 Sarsa都是单步更新的算法。单步跟新的算法缺点就是在没有找到宝藏之前,机器人在原地打转的那些行动也被记录在案,并更新了Q表,即便那些行动都是没有意义的。
Lambda(λ)这个衰减系数的引入,就是为了解决漏埋这个问题的。与γ用来衰减未来预期Q的值一样,λ是当机器人获得宝藏之后,在更新Q表的时候,给机器人一个回头看之前走过的路程的机会。相当于,机器人每走一步就会在地上插一杆旗子,然后机器人每走一步旗子就会变小一点。

Sarsa(lambda)算法是Sarsa 的改进版,二者的主要区别在于:

在每次take action获得reward后,Sarsa只对前一步Q(s,a)进行更返谈蚂新,Sarsa(lambda) 则会对获得reward之前的步进行更新。
Sarsa(lambda)算法的流程如下:

从上图可以看出,和Sarsa相比,Sarsa(lambda)算法中多了一个矩阵E (eligibility trace),它是用来保存在路径中所经历的每一步,因此在每次更新时也会对之前经历的步进行更新。

参数lambda取值范围为[0, 1] ,如果 lambda = 0,Sarsa(lambda) 将退化为Sarsa,即只更新获取到 reward 前经历的最后一步;如果 lambda = 1,Sarsa(lambda) 更新的是获取到 reward 前的所有步。lambda 可理解为脚步的衰变值,即离奶酪越近的步越重要,越远的步则对于获取奶酪不是太重要。

和Sarsa相比,Sarsa(lambda)算法有如下优势:

Sarsa虽然会边走边更新,但是在没有获得奶酪之前,当侍陵前步的Q值是没有任何变化的,直到获取奶酪后,才会对获取奶酪的前一步更新,而之前为了获取奶酪所走的所有步都被认为和获取奶酪没关系。Sarsa(lambda)则会对获取奶酪所走的步都进行更新,离奶酪越近的步越重要,越远的则越不重要(由参数lambda控制衰减幅度)。因此,Sarsa(lambda) 能够更加快速有效的学到最优的policy。
在算法前几回合,老鼠由于没有头绪, 可能在原地打转了很久,从而形成一些重复的环路,而这些环路对于算法的学习没有太大必要。Sarsa(lambda)则可解决该问题,具体做法是:在E(s,a)←E(s,a)+1这一步之前,可先令E(s)=0,即把状态s对应的行置为0,这样就只保留了最近一次到达状态s时所做的action。

⑻ 求高人解答 Sarsa学习算法和Q学习算法的区别

唯一含辩档区别就是 Q学习算法有个最大Q值的采用 而sarsa木有
Q算法是当选择下一步的时候 会找最好的一个走(选最大Q值的) 而sarsa是当灶隐选择下一步的时候 运用和上一步一样/想等的Q值 但是最后都会更新之前的一步从而达到学习的效果~
java代码就算了吧 其实都谈乱大同小异

热点内容
我的世界手机无人管理服务器 发布:2025-08-24 16:57:54 浏览:190
androidsdk32下载 发布:2025-08-24 16:36:35 浏览:266
安卓手机忘了解锁密码怎么办 发布:2025-08-24 16:35:09 浏览:789
存储过程在java代码 发布:2025-08-24 16:32:11 浏览:498
写编译器需要哪些知识 发布:2025-08-24 16:09:06 浏览:330
数据库的关系符号 发布:2025-08-24 16:02:29 浏览:626
sqlserver表值函数 发布:2025-08-24 15:56:27 浏览:554
linuxc内存泄露 发布:2025-08-24 15:54:30 浏览:112
python读取文件每一行 发布:2025-08-24 15:32:27 浏览:83
abbplc编程软件 发布:2025-08-24 15:31:43 浏览:210