精华内容
下载资源
问答
  • SVM算法优点: 1. 可用于线性/非线性分类,也可以用于回归; 2. 低泛化误差; 3. 容易解释; 4. 计算复杂度较低; 缺点: 1. 对参数和核函数的选择比较敏感; 2. 原始的SVM只比较擅长处理二...

    https://www.toutiao.com/a6706432431647359491/

     

     

    2019-06-25 19:43:14

    朴素贝叶斯:

    1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。

    2. 计算公式如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

    的计算方法,而由朴素贝叶斯的前提假设可知,

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

    =

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

    ,因此一般有两种,一种是在类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本的总和;第二种方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。

    3. 如果

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

    中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace光滑, 分母加k的原因是使之满足全概率公式)。

    朴素贝叶斯的优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。

    缺点:对输入数据的表达形式很敏感。

     

    决策树:决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。

    信息熵的计算公式如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    其中的n代表有n个分类类别(比如假设是2类问题,那么n=2)。分别计算这2类样本在总样本中出现的概率p1和p2,这样就可以计算出未选中属性分枝前的信息熵。

    现在选中一个属性xi用来进行分枝,此时分枝规则是:如果xi=vx的话,将样本分到树的一个分支;如果不相等则进入另一个分支。很显然,分支中的样本很有可能包括2个类别,分别计算这2个分支的熵H1和H2,计算出分枝后的总信息熵H’=p1*H1+p2*H2.,则此时的信息增益ΔH=H-H’。以信息增益为原则,把所有的属性都测试一边,选择一个使增益最大的属性作为本次分枝属性。

    决策树的优点:计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;

    缺点:容易过拟合(后续出现了随机森林,减小了过拟合现象)。

     

    Logistic回归:Logistic是用来分类的,是一种线性分类器,需要注意的地方有:

    1. logistic函数表达式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    其导数形式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    2. logsitc回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    到整个样本的后验概率:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    其中:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    通过对数进一步化简为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    3. 其实它的loss function为-l(θ),因此我们需使loss function最小,可采用梯度下降法得到。梯度下降法公式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    Logistic回归优点:

    1. 实现简单

    2. 分类时计算量非常小,速度很快,存储资源低;

    缺点:

    1. 容易欠拟合,一般准确度不太高

    2. 只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;

     

    线性回归:

    线性回归才是真正用于回归的,而不像logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化,当然也可以用normal equation直接求得参数的解,结果为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    而在LWLR(局部加权线性回归)中,参数的计算表达式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    因为此时优化的是:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    由此可见LWLR与LR不同,LWLR是一个非参数模型,因为每次进行回归计算都要遍历训练样本至少一次。

    线性回归优点:实现简单,计算简单;

    缺点:不能拟合非线性数据;

     

    KNN算法:KNN即最近邻算法,其主要过程为:

    1. 计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);

    2. 对上面所有的距离值进行排序;

    3. 选前k个最小距离的样本;

    4. 根据这k个样本的标签进行投票,得到最后的分类类别;

    如何选择一个最佳的K值,这取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。

    近邻算法具有较强的一致性结果。随着数据趋于无限,算法保证错误率不会超过贝叶斯算法错误率的两倍。对于一些好的K值,K近邻保证错误率不会超过贝叶斯理论误差率。

    注:马氏距离一定要先给出样本集的统计性质,比如均值向量,协方差矩阵等。关于马氏距离的介绍如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    KNN算法的优点:

    1. 思想简单,理论成熟,既可以用来做分类也可以用来做回归;

    2. 可用于非线性分类;

    3. 训练时间复杂度为O(n);

    4. 准确度高,对数据没有假设,对outlier不敏感;

    缺点:

    1. 计算量大;

    2. 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);

    3. 需要大量的内存;

     

    SVM:

    要学会如何使用libsvm以及一些参数的调节经验,另外需要理清楚svm算法的一些思路:

    1. svm中的最优分类面是对所有样本的几何裕量最大(为什么要选择最大间隔分类器,请从数学角度上说明?网易深度学习岗位面试过程中有被问到。答案就是几何间隔与样本的误分次数间存在关系:

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

    ,其中的分母就是样本到分类间隔距离,分子中的R是所有样本中的最长向量值),即:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    经过一系列推导可得为优化下面原始目标:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    2. 下面来看看拉格朗日理论:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    可以将1中的优化目标转换为拉格朗日的形式(通过各种对偶优化,KKD条件),最后目标函数为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    我们只需要最小化上述目标函数,其中的α为原始优化问题中的不等式约束拉格朗日系数。

    3. 对2中最后的式子分别w和b求导可得:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    由上面第1式子可以知道,如果我们优化出了α,则直接可以求出w了,即模型的参数搞定。而上面第2个式子可以作为后续优化的一个约束条件。

    4. 对2中最后一个目标函数用对偶优化理论可以转换为优化下面的目标函数:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    而这个函数可以用常用的优化方法求得α,进而求得w和b。

    5. 按照道理,svm简单理论应该到此结束。不过还是要补充一点,即在预测时有:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    那个尖括号我们可以用核函数代替,这也是svm经常和核函数扯在一起的原因。

    6. 最后是关于松弛变量的引入,因此原始的目标优化公式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    此时对应的对偶优化公式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    与前面的相比只是α多了个上界。

    SVM算法优点:

    1. 可用于线性/非线性分类,也可以用于回归;

    2. 低泛化误差;

    3. 容易解释;

    4. 计算复杂度较低;

    缺点:

    1. 对参数和核函数的选择比较敏感;

    2. 原始的SVM只比较擅长处理二分类问题;

     

    Boosting:

    主要以Adaboost为例,首先来看看Adaboost的流程图,如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    从图中可以看到,在训练过程中我们需要训练出多个弱分类器(图中为3个),每个弱分类器是由不同权重的样本(图中为5个训练样本)训练得到(其中第一个弱分类器对应输入样本的权值是一样的),而每个弱分类器对最终分类结果的作用也不同,是通过加权平均输出的,权值见上图中三角形里面的数值。那么这些弱分类器和其对应的权值是怎样训练出来的呢?

    下面通过一个例子来简单说明,假设的是5个训练样本,每个训练样本的维度为2,在训练第一个分类器时5个样本的权重各为0.2. 注意这里样本的权值和最终训练的弱分类器组对应的权值α是不同的,样本的权重只在训练过程中用到,而α在训练过程和测试过程都有用到。

    现在假设弱分类器是带一个节点的简单决策树,该决策树会选择2个属性(假设只有2个属性)的一个,然后计算出这个属性中的最佳值用来分类。

    Adaboost的简单版本训练过程如下:

    1. 训练第一个分类器,样本的权值D为相同的均值。通过一个弱分类器,得到这5个样本(请对应书中的例子来看,依旧是machine learning in action)的分类预测标签。与给出的样本真实标签对比,就可能出现误差(即错误)。如果某个样本预测错误,则它对应的错误值为该样本的权重,如果分类正确,则错误值为0. 最后累加5个样本的错误率之和,记为ε。

    2. 通过ε来计算该弱分类器的权重α,公式如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    3. 通过α来计算训练下一个弱分类器样本的权重D,如果对应样本分类正确,则减小该样本的权重,公式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    如果样本分类错误,则增加该样本的权重,公式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    4. 循环步骤1,2,3来继续训练多个分类器,只是其D值不同而已。

    测试过程如下:

    输入一个样本到训练好的每个弱分类中,则每个弱分类都对应一个输出标签,然后该标签乘以对应的α,最后求和得到值的符号即为预测标签值。

    Boosting算法的优点:

    1. 低泛化误差;

    2. 容易实现,分类准确率较高,没有太多参数可以调;

    3. 缺点:

    4. 对outlier比较敏感;

     

    聚类:

    根据聚类思想划分:

    1. 基于划分的聚类:

    K-means, k-medoids(每一个类别中找一个样本点来代表),CLARANS.

    k-means是使下面的表达式值最小:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    k-means算法的优点:

    (1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。

    (2)对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k<<n。这个算法通常局部收敛。

    (3)算法尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,且簇与簇之间区别明显时,聚类效果较好。

    缺点:

    (1)k-平均方法只有在簇的平均值被定义的情况下才能使用,且对有些分类属性的数据不适合。

    (2)要求用户必须事先给出要生成的簇的数目k。

    (3)对初值敏感,对于不同的初始值,可能会导致不同的聚类结果。

    (4)不适合于发现非凸面形状的簇,或者大小差别很大的簇。

    (5)对于"噪声"和孤立点数据敏感,少量的该类数据能够对平均值产生极大影响。

    2. 基于层次的聚类:

    自底向上的凝聚方法,比如AGNES。

    自上向下的分裂方法,比如DIANA。

    3. 基于密度的聚类:DBSACN,OPTICS,BIRCH(CF-Tree),CURE.

    4. 基于网格的方法:STING, WaveCluster.

    5. 基于模型的聚类:EM,SOM,COBWEB.

    推荐系统:推荐系统的实现主要分为两个方面:基于内容的实现和协同滤波的实现。

    基于内容的实现:不同人对不同电影的评分这个例子,可以看做是一个普通的回归问题,因此每部电影都需要提前提取出一个特征向量(即x值),然后针对每个用户建模,即每个用户打的分值作为y值,利用这些已有的分值y和电影特征值x就可以训练回归模型了(最常见的就是线性回归)。

    这样就可以预测那些用户没有评分的电影的分数。(值得注意的是需对每个用户都建立他自己的回归模型)

    从另一个角度来看,也可以是先给定每个用户对某种电影的喜好程度(即权值),然后学出每部电影的特征,最后采用回归来预测那些没有被评分的电影。

     

    当然还可以是同时优化得到每个用户对不同类型电影的热爱程度以及每部电影的特征。

    基于协同滤波的实现:协同滤波(CF)可以看做是一个分类问题,也可以看做是矩阵分解问题。协同滤波主要是基于每个人自己的喜好都类似这一特征,它不依赖于个人的基本信息。

    比如刚刚那个电影评分的例子中,预测那些没有被评分的电影的分数只依赖于已经打分的那些分数,并不需要去学习那些电影的特征。

    SVD将矩阵分解为三个矩阵的乘积,公式如下所示:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    中间的矩阵sigma为对角矩阵,对角元素的值为Data矩阵的奇异值(注意奇异值和特征值是不同的),且已经从大到小排列好了。即使去掉特征值小的那些特征,依然可以很好的重构出原始矩阵。如下图所示:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    其中更深的颜色代表去掉小特征值重构时的三个矩阵。

    果m代表商品的个数,n代表用户的个数,则U矩阵的每一行代表商品的属性,现在通过降维U矩阵(取深色部分)后,每一个商品的属性可以用更低的维度表示(假设为k维)。这样当新来一个用户的商品推荐向量X,则可以根据公式X'*U1*inv(S1)得到一个k维的向量,然后在V’中寻找最相似的那一个用户(相似度测量可用余弦公式等),根据这个用户的评分来推荐(主要是推荐新用户未打分的那些商品)。

     

    pLSA:由LSA发展过来,而早期LSA的实现主要是通过SVD分解。pLSA的模型图如下

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    公式中的意义如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    LDA主题模型,概率图如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    和pLSA不同的是LDA中假设了很多先验分布,且一般参数的先验分布都假设为Dirichlet分布,其原因是共轭分布时先验概率和后验概率的形式相同。

     

    GDBT:GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),好像在阿里内部用得比较多(所以阿里算法岗位面试时可能会问到),它是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的输出结果累加起来就是最终答案。

    它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。

    GBDT是回归树,不是分类树。其核心就在于,每一棵树是从之前所有树的残差中来学习的。为了防止过拟合,和Adaboosting一样,也加入了boosting这一项。

     

    Regularization作用是

    1. 数值上更容易求解;

    2. 特征数目太大时更稳定;

    3. 控制模型的复杂度,光滑性。复杂性越小且越光滑的目标函数泛化能力越强。而加入规则项能使目标函数复杂度减小,且更光滑。

    4. 减小参数空间;参数空间越小,复杂度越低。

    5. 系数越小,模型越简单,而模型越简单则泛化能力越强(Ng宏观上给出的解释)。

    6. 可以看成是权值的高斯先验。

     

    异常检测:可以估计样本的密度函数,对于新样本直接计算其密度,如果密度值小于某一阈值,则表示该样本异常。而密度函数一般采用多维的高斯分布。

    如果样本有n维,则每一维的特征都可以看作是符合高斯分布的,即使这些特征可视化出来不太符合高斯分布,也可以对该特征进行数学转换让其看起来像高斯分布,比如说x=log(x+c), x=x^(1/c)等。异常检测的算法流程如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    其中的ε也是通过交叉验证得到的,也就是说在进行异常检测时,前面的p(x)的学习是用的无监督,后面的参数ε学习是用的有监督。那么为什么不全部使用普通有监督的方法来学习呢(即把它看做是一个普通的二分类问题)?

    主要是因为在异常检测中,异常的样本数量非常少而正常样本数量非常多,因此不足以学习到好的异常行为模型的参数,因为后面新来的异常样本可能完全是与训练样本中的模式不同。

     

    EM算法:有时候因为样本的产生和隐含变量有关(隐含变量是不能观察的),而求模型的参数时一般采用最大似然估计,由于含有了隐含变量,所以对似然函数参数求导是求不出来的,这时可以采用EM算法来求模型的参数的(对应模型参数个数可能有多个),

    EM算法一般分为2步:

    E步:选取一组参数,求出在该参数下隐含变量的条件概率值;

    M步:结合E步求出的隐含变量条件概率,求出似然函数下界函数(本质上是某个期望函数)的最大值。

    重复上面2步直至收敛,公式如下所示:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    M步公式中下界函数的推导过程:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    EM算法一个常见的例子就是GMM模型,每个样本都有可能由k个高斯产生,只不过由每个高斯产生的概率不同而已,因此每个样本都有对应的高斯分布(k个中的某一个),此时的隐含变量就是每个样本对应的某个高斯分布。

    GMM的E步公式如下(计算每个样本对应每个高斯的概率):

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    更具体的计算公式为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    M步公式如下(计算每个高斯的比重,均值,方差这3个参数):

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    Apriori是关联分析中比较早的一种方法,主要用来挖掘那些频繁项集合。其思想是:

    1. 如果一个项目集合不是频繁集合,那么任何包含它的项目集合也一定不是频繁集合;

    2. 如果一个项目集合是频繁集合,那么它的任何非空子集也是频繁集合;

    Aprioir需要扫描项目表多遍,从一个项目开始扫描,舍去掉那些不是频繁的项目,得到的集合称为L,然后对L中的每个元素进行自组合,生成比上次扫描多一个项目的集合,该集合称为C,接着又扫描去掉那些非频繁的项目,重复…

    看下面这个例子,元素项目表格:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    如果每个步骤不去掉非频繁项目集,则其扫描过程的树形结构如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    在其中某个过程中,可能出现非频繁的项目集,将其去掉(用阴影表示)为:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

     

    FP Growth是一种比Apriori更高效的频繁项挖掘方法,它只需要扫描项目表2次。其中第1次扫描获得当个项目的频率,去掉不符合支持度要求的项,并对剩下的项排序。第2遍扫描是建立一颗FP-Tree(frequent-patten tree)。

    接下来的工作就是在FP-Tree上进行挖掘,比如说有下表:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    它所对应的FP_Tree如下:

     

    「收藏」人工智能中常见机器学习算法优缺点有哪些?

     

     

    然后从频率最小的单项P开始,找出P的条件模式基,用构造FP_Tree同样的方法来构造P的条件模式基的FP_Tree,在这棵树上找出包含P的频繁项集。

    依次从m,b,a,c,f的条件模式基上挖掘频繁项集,有些项需要递归的去挖掘,比较麻烦,比如m节点。

    展开全文
  • 智能体强化学习背景知识为什么提出多智能体DDPG(MADDPG)?学习MADDPG算法的先验知识?Q-LearningDQNSPGDPGDDPG由DDPG算法到MADDPG算法?MADDPG算法的巧妙之处? 为什么提出多智能体DDPG(MADDPG)? 多智能体...

    在这里插入图片描述
    我,菜拐拐,今天又来了!废话少说,上重点。准备好课堂笔记┗|`O′|┛ 嗷~~

    为什么提出多智能体DDPG(MADDPG)

    多智能体环境下传统算法的短板

    1. 传统的Q学习算法不适用:随着训练的进行,每个智能体的策略都在发生变化。从任何一个单独的智能体的角度来看,环境都变得不稳定(其他智能体的动作带来环境变化),这带来了学习稳定性方面的挑战。由此,不适用于传统的Q学习算法。
    2. 经典的DQN不大适用:如果不知道其他智能体的状态,那么不同情况下自身的状态转移也会不同,这阻止了以往经验重放的直接使用。还有一个原因,请等后文分解。
    3. 策略梯度(PG)算法不适用:PG算法会由于智能体数量变多使固有的方差大的问题加剧。

    学习MADDPG算法的先验知识

    SPG与DPG简述

    • SPG
      基于策略的SPG (Stochastic Policy Gradient):(其更加适合在连续的或者较大的动作下运行,这不同于基于值的Q学习或DQN方法)该算法是直接优化累积回报来获得使回报最大的策略。目标公式如下:

      • 参数化的策略被假定为: π θ ( a ∣ s ) {\pi _\theta }(a|s) πθ(as)
      • 累积回报为: J ( θ ) = E s ∼ ρ π , a ∼ π θ [ ∑ t = 0 ∞ γ t r t ] J(\theta ) = {E_{s \sim {\rho ^\pi },a \sim {\pi _\theta }}}\left[ {\sum\limits_{t = 0}^\infty {{\gamma ^t}{r_t}} } \right] J(θ)=Esρπ,aπθ[t=0γtrt]
      • 为使累积回报最大,可以使用梯度上升方法来寻找局部最大值。Then,对策略参数求导得到策略更新梯度: ∇ θ J ( θ ) = E s ∼ ρ π , a ∼ π θ [ ∇ θ log ⁡ π θ ( a ∣ s ) Q π ( s , a ) ] {\nabla _\theta }J(\theta ) = {E_{s \sim {\rho ^\pi },a \sim {\pi _\theta }}}\left[ {{\nabla _\theta }\log {\pi _\theta }(a|s){Q^\pi }(s,a)} \right] θJ(θ)=Esρπ,aπθ[θlogπθ(as)Qπ(s,a)],可见SPG需要同时考虑状态概率分布以及动作概率分布。如果要进行学习训练,就需要大量的样本来覆盖整个二维的状态动作空间。
      • PG的思想就是沿着目标函数变大的方向调整策略的参数。
      • More importantly,所提的策略是从state到action概率分布的映射。
    • DPG

      • DPG是SPG的概率分布方差趋近于0的极限状态。也就是说,DPG的策略是从state到action的一个映射S->A。
      • 累积回报为: J ( μ θ ) = E s ∼ ρ μ [ r ( s , μ θ ( s ) ) ] J({\mu _\theta }) = {E_{s \sim {\rho ^\mu }}}\left[ {r(s,{\mu _\theta }(s))} \right] J(μθ)=Esρμ[r(s,μθ(s))],所提到的 μ θ \mu _\theta μθ用于对 Q π ( s , a ) {Q^\pi }(s,a) Qπ(s,a)取全局最优。
      • 利用链式法则对其求梯度,可得到 ∇ θ J ( μ θ ) = E s ∼ ρ π [ ∇ θ μ θ ( s ) ∇ a Q μ ( s , a ) ∣ a = μ θ ( s ) ] {\nabla _\theta }J({\mu _\theta }) = {E_{s\sim{\rho ^\pi }}}\left[ {{\nabla _\theta }{\mu _\theta }(s){\nabla _a}{Q^\mu }(s,a){|_{a = {\mu _\theta }(s)}}} \right] θJ(μθ)=Esρπ[θμθ(s)aQμ(s,a)a=μθ(s)]。由此可见,DPG仅需要考虑状态概率分布。
      • 综上所述,同SPG相比,DPG的优点是所需的样本较少,得出的策略更加明确。
      • 拐拐在这里只是进行了简要的描述。更详细的可以点击博文中的链接来了解。

    Q-Learning简述

    在这里插入图片描述

    • 如图所示,算法的伪代码被给定。
    • Q-Learning是强化学习算法中基于值的算法,Q 即为 Q(s,a),就是在某一时刻的 s 状态下,采取动作 a 能够获得收益的期望。环境会根据agent的动作反馈相应的回报 r。因此所以算法的主要思想就是将State与Action构建成一张Q-table来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。
    • Q-table
    Q-Tablea1a2
    s1q(s1,a1)q(s1,a2)
    s2q(s2,a1)q(s2,a2)
    s3q(s3,a1)q(s3,a2)
    • 由此可见,表格容纳的状态及动作的数量是有限的。由此,该算法仅限应用于有限离散状态,有限离散动作的场景。

    由Q-Learning到DQN

    在这里插入图片描述

    • 如图所示为DQN算法伪代码(截图来自深入浅出)。

    • 神奇之处表现在这里:由于Q-Table不能适用于高维状态。由此,在Q-Learning算法的基础上,DQN算法被提出。DQN把Q-Table的更新问题变成一个函数拟合问题,相近的状态得到相近的输出动作。又因为,深度神经网络可以自动提取复杂特征。So,面对高维且连续的状态使用深度神经网络最合适不过了。如图所示:在这里插入图片描述

    • 技巧:基于Q-Learning构造Loss函数;通过经验池解决相关性及非静态分布问题;使用TargetNet解决稳定性问题。但是,还是无法解决连续动作的问题。详细可见DQN算法详述。

    由DQN到DDPG

    在这里插入图片描述

    • 如图所示,DDPG的伪代码被展示。DDPG(deep deterministic policy gradient)是解决连续控制型问题的一个算法。该算法很好的解决了DQN算法未解决连续空间的问题,接下来将详细解释下基于DQN算法的DDPG算法。在此感谢大佬

    • 首先,看下DQN不能解决连续动作的根源:伪代码[12]取最大值处(max函数只能处理离散型的)。

    • 上面说过,DQN算法用神经网络解决了Q-Learning不能解决的连续状态空间问题。同理,DDPG算法可以理解为用神经网络解决DQN不能解决的连续(动作)控制型问题就好了。就是说,用神经网络来代替max找action的功能。换句话说,期待神经网络的输入是状态,返回值为动作action,该取值可以让Q最大。由此,非常明显了,这就是DDPG中Actor的功能。

    • 接下来,借用大佬的图进行描述。在这里插入图片描述

    • 如图所示,DQN的深度网络,可以描述为用一张布去覆盖Q-Learning中的Q-table。Then,这也是DDPG中Critic的功能。在这里插入图片描述

    • 如图所示,把某个state输入到DDPG的Actor中的时候,相当于在这块布上做沿着state所在的位置剪开,这个时候大家会看到这个边缘是一条曲线。图中的红线是在某个状态下,选择某个动作值的时候,能获得的Q值。Actor的任务就是在寻找这个曲线的最高点,然后返回能获得这个最高点,也是最大Q值的动作。在这里插入图片描述

    • 下面给出Actor的功能:输出一个动作A,这个动作A输入到Crititc后,能够获得最大的Q值。注意:更新方式为梯度上升。

    • 下面给出critic的功能:预估Q。

    • 需要4个网络。Actor, Critic, Actor_target, Cirtic_target。

    由DDPG算法到MADDPG算法

    在这里插入图片描述

    • 整体如图所示。由DDPG到MADDPG,会容易一下,来瞅瞅。
    • 每个智能体的训练同单个DDPG的训练过程类似,不同的地方体现在训练的时候 Critic 的输入上。在单个智能体的DDPG算法中, Critic 的输入是一个 state-action 对信息。但是在 MADDPG 上,每个智能体的 Critic 输入除了自身 state-action 信息外,还有额外的信息,比如其他智能体的动作和状态。
    • 详细见下一个博文。

    MADDPG算法的巧妙之处

    • 采用集中式培训和分散式执行的框架:在训练时,使用额外的信息来输入各个 Critic ,在应用时只利用局部信息就能给出最优动作。注意,这里给出了Q学习不适用的另一个原因:Q函数通常在训练和测试时不能包含不同的信息。
    • 不仅适用于合作,而且适用于竞争性或合作竞争混合。
    • 不需要知道环境的动力学模型以及特殊的通信需求。

    在座的各位,未完待续啊。最近太放肆了,坚持更啊啊啊啊!这篇博文简单总结了RL算法的演进,来简单引出MADDPG算法!
    拐拐🐖愿大家天天顺利。Happy!!!
    在这里插入图片描述

    展开全文
  • 群体智能优化算法学习

    万次阅读 2018-10-21 17:20:46
    这是开通CSDN以来的第一篇博文,之前专门开通过新浪博客,想记录下一些学习的心得,可自己一直拖沓,没好好学习,这个就用来作为自律的练习,坚持下来的好习惯!!! 本来对优化算法了解特别少,基本属于零的状态...

        这是开通CSDN以来的第一篇博文,之前专门开通过新浪博客,想记录下一些学习的心得,可自己一直拖沓,没好好学习,这个就用来作为自律的练习,坚持下来的好习惯!!!

        本来对优化算法了解特别少,基本属于零的状态,常用的粒子群,鱼群通通不太清楚,更别说程序实现了,这部分有空再补,这两天主要在概念上了解了狼群算法烟花算法以及合同网协议算法,目前还没编过程序。

    狼群算法

    1. 定义:模仿狼群社会分工和捕食行为的一种智能优化算法。

    2. 优点:算法稳定且搜索能力强。(不完整)

    3. 组成:

    • 依据狼群的社会分工——>头狼,探狼和猛狼
    • 依据狼群的捕食过程——>游走行为,召唤行为以及围攻行为
    • 依据狼群的社会等级——>胜者为王的头狼产生规则
    • 依据猎物分配规则——>强者生存的狼群更新机制

    4. 算法流程

    具体过程可参看文章[1]。

     

     

    合同网协议算法(只看了一篇文献,或许有些片面,以后再补)

    1. 定义:基于投标,竞标等市场机制,协调多个Agent间的任务,是分布式控制常用的协商策略。

    2. 优点:通信量少,鲁棒性能好

    3. 组成:

    • 管理者:任务的拥有者,负责任务的分配和管理
    • 投标者:有能力完成任务的节点,就所分配的任务参与竞标
    • 中标者:最后竞标的成功者,负责完成任务

    4. 基本思想

           将协商引入到管理者和投标者的双向选择过程中,当当管理者有任务需要其它结点帮助解决时, 它就向其他结点广播有关该任务信息,即发出任务通告(招标),接到招标的结点则检查自己对解决该问题的相关能力, 然后发出自己的投标值并使自己成为投标者, 最后由管理者评估这些投标值并选出最合适的中标者授予任务。在招投标过程中,利用通信机制对每个任务的分配进行协商, 避免资源、知识等的冲突,即节点之间通过招标,投标,中标这一市场投标机制进行任务分配,使系统以较低的代价,较高的质量完成分布式任务[3]。

     

     

    烟花算法[4]

    1. 定义:模拟烟花爆炸的方式进行多点同时爆炸式搜索

    2. 优点:爆发性,瞬时性,简单性,局部覆盖性,涌现性,分布并行性,多样性,可扩充性和适应性

    3. 组成:爆炸算子(包括爆炸强度,爆炸幅度,位移变异),变异操作(如高斯变异操作),映射规则(包括模运算规则,镜面反射规则和随机映射规则)和选择策略(基于距离的选择和随机选择等)。

    4. 算法流程:

    1)随机选择N个烟花初始化群体

    2)让群体中的每个烟花经历爆炸操作和变异操作

    3)使用映射规则保证变异后的个体仍处于可行域内

    4)在保留最优个体(即精英策略)的前提下,使用选择策略从生成的所有个体(烟花,火花)中选择出余下的 N-1 个个体共同组成下一代。

     

    心得体会:

           对于优化算法的探究,可以比较几种不同的优化算法,第一步为对一些特定函数的比较(可查相关的参考文献),观察其最佳值,最差值,收敛速度以及平均值,标准差等统计值(有待补充),第二步为对特定实际问题的优化求解(这类实际问题已经抽象成数学模型),观察其算法性能。

          目前还未真正使用过优化算法求解问题,可能只是纸上谈兵,平时多抓紧时间用程序仿真探索一下,cheer on!

     

    参考文献:

    [1] 吴虎胜,张凤鸣,吴庐山. 一种新的群体智能算法——狼群算法. 系统工程与电子技术[J].

    [2] Peng Yao, Honglun Wang, Hongxia Ji. Multi-UAVs tracking target in urban environment by model predictive control and Improved Grey Wolf Optimizer. Aerospace Science and Technology[J].

    [3] 刘跃峰,张安. 有人机/无人机编队协同任务分配方法. 系统工程与电子技术[J].

    [4] http://blog.sciencenet.cn/blog-528739-903426.html (谭营《烟花算法引论》)

    [5] 马焱,赵捍东,张玮等. 基于自适应烟花算法的多无人机任务分配. 电光与控制[J].

    展开全文
  • 目录简介一、监督学习1、决策树(Decision Tree,DT)2、朴素贝叶斯分类器(Naive Bayesian Model,NBM)3、最小二乘法(Least squares)4、逻辑回归(Logistic Regression)5、支持向量机(SVM)6、K最近邻算法...

    1、简介

    本文讲解了机器学习常用算法总结和各个常用分类算法精确率对比。收集了现在比较热门的TensorFlow、Sklearn,借鉴了Github和一些国内外的文章。

    机器学习的知识树,这个图片是Github上的,有兴趣的可以自己去看一下:
    地址:https://github.com/trekhleb/homemade-machine-learning
    在这里插入图片描述

    简单的翻译一下这个树:

    英文中文
    Machine Learning机器学习
    Supervised Learning监督学习
    Unsupervised Learning非监督学习
    Reinforcement Learning强化学习
    Neural Networks and Deep Learning神经网络与深度学习
    Ensemble Learning集成学习

    以下是一部分算法的概念和应用,仅供大家参考

    2、监督学习

    监督学习可以看作是原先的预测模型,有基础的训练数据,再将需要预测的数据进行输入,得到预测的结果(不管是连续的还是离散的)

    2.1、决策树(Decision Tree,DT)

    决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答案。

    决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。在实际构造决策树时,通常要进行剪枝,这时为了处理由于数据中的噪声和离群点导致的过分拟合问题。剪枝有两种:

    先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造。
    后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。
    

    在这里插入图片描述

    2.2、朴素贝叶斯分类器(Naive Bayesian Model,NBM)

    朴素贝叶斯分类器基于贝叶斯定理及其假设(即特征之间是独立的,是不相互影响的),主要用来解决分类和回归问题。

    具体应用有:
    标记一个电子邮件为垃圾邮件或非垃圾邮件;
    将新闻文章分为技术类、政治类或体育类;
    检查一段文字表达积极的情绪,或消极的情绪;
    用于人脸识别软件。
    

    学过概率的同学一定都知道贝叶斯定理,这个在250多年前发明的算法,在信息领域内有着无与伦比的地位。贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法(Naive Bayesian) 是其中应用最为广泛的分类算法之一。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。

    2.3、最小二乘法(Least squares)

    你可能听说过线性回归。最小均方就是用来求线性回归的。如下图所示,平面内会有一系列点,然后我们求取一条线,使得这条线尽可能拟合这些点分布,这就是线性回归。这条线有多种找法,最小二乘法就是其中一种。最小二乘法其原理如下,找到一条线使得平面内的所有点到这条线的欧式距离和最小。这条线就是我们要求取得线。
    在这里插入图片描述

    2.4、逻辑回归(Logistic Regression)

    逻辑回归模型是一个二分类模型,它选取不同的特征与权重来对样本进行概率分类,用一个log函数计算样本属于某一类的概率。即一个样本会有一定的概率属于一个类,会有一定的概率属于另一类,概率大的类即为样本所属类。用于估计某种事物的可能性。

    逻辑回归

    2.5、支持向量机(Support Vector Machine)

    支持向量机(support vector machine)是一个二分类算法,它可以在N维空间找到一个(N-1)维的超平面,这个超平面可以将这些点分为两类。也就是说,平面内如果存在线性可分的两类点,SVM可以找到一条最优的直线将这些点分开。SVM应用范围很广。

    在这里插入图片描述

    要将两类分开,想要得到一个超平面,最优的超平面是到两类的margin达到最大,margin就是超平面与离它最近一点的距离,如下图,Z2>Z1,所以绿色的超平面比较好。

    在这里插入图片描述

    2.6、K最近邻算法(KNN,K-NearestNeighbor)

    邻近算法,或者说K最近邻(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
    在这里插入图片描述

    主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近。如上图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。由此也说明了KNN算法的结果很大程度取决于K的选择。

    2.7、集成学习(Ensemble Learning)

    集成学习就是将很多分类器集成在一起,每个分类器有不同的权重,将这些分类器的分类结果合并在一起,作为最终的分类结果。最初集成方法为贝叶斯决策。
    在这里插入图片描述

    集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。

     常见的算法包括:
     Boosting, Bootstrapped Aggregation(Bagging),
     AdaBoost,堆叠泛化(Stacked Generalization, Blending),
     梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。
    

    那么集成方法是怎样工作的,为什么他们会优于单个的模型?
    他们拉平了输出偏差:如果你将具有民主党倾向的民意调查和具有共和党倾向的民意调查取平均,你将得到一个中和的没有倾向一方的结果。
    它们减小了方差:一堆模型的聚合结果和单一模型的结果相比具有更少的噪声。在金融领域,这被称为多元化——多只股票的混合投资要比一只股票变化更小。这就是为什么数据点越多你的模型会越好,而不是数据点越少越好。
    它们不太可能产生过拟合:如果你有一个单独的没有过拟合的模型,你是用一种简单的方式(平均,加权平均,逻辑回归)将这些预测结果结合起来,然后就没有产生过拟合的空间了。

    3、无监督学习

    3.1、聚类算法

    聚类算法就是将一堆数据进行处理,根据它们的相似性对数据进行聚类。

    聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

    聚类算法有很多种,具体如下:中心聚类、关联聚类、密度聚类、概率聚类、降维、神经网络/深度学习。
    在这里插入图片描述
    在这里插入图片描述

    3.2、K-均值算法(K-Means)

    K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

    在这里插入图片描述

    通常,人们根据样本间的某种距离或者相似性来定义聚类,即把相似的(或距离近的)样本聚为同一类,而把不相似的(或距离远的)样本归在其他类。

    3.3、主成分分析(Principal Component Analysis,PCA)

    主成分分析是利用正交变换将一些列可能相关数据转换为线性无关数据,从而找到主成分。PCA方法最著名的应用应该是在人脸识别中特征提取及数据降维。
    在这里插入图片描述

    PCA主要用于简单学习与可视化中数据压缩、简化。但是PCA有一定的局限性,它需要你拥有特定领域的相关知识。对噪音比较多的数据并不适用。

    3.4、SVD矩阵分解(Singular Value Decomposition)

    也叫奇异值分解(Singular Value Decomposition),是线性代数中一种重要的矩阵分解,是矩阵分析中正规矩阵酉对角化的推广。在信号处理、统计学等领域有重要应用。SVD矩阵是一个复杂的实复负数矩阵,给定一个m行、n列的矩阵M,那么M矩阵可以分解为M = UΣV。U和V是酉矩阵,Σ为对角阵。

    在这里插入图片描述

    PCA实际上就是一个简化版本的SVD分解。在计算机视觉领域,第一个脸部识别算法就是基于PCA与SVD的,用特征对脸部进行特征表示,然后降维、最后进行面部匹配。尽管现在面部识别方法复杂,但是基本原理还是类似的。

    3.5、独立成分分析(ICA)

    独立成分分析(Independent Component Analysis,ICA)是一门统计技术,用于发现存在于随机变量下的隐性因素。ICA为给观测数据定义了一个生成模型。在这个模型中,其认为数据变量是由隐性变量,经一个混合系统线性混合而成,这个混合系统未知。并且假设潜在因素属于非高斯分布、并且相互独立,称之为可观测数据的独立成分。

    640 (5)

    ICA与PCA相关,但它在发现潜在因素方面效果良好。它可以应用在数字图像、档文数据库、经济指标、心里测量等。

    在这里插入图片描述

    上图为基于ICA的人脸识别模型。实际上这些机器学习算法并不是全都像想象中一样复杂,有些还和高中数学紧密相关。

    4、强化学习

    4.1、Q-Learning算法

    Q-learning要解决的是这样的问题:一个能感知环境的自治agent,怎样通过学习选择能达到其目标的最优动作。

    强化学习目的是构造一个控制策略,使得Agent行为性能达到最大。Agent从复杂的环境中感知信息,对信息进行处理。Agent通过学习改进自身的性能并选择行为,从而产生群体行为的选择,个体行为选择和群体行为选择使得Agent作出决策选择某一动作,进而影响环境。增强学习是指从动物学习、随机逼近和优化控制等理论发展而来,是一种无导师在线学习技术,从环境状态到动作映射学习,使得Agent根据最大奖励值采取最优的策略;Agent感知环境中的状态信息,搜索策略(哪种策略可以产生最有效的学习)选择最优的动作,从而引起状态的改变并得到一个延迟回报值,更新评估函数,完成一次学习过程后,进入下一轮的学习训练,重复循环迭代,直到满足整个学习的条件,终止学习。

    Q-Learning是一种无模型的强化学习技术。具体来说,可以使用Q学习来为任何给定的(有限的)马尔可夫决策过程(MDP)找到最优的动作选择策略。它通过学习一个动作价值函数,最终给出在给定状态下采取给定动作的预期效用,然后遵循最优策略。一个策略是代理在选择动作后遵循的规则。当这种动作值函数被学习时,可以通过简单地选择每个状态中具有最高值的动作来构建最优策略。 Q-learning的优点之一是能够比较可用操作的预期效用,而不需要环境模型。此外,Q学习可以处理随机过渡和奖励的问题,而不需要任何适应。已经证明,对于任何有限的MDP,Q学习最终找到一个最优策略,从总体奖励的预期值返回到从当前状态开始的所有连续步骤是最大可实现的意义。

    5、机器学习常用Python包

    5.1、sklearn

    开源机器学习模块,包括分类、回归、聚类系列算法,主要算法有SVM、逻辑回归、朴素贝叶斯、Kmeans、DBSCAN等;也提供了一些语料库。
    学习地址:https://scikit-learn.org/stable/modules/classes.html

    5.2、numpy

    Python的语言扩展,定义了数字的数组和矩阵。提供了存储单一数据类型的多维数组(ndarray)和矩阵(matrix)。
    学习地址:http://www.numpy.org/

    5.3、scipy

    其在numpy的基础上增加了众多的数学、科学以及工程计算中常用的模块,例如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等等。
    学习地址:https://www.scipy.org/

    5.4、pandas

    直接处理和操作数据的主要package,提供了dataframe等方便处理表格数据的数据结构
    学习地址:http://pandas.pydata.org/

    5.5、statsmodels

    统计和计量经济学的package,包含了用于参数评估和统计测试的实用工具
    学习地址:https://pypi.org/project/statsmodels/

    5.6、matplotlib、pyplot、pylab

    用于生成统计图。pyplot 和 pylab属于matplotlib的子模块,所以只需安装matplotlib,就会有pyplot和pylab的了。
    学习地址:https://matplotlib.org/

    5.7、jieba

    中文分词工具。
    学习地址:https://github.com/fxsjy/jieba

    5.8、Pattern

    此库更像是一个“全套”库,因为它不仅提供了一些机器学习算法,而且还提供了工具来帮助你收集和分析数据。数据挖掘部分可以帮助你收集来自谷歌、推特和维基百科等网络服务的数据。它也有一个Web爬虫和HTML DOM解析器。“引入这些工具的优点就是:在同一个程序中收集和训练数据显得更加容易。
    学习地址:https://github.com/clips/pattern

    6、各个算法精确率对比

    此次算精确率对比,总语料样本21282条,分类标签911个,语料是企业的语料集,不对外公开。精准率是把整体样本按照8:2的比例,分为80%的训练集,20%的测试集来算的,实验流程在每篇文章中都有详细记载。数据量低于21282的是取了总样本的部分数据做的实验,效果统计如下:

    6.1、支持向量机(SupportVectorMachine)

    6.1.1、升级版sklearn

    机器学习 之 支持向量机(SupportVectorMachine)文本算法的精确率——升级版sklearn
    在这里插入图片描述

    6.1.2、Liblinear

    机器学习 之 Liblinear中的支持向量机(SupportVectorMachine)文本算法的精确率
    在这里插入图片描述

    6.1.3、sklearn

    机器学习 之 sklearn中的支持向量机(SupportVectorMachine)文本算法的精确率
    在这里插入图片描述

    6.2、随机森林(Random Forest)

    机器学习 之 随机森林(Random Forest)文本算法的精确率
    在这里插入图片描述

    6.3、朴素贝叶斯(Naive Bayesian Model)

    机器学习 之 朴素贝叶斯(Naive Bayesian Model)文本算法的精确率
    在这里插入图片描述

    6.4、K近邻(K-NearestNeighbor)

    机器学习 之 K近邻(K-NearestNeighbor)文本算法的精确率
    在这里插入图片描述

    6.5、逻辑回归(LogisticRegression)

    机器学习 之 逻辑回归(LogisticRegression)文本算法的精确率
    在这里插入图片描述

    6.6、决策树(Decision Tree)

    机器学习 之 决策树(Decision Tree)文本算法的精确率
    在这里插入图片描述
    看完本文实属不易,写本文也耗费了我很多时间和精力,希望大家有钱场捧个钱场,有人场捧个人场,谢谢~

    7、推荐

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。

    展开全文
  • 群体智能优化算法之总结

    千次阅读 多人点赞 2019-11-15 16:28:22
    总结一下最近一段时间关于群体智能优化算法的文章,这方面的文章目前一共发表了13篇,涉及粒子群(鸟)、人工蜂群、蜘蛛猴、蚁群、布谷鸟、萤火虫群、萤火虫、蝙蝠、鱼群、蟑螂、猫群、细菌觅食和烟花算法,虽然这都...
  • 智能优化算法

    万次阅读 多人点赞 2018-09-03 21:27:12
    智能优化算法 目录 智能优化算法 目录 遗传算法(Genetic Algorithm) 理论 特点 领域 算法流程 差分进化算法(Differential Evolution Algorithm) 理论 特点 领域 算法流程 免疫算法(Immune Algorithm,...
  •   本次学习报告主要介绍基本遗传算法的详细过程以及三种遗传算法的改进算法,旨在回顾和整理这一学期习得的部分知识。在撰写报告的过程中,会在其中增加一些个人的思考,这些思考主要基于过去所学的知识,目的在于...
  • 人工智能智能优化算法

    千次阅读 2020-06-30 09:05:25
    人工智能智能优化算法 优化问题是指在满足一定条件下,在众多方案或参数值中寻找最优方案或参数值,以使得某个或多个功能指标达到最优,或使系统的某些性能指标达到最大值或最小值。优化问题广泛地存在于信号处理...
  • 睿智的智能优化算法1——粒子群算法的python实现什么是粒子群算法求解过程实现代码GITHUB下载连接 睿智的智能优化算法小课堂开课啦! 什么是粒子群算法 粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle ...
  • 一、随机森林算法简介: 在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而 "Random ...
  • 群体智能优化算法

    万次阅读 多人点赞 2018-11-20 08:32:51
    群体智能优化算法介绍什么是群体智能优化算法群体智能优化算法的定义群体智能优化算法的原则常见的群体智能优化算法挖坑蚁群算法粒子群优化算法菌群算法蛙跳算法人工蜂群算法总结 由于在研究生期间一直研究粒子群...
  • 因其独特的优点和机制,这些算法得到了国内外学者的广泛关注,掀起了研究热潮,在信号处理、图像处理、生产调度、任务分配、模式识别、自动控制和机械设计等众多领域得到了成功应用。 本书介绍了8种经典智能优化算法...
  • 购物网站用算法来为你推荐商品,点评网站用算法来帮你选择餐馆,GPS 系统用算法来帮你选择好的路线,公司用算法来选择求职者……当机器最终学会如何学习时,将会发生什么? 不同于传统算法,现在悄然主导我们生活的...
  • 粒子群算法及其改进算法

    万次阅读 多人点赞 2019-07-01 19:27:08
    粒子群优化(PSO)算法是Kennedy和Eberhart受 鸟群群体运动的启发于1995年提出的一种新的群智能优化算法[1]。大概的意思就是一片森林里有一群鸟在找一块食物,它们不知道食物具体在哪,但是可以通过感官(例如嗅觉)...
  • 智能优化算法:JAYA优化算法 摘要:JAYA算法是于2016年提出的一种简单高效的新型优化算法,具有收敛快寻优强的特点。 1.算法原理 传统 Jaya 算法是 Rao 等提出的一种元启发式算法,它基于持续改进的原理,将个体不断...
  • 摘要:2019 年 Heidari 等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全局搜索能力,并且需要调节的参数较少的优点。 1.算法原理 哈里斯鹰优化算法是一种模拟哈里斯鹰捕食行为的智能...
  • 为了解决这个问题,不同于传统的集中式资源分配算法,提出了基于多智能体强化学习的分布式无线资源分配算法.具有强化学习能力的机器类通信(MTC)设备可以自主选择资源块和功率等级,以达到在较低的功率消耗下得到较...
  • 智能优化算法概述

    千次阅读 2018-04-08 21:45:46
    受人类智能、生物群体社会性或自然现象规律的启发,人们发明了很多智能优化算法,主要包括: &nbsp; &nbsp;(1)遗传算法: 模仿自然界生物进化机制 &nbsp; &nbsp;(2)差分进化算法: 通过群体个体间的...
  • 群体智能算法之遗传算法

    千次阅读 2020-04-24 14:00:11
    遗传算法参考文献 参考文献 [1] https://www.jianshu.com/p/ae5157c26af9 [2] https://blog.csdn.net/xyisv/article/details/86741983
  • 智能算法综述

    万次阅读 多人点赞 2017-04-14 20:26:41
    1、什么是智能算法  智能计算也有人称之为“软计算”,是们受自然(生物界)规律的启迪,根据其原理,模仿求解问题的算法。从自然界得到启迪,模仿其结构进行发明创造,这就是仿生学。这是我们向自然界学习的一个...
  • 智能优化算法经验谈

    2021-03-29 20:58:35
    智能优化算法、 全局优化、元启发式算法、差分进化算法、遗传算法、模拟退火算法、蚁群算法、粒子群算法
  • 为了克服遗传算法寻优过程的盲从性,将有监督学习的BP算法与之结合以达到优势互补、提高算法的稳定性和全局搜索能力的目的。 4 设菲尔德大学的MATLAB遗传算法工具箱(王辉) Matlab 遗传算法(Genetic Algorithm)优化...
  • 什么是算法 算法是一组清晰定义的指令集合,用于解决某类问题或执行某种运算任务。算法应该在有限的空间和时间内进行表达,其运行从初始状态和初始输入开始,经过一系列有限而清晰定义的指令操作后,最终产生输出并...
  • 由于最近新参与了一个与智能优化相关的科研课题,所以需要了解一些计算智能算法知识。经老师推荐,从网上购买了张军老师的这本《计算智能》,尽管出版年份距今已有一些年日,但因该领域多年来并未有太多新的大改变...
  • 智能仿生算法在机器人路径规划的应用综述 1 绪论 1.1 机器人路径规划方法 路径规划是移动机器人导航中最重要的技术之一。 对于移动机器人而言,路径规划就是解决特定工作环境和任务要求下的路径优选问题,路径规划的...
  • 如何成为一名AI人工智能算法工程师?

    万次阅读 多人点赞 2019-06-30 12:25:21
    经常有朋友私信问,如何学python呀,如何敲代码呀,如何进入AI行业呀? ...正好回头看看自己这一年走过的路,进行一次经验总结。...人工智能/机器学习/深度学习 自学如何寻找学习资料 如何选择编...
  • 摘要:智能优化算法又称现代启发式算法,是一种具有全局优化性能、通用性强且适合于并行处理的算法。本文主要为大家带来遗传算法和蚁群算法的详细解读。
  • --------------仅作学习,传播idea,愿论文无限制---------------- QR 二维码的识别技术是数字图像处理领域研究的一个热门课题。随着物联网的不断发展, QR 二维码凭借其强大的信息存储能力、方便快捷的识读优点、...
  • 智能优化算法的常用改进方法

    千次阅读 2021-02-19 17:42:19
    智能优化算法2-改进方法(未完待续) 群智能优化算法是一种模拟自然界生物行为和自然现象的元启发式算法,具有良好的并行性和自主探索性。 1.通过初始化种群改进 大多数群体智能算法(启发式智能优化算法)初始种群中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,919
精华内容 16,767
关键字:

智能学习算法优点