精华内容
下载资源
问答
  • 数据人网 • 2018-06-01 23:37 • 人工智能 • 阅读 282   从Logistic回归开始,然后尝试Tree Ensembles和/或Neural Networks。奥卡姆的剃刀原理:使用最简单的算法,可以满足您的需求,并且只有在严格...

    数据人网 • 2018-06-01 23:37 • 人工智能 • 阅读 282

     

    机器学习算法的优点和缺点

    从Logistic回归开始,然后尝试Tree Ensembles和/或Neural Networks。
    奥卡姆的剃刀原理:使用最简单的算法,可以满足您的需求,并且只有在严格需要的情况下才用更复杂的算法。
    根据我自己的经验,只有神经网络和梯度增强决策树(GBDT)正在工业中广泛使用。 我目睹Logistic回归和随机森林被弃用不止一次(这意味着它们是好的开始)。 从来没有人听说有人在公司中讨论SVM。

    优点和缺点

    这里讨论最流行的算法。 有关机器学习算法的完整列表,请查看cheatsheet

    朴素贝叶斯

    • 超级简单,只是做了一堆计数。
    • 如果NB条件独立假设实际成立,那么朴素贝叶斯分类器将比逻辑回归等区分性模型更快地收敛,因此您需要更少的训练数据。 即使NB假设不成立,NB分类器在实践中仍经常表现出色。
    • 如果你想做某种半监督式的学习,或者想要一些令人尴尬的简单表现很好的话,这是一个很好的选择。
    • 没有分布要求,
    • 适合少数类别变量
    • 计算独立分布的乘积
    • 受到多重共线性

    Logistic回归

    逻辑回归仍然是使用最广泛的,了解更多

    • 一个相当好的分类算法,只要你期望你的特征大致是线性的,并且问题是线性可分的,就可以进行训练。
    • 可以做一些特征工程,将大多数非线性特征很容易地转化为线性特征。
    • 它对噪声也很稳健,并且可以避免过度拟合,甚至可以使用l2或l1正则化来进行特征选择。
    • 逻辑回归也可以用于大数据场景,因为它非常高效并且可以使用例如ADMM(请参阅logreg)进行并发。
    • 输出可以被解释为一个概率:您可以将其用于排名而不是分类。
    • 运行一个简单的l2正则化LR来提出一个基线
    • 无分布要求
    • 用少数类别分类变量表现良好
    • 计算logistic分布
    • 适合少数类别变量
    • 容易解释
    • 计算CI
    • 遭受多重共线性
    • 很多方法来调整你的模型
    • 不需要担心相关的特征,就像朴素贝叶斯一样。
    • 轻松更新模型以接收新数据(使用在线梯度下降法)
    • 如果您需要一个概率框架(例如,轻松调整分类阈值,说出何时不确定,或获得置信区间)还是希望在将来能够接收更多的训练数据迅速融入您的模型。

    Lasso

    • 没有分布要求
    • 计算L1损失
    • 具有变量选择特点
    • 遭受多重共线性

    Ridge

    • 没有分布要求
    • 计算L2损失
    • 不具有变量选择
    • 不受多重共线性

    何时不用

    • 如果变量是正态分布的且分类变量都有5个以上类别:使用线性判别分析
    • 如果相关性大部分是非线性的:使用SVM
    • 如果稀疏性和多重共线性是一个问题:具有Ridge(权重)的自适应Lasso + Lasso

    线性判别分析

    LDA:线性判别分析,不是潜在的Dirichlet分布

    • 需要正态分布
    • 不适合少数类别变量
    • 计算叠加的多元分布
    • 计算CI
    • 遭受多重共线性

    支持向量机

    SVM vs LR:

    • 支持向量机(SVM)使用与LR不同的损失函数(Hinge)。
    • 他们也有不同的解释(最大边缘间隔)。
    • 然而,实际上,具有线性内核的SVM与Logistic回归没有太大区别(如果您好奇,可以看看Andrew Ng如何从他的Coursera机器学习课程中的Logistic回归中推导SVM)。
    • 您希望使用SVM而不是Logistic回归的主要原因是您的问题可能不是线性可分的。在这种情况下,您将不得不使用具有非线性内核的SVM(例如RBF)。
    • 事实是,逻辑回归也可以用于不同的内核,但在这一点上,出于实际原因,您可能更适合使用SVM。
    • 使用SVM的另一个相关原因是如果您处于高维空间。例如,据报道支持向量机可以更好地用于文本分类。
    • 高准确度,在考虑过拟合时有很好地理论保证。
    • 使用合适的内核,即使数据在基本特征空间中不能线性分离,它们也可以很好地工作。
    • 在非常高维空间是常态的文本分类问题中尤其受欢迎。
    • 没有分布要求
    • 计算铰链损失
    • 灵活选择非线性相关的核
    • 不受多重共线性
    • 很难解释

    缺点:

    • 训练可能会很痛苦。不推荐有很多实例的任何问题。不推荐大多数“工业规模”应用的SVM。除了玩具/实验室问题之外的任何事情可能会更好地用不同的算法来处理。尽管如此,内存密集型和烦人的运行和调优,所以我认为随机森林正在开始抢夺冠军。

    决策树

    • 易于解释
    • 非参数化的,所以你不必担心异常值或者数据是否可线性分离
    • 他们的主要缺点是他们很容易过拟合,但这就是像随机森林(或提升树)这样的集成方法进来的地方。
    • 另外,随机森林往往是分类问题的赢家(通常在SVM上略微领先一些,我相信),它们快速且可扩展,并且您不必担心像SVM那样要调整一堆参数,所以他们现在似乎很受欢迎。
    • 没有分布要求
    • 启发式
    • 适合少数类别变量
    • 不受多重共线性(通过选择其中之一)
    • Bagging, boosting, 集成方法通常优于单一算法。

    树集成:随机森林和梯度提升树。
    Tree Ensembles vs LR。

    • 他们并不期望线性特征,甚至线性相互作用的特征。 LR中没有提到的一点是,它很难处理分类(二元)特征。 Tree Ensembles,因为它们不过是一堆决策树的组合,可以很好地处理这个问题。另一个主要优点是,由于它们使用装袋或提升构成的,这些算法可以非常好地处理高维空间以及大量的训练实例。
    • 两者都是快速和可扩展的,随机森林往往会在准确性方面击败逻辑回归,但逻辑回归可以在线更新并为您提供有用的概率。

    随机森林

    随机森林使用数据的随机样本独立训练每棵树。 这种随机性有助于使模型比单个决策树更稳健,并且不太过拟合训练数据。 RF中通常有两个参数 – 树数量和被选择的每个结点的特征数目(列抽样)。

    • RF适用于并行或分布式计算。
    • 几乎总是比决策树具有更低的分类错误和更好的f分数。
    • 几乎总是表现出与SVM相同或更好的效果,但对于人类来说更容易理解。
    • 非常适合具有缺失变量的不均匀数据集。
    • 给你一个关于你的数据集中的哪些特征是最重要的免费的好主意。
    • 通常训练速度比支持向量机要快(尽管这显然取决于你的实现)。

    梯度提升决策树

    GBDT一次构建一棵树,每棵新树有助于纠正先前训练过的树造成的错误。 每添加一棵树,该模型就会变得更具表现力。 通常有三个参数 – 树的数量,树的深度和学习速率,每棵树的建立一般都很浅。

    • 容易过拟合
    • GBDT通常表现比RF好,但它们很难达到正确。 更具体地说,GBDT具有更多的超参数要调整,并且更容易出现过拟合。 RF几乎可以“开箱即用”,这也是他们非常受欢迎的原因之一。
    • GBDT训练通常需要更长的时间,因为树是按顺序构建的。

    神经网络

    优点

    • 很好地拟合具有大量输入特征的非线性数据
    • 广泛应用于工业
    • 许多开源实现

    缺点

    • 神经网络仅适用于数值输入,具有常数值的向量和具有非缺失数据的数据集。
    • 分类边界难以直观地理解,并且ANN在计算上昂贵。
    • 黑盒子,使他们很难与之合作,就像试图通过审查人类潜意识来解释我们的意识行为背后的原因。
    • 难以训练:训练结果可能是非确定性的,并且主要取决于初始参数的选择
    • 当他们不像您期望的那样工作时,他们很难排除故障,当他们工作时,您将永远不会确信自己会很好地归纳未包含在您的训练集中的数据,因为从根本上说,您不了解你的网络如何解决问题
    • 多层神经网络通常很难训练,并且需要调整大量参数
    • 神经网络不是概率性的,不像其他统计学或贝叶斯统计学。一个神经网络可能会给你一个连续的数字作为它的输出(例如一个分数),但是把它转换成一个概率往往是困难的。具有更强大理论基础的方法通常会直接为您提供这些概率。

    深度学习

    • 不是通用的分类技术。
    • 擅长图像分类,视频,音频,文字。

    概要

    考虑的因素

    • 训练例子的数量,(你的训练集有多大?)
      • 如果训练集很小,高偏差/低方差分类器(例如朴素贝叶斯)比低偏差/高方差分类器(例如,kNN或逻辑回归)具有优势,因为后者会过度拟合。但是随着训练集的增长(它们具有较低的渐近误差),低偏差/高方差分类器开始赢得胜利,因为高偏差分类器的功能不足以提供准确的模型。您也可以将其视为生成模型与判别模型的区别。
    • 特征空间的维度
    • 我希望问题是线性可分的吗?
    • 特征是否独立?
    • 期望的特征将与目标变量呈线性关系吗?
    • 过度拟合是否会成为问题?
    • 在速度/性能/内存使用方面,系统的要求是什么……?
    • 它需要变量满足正态分布吗?
    • 它是否遭受多重共线性问题?
    • 用分类变量做作为连续变量是否表现好?
    • 它是否计算没有CV的CI?
    • 它是否可以不要stepwise而进行变量选择?
    • 它适用于稀疏数据吗?

    从Logistic回归等简单的事情开始,设置一个基线,并且只在需要时才会使其更加复杂。此时,树集成,特别是随机森林,因为它们很容易调整,可能是正确的路。如果你觉得还有改进的空间,试试GBDT或者更有兴趣去尝试深度学习。

    原文链接:https://www.hackingnote.com/en/machine-learning/algorithms-pros-and-cons/

    编译:数据人网

    链接:http://shujuren.org/article/591.html

    展开全文
  • 一、机器学习概览 ...1. 什么是机器学习?...机器通过分析大量数据来进行学习。...机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。机器学习是人工智能领域的一

    一、机器学习概览



    1. 什么是机器学习?


    机器通过分析大量数据来进行学习。比如说,不需要通过编程来识别猫或人脸,它们可以通过使用图片来进行训练,从而归纳和识别特定的目标。


    2. 机器学习和人工智能的关系


    机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。机器学习是人工智能领域的一部分,并且和知识发现与数据挖掘有所交集。更多解读可参阅《一文读懂机器学习、数据科学、人工智能、深度学习和统计学之间的区别》。



    3. 机器学习的工作方式


    ①选择数据:将你的数据分成三组:训练数据、验证数据和测试数据

    ②模型数据:使用训练数据来构建使用相关特征的模型

    ③验证模型:使用你的验证数据接入你的模型

    ④测试模型:使用你的测试数据检查被验证的模型的表现

    ⑤使用模型:使用完全训练好的模型在新数据上做预测

    ⑥调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能表现



    4. 机器学习所处的位置


    ①传统编程:软件工程师编写程序来解决问题。首先存在一些数据→为了解决一个问题,软件工程师编写一个流程来告诉机器应该怎样做→计算机遵照这一流程执行,然后得出结果

    ②统计学:分析师比较变量之间的关系

    ③机器学习:数据科学家使用训练数据集来教计算机应该怎么做,然后系统执行该任务。首先存在大数据→机器会学习使用训练数据集来进行分类,调节特定的算法来实现目标分类→该计算机可学习识别数据中的关系、趋势和模式

    ④智能应用:智能应用使用人工智能所得到的结果,如图是一个精准农业的应用案例示意,该应用基于无人机所收集到的数据



    5. 机器学习的实际应用


    机器学习有很多应用场景,这里给出了一些示例,你会怎么使用它?


    • 快速三维地图测绘和建模:要建造一架铁路桥,PwC 的数据科学家和领域专家将机器学习应用到了无人机收集到的数据上。这种组合实现了工作成功中的精准监控和快速反馈。

    • 增强分析以降低风险:为了检测内部交易,PwC 将机器学习和其它分析技术结合了起来,从而开发了更为全面的用户概况,并且获得了对复杂可疑行为的更深度了解。

    • 预测表现最佳的目标:PwC 使用机器学习和其它分析方法来评估 Melbourne Cup 赛场上不同赛马的潜力。


    二、机器学习的演化




    几十年来,人工智能研究者的各个「部落」一直以来都在彼此争夺主导权。现在是这些部落联合起来的时候了吗?他们也可能不得不这样做,因为合作和算法融合是实现真正通用人工智能(AGI)的唯一方式。这里给出了机器学习方法的演化之路以及未来的可能模样。


    1. 五大流派


    ①符号主义:使用符号、规则和逻辑来表征知识和进行逻辑推理,最喜欢的算法是:规则和决策树

    ②贝叶斯派:获取发生的可能性来进行概率推理,最喜欢的算法是:朴素贝叶斯或马尔可夫

    ③联结主义:使用概率矩阵和加权神经元来动态地识别和归纳模式,最喜欢的算法是:神经网络

    ④进化主义:生成变化,然后为特定目标获取其中最优的,最喜欢的算法是:遗传算法

    ⑤Analogizer:根据约束条件来优化函数(尽可能走到更高,但同时不要离开道路),最喜欢的算法是:支持向量机



    2. 演化的阶段


    1980 年代


    • 主导流派:符号主义

    • 架构:服务器或大型机

    • 主导理论:知识工程

    • 基本决策逻辑:决策支持系统,实用性有限


    1990 年代到 2000 年


    • 主导流派:贝叶斯

    • 架构:小型服务器集群

    • 主导理论:概率论

    • 分类:可扩展的比较或对比,对许多任务都足够好了


    2010 年代早期到中期


    • 主导流派:联结主义

    • 架构:大型服务器农场

    • 主导理论:神经科学和概率

    • 识别:更加精准的图像和声音识别、翻译、情绪分析等



    3. 这些流派有望合作,并将各自的方法融合到一起


    2010 年代末期


    • 主导流派:联结主义+符号主义

    • 架构:许多云

    • 主导理论:记忆神经网络、大规模集成、基于知识的推理

    • 简单的问答:范围狭窄的、领域特定的知识共享


    2020 年代+


    • 主导流派:联结主义+符号主义+贝叶斯+……

    • 架构:云计算和雾计算

    • 主导理论:感知的时候有网络,推理和工作的时候有规则

    • 简单感知、推理和行动:有限制的自动化或人机交互


    2040 年代+


    • 主导流派:算法融合

    • 架构:无处不在的服务器

    • 主导理论:最佳组合的元学习

    • 感知和响应:基于通过多种学习方式获得的知识或经验采取行动或做出回答


    三、机器学习的算法




    你应该使用哪种机器学习算法?这在很大程度上依赖于可用数据的性质和数量以及每一个特定用例中你的训练目标。不要使用最复杂的算法,除非其结果值得付出昂贵的开销和资源。这里给出了一些最常见的算法,按使用简单程度排序。


    1. 决策树(Decision Tree):在进行逐步应答过程中,典型的决策树分析会使用分层变量或决策节点,例如,可将一个给定用户分类成信用可靠或不可靠。


    • 优点:擅长对人、地点、事物的一系列不同特征、品质、特性进行评估

    • 场景举例:基于规则的信用评估、赛马结果预测




    2. 支持向量机(Support Vector Machine):基于超平面(hyperplane),支持向量机可以对数据群进行分类。


    • 优点:支持向量机擅长在变量 X 与其它变量之间进行二元分类操作,无论其关系是否是线性的

    • 场景举例:新闻分类、手写识别。



    3. 回归(Regression):回归可以勾画出因变量与一个或多个因变量之间的状态关系。在这个例子中,将垃圾邮件和非垃圾邮件进行了区分。


    • 优点:回归可用于识别变量之间的连续关系,即便这个关系不是非常明显

    • 场景举例:路面交通流量分析、邮件过滤



    4. 朴素贝叶斯分类(Naive Bayes Classification):朴素贝叶斯分类器用于计算可能条件的分支概率。每个独立的特征都是「朴素」或条件独立的,因此它们不会影响别的对象。例如,在一个装有共 5 个黄色和红色小球的罐子里,连续拿到两个黄色小球的概率是多少?从图中最上方分支可见,前后抓取两个黄色小球的概率为 1/10。朴素贝叶斯分类器可以计算多个特征的联合条件概率。


    • 优点:对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类

    • 场景举例:情感分析、消费者分类


    5. 隐马尔可夫模型(Hidden Markov model):显马尔可夫过程是完全确定性的——一个给定的状态经常会伴随另一个状态。交通信号灯就是一个例子。相反,隐马尔可夫模型通过分析可见数据来计算隐藏状态的发生。随后,借助隐藏状态分析,隐马尔可夫模型可以估计可能的未来观察模式。在本例中,高或低气压的概率(这是隐藏状态)可用于预测晴天、雨天、多云天的概率。


    • 优点:容许数据的变化性,适用于识别(recognition)和预测操作

    • 场景举例:面部表情分析、气象预测



    6. 随机森林(Random forest):随机森林算法通过使用多个带有随机选取的数据子集的树(tree)改善了决策树的精确性。本例在基因表达层面上考察了大量与乳腺癌复发相关的基因,并计算出复发风险。


    • 优点:随机森林方法被证明对大规模数据集和存在大量且有时不相关特征的项(item)来说很有用

    • 场景举例:用户流失分析、风险评估


    7. 循环神经网络(Recurrent neural network):在任意神经网络中,每个神经元都通过 1 个或多个隐藏层来将很多输入转换成单个输出。循环神经网络(RNN)会将值进一步逐层传递,让逐层学习成为可能。换句话说,RNN 存在某种形式的记忆,允许先前的输出去影响后面的输入。


    • 优点:循环神经网络在存在大量有序信息时具有预测能力

    • 场景举例:图像分类与字幕添加、政治情感分析



    8. 长短期记忆(Long short-term memory,LSTM)与门控循环单元神经网络(gated recurrent unit nerual network):早期的 RNN 形式是会存在损耗的。尽管这些早期循环神经网络只允许留存少量的早期信息,新近的长短期记忆(LSTM)与门控循环单元(GRU)神经网络都有长期与短期的记忆。换句话说,这些新近的 RNN 拥有更好的控制记忆的能力,允许保留早先的值或是当有必要处理很多系列步骤时重置这些值,这避免了「梯度衰减」或逐层传递的值的最终 degradation。LSTM 与 GRU 网络使得我们可以使用被称为「门(gate)」的记忆模块或结构来控制记忆,这种门可以在合适的时候传递或重置值。


    • 优点:长短期记忆和门控循环单元神经网络具备与其它循环神经网络一样的优点,但因为它们有更好的记忆能力,所以更常被使用

    • 场景举例:自然语言处理、翻译



    9. 卷积神经网络(convolutional neural network):卷积是指来自后续层的权重的融合,可用于标记输出层。


    • 优点:当存在非常大型的数据集、大量特征和复杂的分类任务时,卷积神经网络是非常有用的

    • 场景举例:图像识别、文本转语音、药物发现


    原文链接:


    http://usblogs.pwc.com/emerging-technology/a-look-at-machine-learning-infographic/
    http://usblogs.pwc.com/emerging-technology/machine-learning-methods-infographic/
    http://usblogs.pwc.com/emerging-technology/machine-learning-evolution-infographic/


    一、机器学习概览



    1. 什么是机器学习?


    机器通过分析大量数据来进行学习。比如说,不需要通过编程来识别猫或人脸,它们可以通过使用图片来进行训练,从而归纳和识别特定的目标。


    2. 机器学习和人工智能的关系


    机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。机器学习是人工智能领域的一部分,并且和知识发现与数据挖掘有所交集。更多解读可参阅《一文读懂机器学习、数据科学、人工智能、深度学习和统计学之间的区别》。



    3. 机器学习的工作方式


    ①选择数据:将你的数据分成三组:训练数据、验证数据和测试数据

    ②模型数据:使用训练数据来构建使用相关特征的模型

    ③验证模型:使用你的验证数据接入你的模型

    ④测试模型:使用你的测试数据检查被验证的模型的表现

    ⑤使用模型:使用完全训练好的模型在新数据上做预测

    ⑥调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能表现



    4. 机器学习所处的位置


    ①传统编程:软件工程师编写程序来解决问题。首先存在一些数据→为了解决一个问题,软件工程师编写一个流程来告诉机器应该怎样做→计算机遵照这一流程执行,然后得出结果

    ②统计学:分析师比较变量之间的关系

    ③机器学习:数据科学家使用训练数据集来教计算机应该怎么做,然后系统执行该任务。首先存在大数据→机器会学习使用训练数据集来进行分类,调节特定的算法来实现目标分类→该计算机可学习识别数据中的关系、趋势和模式

    ④智能应用:智能应用使用人工智能所得到的结果,如图是一个精准农业的应用案例示意,该应用基于无人机所收集到的数据



    5. 机器学习的实际应用


    机器学习有很多应用场景,这里给出了一些示例,你会怎么使用它?


    • 快速三维地图测绘和建模:要建造一架铁路桥,PwC 的数据科学家和领域专家将机器学习应用到了无人机收集到的数据上。这种组合实现了工作成功中的精准监控和快速反馈。

    • 增强分析以降低风险:为了检测内部交易,PwC 将机器学习和其它分析技术结合了起来,从而开发了更为全面的用户概况,并且获得了对复杂可疑行为的更深度了解。

    • 预测表现最佳的目标:PwC 使用机器学习和其它分析方法来评估 Melbourne Cup 赛场上不同赛马的潜力。


    二、机器学习的演化




    几十年来,人工智能研究者的各个「部落」一直以来都在彼此争夺主导权。现在是这些部落联合起来的时候了吗?他们也可能不得不这样做,因为合作和算法融合是实现真正通用人工智能(AGI)的唯一方式。这里给出了机器学习方法的演化之路以及未来的可能模样。


    1. 五大流派


    ①符号主义:使用符号、规则和逻辑来表征知识和进行逻辑推理,最喜欢的算法是:规则和决策树

    ②贝叶斯派:获取发生的可能性来进行概率推理,最喜欢的算法是:朴素贝叶斯或马尔可夫

    ③联结主义:使用概率矩阵和加权神经元来动态地识别和归纳模式,最喜欢的算法是:神经网络

    ④进化主义:生成变化,然后为特定目标获取其中最优的,最喜欢的算法是:遗传算法

    ⑤Analogizer:根据约束条件来优化函数(尽可能走到更高,但同时不要离开道路),最喜欢的算法是:支持向量机



    2. 演化的阶段


    1980 年代


    • 主导流派:符号主义

    • 架构:服务器或大型机

    • 主导理论:知识工程

    • 基本决策逻辑:决策支持系统,实用性有限


    1990 年代到 2000 年


    • 主导流派:贝叶斯

    • 架构:小型服务器集群

    • 主导理论:概率论

    • 分类:可扩展的比较或对比,对许多任务都足够好了


    2010 年代早期到中期


    • 主导流派:联结主义

    • 架构:大型服务器农场

    • 主导理论:神经科学和概率

    • 识别:更加精准的图像和声音识别、翻译、情绪分析等



    3. 这些流派有望合作,并将各自的方法融合到一起


    2010 年代末期


    • 主导流派:联结主义+符号主义

    • 架构:许多云

    • 主导理论:记忆神经网络、大规模集成、基于知识的推理

    • 简单的问答:范围狭窄的、领域特定的知识共享


    2020 年代+


    • 主导流派:联结主义+符号主义+贝叶斯+……

    • 架构:云计算和雾计算

    • 主导理论:感知的时候有网络,推理和工作的时候有规则

    • 简单感知、推理和行动:有限制的自动化或人机交互


    2040 年代+


    • 主导流派:算法融合

    • 架构:无处不在的服务器

    • 主导理论:最佳组合的元学习

    • 感知和响应:基于通过多种学习方式获得的知识或经验采取行动或做出回答


    三、机器学习的算法




    你应该使用哪种机器学习算法?这在很大程度上依赖于可用数据的性质和数量以及每一个特定用例中你的训练目标。不要使用最复杂的算法,除非其结果值得付出昂贵的开销和资源。这里给出了一些最常见的算法,按使用简单程度排序。


    1. 决策树(Decision Tree):在进行逐步应答过程中,典型的决策树分析会使用分层变量或决策节点,例如,可将一个给定用户分类成信用可靠或不可靠。


    • 优点:擅长对人、地点、事物的一系列不同特征、品质、特性进行评估

    • 场景举例:基于规则的信用评估、赛马结果预测




    2. 支持向量机(Support Vector Machine):基于超平面(hyperplane),支持向量机可以对数据群进行分类。


    • 优点:支持向量机擅长在变量 X 与其它变量之间进行二元分类操作,无论其关系是否是线性的

    • 场景举例:新闻分类、手写识别。



    3. 回归(Regression):回归可以勾画出因变量与一个或多个因变量之间的状态关系。在这个例子中,将垃圾邮件和非垃圾邮件进行了区分。


    • 优点:回归可用于识别变量之间的连续关系,即便这个关系不是非常明显

    • 场景举例:路面交通流量分析、邮件过滤



    4. 朴素贝叶斯分类(Naive Bayes Classification):朴素贝叶斯分类器用于计算可能条件的分支概率。每个独立的特征都是「朴素」或条件独立的,因此它们不会影响别的对象。例如,在一个装有共 5 个黄色和红色小球的罐子里,连续拿到两个黄色小球的概率是多少?从图中最上方分支可见,前后抓取两个黄色小球的概率为 1/10。朴素贝叶斯分类器可以计算多个特征的联合条件概率。


    • 优点:对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类

    • 场景举例:情感分析、消费者分类


    5. 隐马尔可夫模型(Hidden Markov model):显马尔可夫过程是完全确定性的——一个给定的状态经常会伴随另一个状态。交通信号灯就是一个例子。相反,隐马尔可夫模型通过分析可见数据来计算隐藏状态的发生。随后,借助隐藏状态分析,隐马尔可夫模型可以估计可能的未来观察模式。在本例中,高或低气压的概率(这是隐藏状态)可用于预测晴天、雨天、多云天的概率。


    • 优点:容许数据的变化性,适用于识别(recognition)和预测操作

    • 场景举例:面部表情分析、气象预测



    6. 随机森林(Random forest):随机森林算法通过使用多个带有随机选取的数据子集的树(tree)改善了决策树的精确性。本例在基因表达层面上考察了大量与乳腺癌复发相关的基因,并计算出复发风险。


    • 优点:随机森林方法被证明对大规模数据集和存在大量且有时不相关特征的项(item)来说很有用

    • 场景举例:用户流失分析、风险评估


    7. 循环神经网络(Recurrent neural network):在任意神经网络中,每个神经元都通过 1 个或多个隐藏层来将很多输入转换成单个输出。循环神经网络(RNN)会将值进一步逐层传递,让逐层学习成为可能。换句话说,RNN 存在某种形式的记忆,允许先前的输出去影响后面的输入。


    • 优点:循环神经网络在存在大量有序信息时具有预测能力

    • 场景举例:图像分类与字幕添加、政治情感分析



    8. 长短期记忆(Long short-term memory,LSTM)与门控循环单元神经网络(gated recurrent unit nerual network):早期的 RNN 形式是会存在损耗的。尽管这些早期循环神经网络只允许留存少量的早期信息,新近的长短期记忆(LSTM)与门控循环单元(GRU)神经网络都有长期与短期的记忆。换句话说,这些新近的 RNN 拥有更好的控制记忆的能力,允许保留早先的值或是当有必要处理很多系列步骤时重置这些值,这避免了「梯度衰减」或逐层传递的值的最终 degradation。LSTM 与 GRU 网络使得我们可以使用被称为「门(gate)」的记忆模块或结构来控制记忆,这种门可以在合适的时候传递或重置值。


    • 优点:长短期记忆和门控循环单元神经网络具备与其它循环神经网络一样的优点,但因为它们有更好的记忆能力,所以更常被使用

    • 场景举例:自然语言处理、翻译



    9. 卷积神经网络(convolutional neural network):卷积是指来自后续层的权重的融合,可用于标记输出层。


    • 优点:当存在非常大型的数据集、大量特征和复杂的分类任务时,卷积神经网络是非常有用的

    • 场景举例:图像识别、文本转语音、药物发现


    原文链接:


    http://usblogs.pwc.com/emerging-technology/a-look-at-machine-learning-infographic/
    http://usblogs.pwc.com/emerging-technology/machine-learning-methods-infographic/
    http://usblogs.pwc.com/emerging-technology/machine-learning-evolution-infographic/

    展开全文
  • 光环大数据 --大数据培训 &人工智能培训 一种 RBF神经网络的自适应学习算法 _光环大数据人工智能培训 光环大数据作为国内知名的人工智能培训的机构 帮助无数学员稳健 扎实的提升人工 智能技术来光环大数据学人工智能...
  • 粒子群算法优点是实现容易、精度高、收敛速度快,比较适合作为智能算法学习中的第一关。01—算法介绍粒子群算法,是一种模拟鸟群觅食行为的进化算法,最早由美国的电气工程师Eberhart和社会心理学家Kenndy在1995年...
    本期《智能算法简明教程》的主要内容是介绍粒子群算法的原理,以及粒子群算法在Matlab中如何实现。粒子群算法的优点是实现容易、精度高、收敛速度快,比较适合作为智能算法学习中的第一关。

    01

    算法介绍

    粒子群算法,是一种模拟鸟群觅食行为的进化算法,最早由美国的电气工程师Eberhart和社会心理学家Kenndy在1995年提出。由于粒子群算法的概念清晰、实现难度低、收敛速度快、参数数量少,在各类优化问题中得到了广泛的应用,并且经过多次改进,搜索性能得到了进一步提升,生命力也越来越旺盛。1  鸟群觅食行为与粒子群算法的优化思路假定鸟群已知在一个有限区域内存在一块食物,但是不知道食物的具体方位,只知道每一只鸟距离食物的距离。为了尽快找到食物,鸟群中的每一只小鸟都行动起来,不断的移动并共享自己与食物的距离,每一只小鸟会倾向于向自己离食物最近的位置和群体离食物最近的位置移动。通过群体的合作,鸟群中的每一只小鸟会迅速搜索周边的区域,再通过信息共享缩小食物可能位于的范围。参照鸟群的觅食行为,粒子群算法把优化问题的每一个可行解都看作是区域内的一个位置,而将最优解视为食物在区域内的位置。在初始阶段,粒子群算法生成一批随机解,作为鸟群中每一只小鸟的初始位置,然后通过迭代寻找最优解。鸟群在搜索食物过程中的合作体现为粒子的移动方向和移动速度会根据个体的极大值点和群体的极大值点进行适当的调整,而为了保证算法不过快的收敛在局部最优解的附近,粒子的移动方向和移动速度还会受到惯性的作用。2 粒子群算法的发展趋势随着粒子群算法被应用到越来越多的优化问题中,传统粒子群算法的局限性也变得越来越明显,而粒子群算法简单的原理为进一步改进预留了很大的空间,大量学者从理论和实践两个层面进行了大量的研究。目前,粒子群算法的发展趋势可以概括为五个方向:(1)技术层面的改进:如何应用于离散空间优化问题和多目标优化问题?如何结合其他进化类算法改善粒子群算法的一些固有不足?(2)理论层面的改进:如何设计参数和适应度函数?如何提高算法在解空间的搜索效率?(3)生物学层面的改进:如何将群体智能引入粒子群算法中?(4)应用范围的扩展:如何将粒子群算法应用于更多的领域中?3 粒子群算法的应用领域粒子群算法常用于求解复杂的约束优化问题,被广泛应用于机器人智能控制、电力系统领域、工程设计问题、生物医学领域、通信领域和交通运输领域。粒子群算法的应用领域具有三个共同特点:第一,需要求解的优化问题较为复杂,很难或不可能用数学方法求得解析解,而简化模型会产生较大的误差,并且使得出的结论失去实用价值;第二,优化问题的搜索空间较为复杂,无法使用枚举法或蒙特卡洛模拟的方法求得精确最优解;第三,优化问题具有一定的学科特色,需要在通用的优化框架下对算法进行一定程度的改良。可以预见,随着其他学科的进一步发展,粒子群算法将会在更多领域得到改进和运用。

    02

    算法原理

    1  速度—位移模型粒子群算法的原理是为一定数量的粒子随机赋予初始位置和初速速度,然后让粒子相互交换信息,并对搜索方向进行调整,直到全部粒子收敛到最优解的附近。在这个过程中,位置和速度是粒子群算法的核心要素,粒子在搜索过程中的位置和速度的变化如下图所示:

    12f6cc7d6d9cef1784e8b16ad393f878.png

    如果说向量图还是比较抽象的话,那么下图就从数学上定义了粒子的速度和位置是如何不断迭代变化的:

    dd2f96d76f373eda3fe766cca4fc72ff.png

    2  算法的构成要素粒子群算法的三个要素分别是:粒子群编码方法、个体适应度评价机制和算法运行所需的基本参数。一般而言,粒子群编码方法采用二进制符号串编码,取值为0或1,初始群体可以使用均匀分布的随机数生成。然而,实际操作中如果变量个数较多或搜索空间较大,也可以直接采用实数或其他进制的符号串编码。个体适应度的评价机制通常由目标函数直接完成,需要注意的是如果问题是最小化目标函数,那么适应度函数可能需要取目标函数的倒数(恒为正)或是改为常数减去目标函数值。粒子群算法较为简单,在实际运行中只需要预先设定7个运行参数:(1)粒子群的大小,一般取20到100,如果优化问题较为复杂或者变量个数较多,也可以取100以上的数值。(2)最大迭代次数,通常取100,大多数情况下迭代终止的原因是满足最小误差要求。(3)加速度权重系数,在0到1之间取值。(4)加速常数,在2附近取值。(5)惯性权重,既可以取常数,取值范围为0.2到1.2,也可以预先设定惯性权重的表达式。(6)粒子的初始速度和初始位置。(7)粒子最大速度,用于提高粒子群算法的收敛速度。3  算法流程图基本粒子群算法的流程图如下所示:

    acfb930e97e884d38c5f4ba4e3f3152c.png

    需要特别提示的是,如果满足结束条件是由于迭代次数达到最大次数,而不是误差足够小,需要考察粒子群算法得到的最优解是否为局部最优解。

    03

    案例演练

    本次案例演练从最简单的函数优化问题开始,最大化目标函数如下:

    803103d669d8ed72f83a1aea25dbd37f.png

    为什么要使用粒子群算法进行优化呢?不妨先通过画图直观的感受一下,利用Matlab绘图的代码如下:
    clearclcx=-pi:0.1:pi;y=-pi:0.1:pi;[X,Y]=meshgrid(x,y);Z=(9*sin(5*X)+8*cos(4*Y)).*(7*sin(3*X)+6*cos(2*Y));mesh(X,Y,Z)
    绘制出的图片如下:

    d98f2ecc69cd2611b18deadbdeffcd6e.png

    如图所示,寻找一阶导数为零的极大值点的方法并不是太有效,而枚举法的工作量也不会太小。因此,使用基本粒子群算法是有必要的。1  初始化粒子的速度和位置
    m=30; % 群体规模xmin=[-pi;-pi]; % 位置的下限xmax=[pi;pi]; % 位置的上限k=0.2;vmin=-k*(xmax-xmin); % 速度的下限vmax=k*(xmax-xmin); % 速度的上限for k=1:length(xmin)    x(1:m,k)=rand(m,1)*(xmax(k,1)-xmin(k,1))+xmin(k,1);    v(1:m,k)=rand(m,1)*(vmax(k,1)-vmin(k,1))+vmin(k,1);end
    在算法原理中,曾经提及基本粒子群算法的编码方式一般是二进制编码,但是实际上采用实数定义位置和速度在编程上会更为方便,并且也不会对粒子群算法的收敛性和搜索速度产生太大的影响。2  粒子适应度的计算与最优值的更新由于计算粒子的适应度、更新个体最优值和全局最优值的操作需要在迭代过程中反复进行,编写程序时最好将这一部分写成函数的形式,以便于调用、修改。在编写函数前,需要明确需要输入哪些参数。计算粒子适应度需要输入粒子的位置,而最优值的更新需要输入最优值的数值和对应的位置。
    pb=rand(m,1)*-inf; % 个体最优值pbx=zeros(m,2); % 个体最优值对应的位置gb=-inf; % 群体最优值gbx=zeros(1,2); % 群体最优值对应的位置[pb,pbx,gb,gbx]=f1(x,pb,pbx,gb,gbx);function [pb,pbx,gb,gbx] = f1(x,pb,pbx,gb,gbx)y=(9*sin(5*x(:,1))+8*cos(4*x(:,2))).*(7*sin(3*x(:,1))+6*cos(2*x(:,2)));for k=1:length(pb)    if y(k,1)>pb(k,1) % 判断个体最优值是否需要替换        pb(k,1)=y(k,1);        pbx(k,:)=x(k,:);    endendpgb=max(pb);pgbx=x(max(find(pb==pgb)),:);if pgb>gb % 判断群体最优值是否需要替换    gb=pgb;    gbx=pgbx;endend
    需要特别提示的一点是,函数只返回了更新后的最优值和对应的位置,但没有返回每个粒子的适应度。这是因为后续的速度—位移模型只需要粒子的位置、速度和最优值信息,而不需要粒子的适应度。当然,如果想要输出,只需要在function中第一行的等号左侧加入y即可。3  速度—位移模型与计算粒子适应度和更新最优值一样,速度—位移模型也需要反复调用,故也使用函数的形式完成。在速度—位移模型中,需要输入的参数除了速度、位置、最优值的相关信息(4个参数)和加速系数等参数(3个)之外,还需要输入速度和位置的上下限。
    c1=2; % 加速常数c2=2; % 加速常数w=0.7; % 惯性权重[v,x]=f2(x,v,xmin,xmax,vmin,vmax,pb,pbx,gb,gbx,c1,c2,w);function [vn,xn] = f2(x,v,xmin,xmax,vmin,vmax,pb,pbx,gb,gbx,c1,c2,w)m=length(x);xn=x+v;r1=rand(m,2); % 加速度权重系数r2=rand(m,2);vn=w*v+c1*r1.*(pbx-x)+c2*r2.*(gbx-x); % 更新搜索方向for k=1:min(size(x))    u1=xn(:,k);    u2=vn(:,k);    u1(u1    u1(u1>xmax(k,1))=xmax(k,1);    u2(u2    u2(u2>vmax(k,1))=vmax(k,1);    xn(:,k)=u1;    vn(:,k)=u2;endend
    需要提及的是,这个案例中不同变量的上下限是相同的,判断位置和速度是否超出上下限的部分是可以简化为不使用循环的。4  迭代过程在迭代过程中,中止迭代的条件是相当重要的,很大程度上影响了粒子群算法优化的结果。
    n=0; % 迭代次数nmax=200; % 最大迭代次数pd=0; % 是否中止迭代while pd==0    n=n+1;    [v,x]=f2(x,v,xmin,xmax,vmin,vmax,pb,pbx,gb,gbx,c1,c2,w);    [pb,pbx,gb,gbx]=f1(x,pb,pbx,gb,gbx);    rd(n,1)=gb; % 记录群体最优解的变化过程    rd(n,2:length(xmin)+1)=gbx; % 记录群体最优解对应的位置    rd(n,length(xmin)+2)=mean(pb); % 记录个体最优值的均值    rd(n,length(xmin)+3)=std(pb); % 记录个体最优值的标准差    if n>=nmax % 迭代次数达到最大中止        pd=1;    end    if rd(n,1)-rd(n,length(xmin)+2)<1 % 群体最优值与个体最优值足够接近        pd=1;    endend
    在这个案例中,中止的条件为迭代超过200代,或者群体最优值和个体最优值的均值只差小于1,实际上考察群体最优值或者个体最优值的均值保持恒定水平的代数超过某个常数也是可行的,在实践中最好根据实际情况确定。如果观察本案例的群体最优值和个体最优值的平均值(如下图所示),会发现群体最优值收敛到203以上的速度很快,但是群体最优值从203到204迭代了约40次,从超过204到升高至204.3106又迭代了30次。相较之下,如果以群体最优值作为判断标准就不太妥当了,而以个体最优值的作为判断标准,或者以二者的差作为判断标准更合适。

    cc7e5d5f0a6bda3feeafbfdaf414eb99.png

    另外需要特别说明的一点是,粒子群算法并不能保证搜索到的最优解不落入局部最优解的陷阱中,只能通过在基本粒子群算法的基础上进行适当的改进或者运行多次来避免这一问题。当然,也不必感到沮丧,以这个函数优化问题为例,虽然存在多个相近的极大值点,基本粒子群算法得到的最优解大多数时候也是在全局最优解附近的,实验100次陷入局部最优解的次数也不超过2次。

    04

    拓展思考

    问题1:基本粒子群算法在约束优化问题会有哪些变化?问题2:基本粒子群算法对哪些参数更加敏感?问题3:如何对基本粒子群算法的惯性权重进行改进?
    展开全文
  • 深度学习模型之——DenseNet算法详解及优点分析

    千次阅读 多人点赞 2018-08-25 21:15:05
    现其重要性,博主人读完这文章后,自然感叹我们国内也是人才辈出,清华大学确实是国内人工智能的顶尖。废话不多说开始分享算法。 DenseNet论文算法解释 网络上有很多关于这篇论文的解读,博主读了几个,解释的明白...

    引言

    作为2017年CVPR最佳论文,足以体现其重要性和创新性,清华大学黄高博士第一作者发表的。现其重要性,博主人读完这文章后,自然感叹我们国内也是人才辈出,清华大学确实是国内人工智能的顶尖。废话不多说开始分享算法。

    DenseNet论文算法解释

    网络上有很多关于这篇论文的解读,博主读了几个,解释的明白清楚的还是下面链接中解释的明白,既有解释又有代码还有论文链接,有想法的可以看看原文,博主在此不再赘述。

    算法详解链接

    算法优点

    1、省参数。在 ImageNet 分类数据集上达到同样的准确率,DenseNet 所需的参数量不到 ResNet 的一半。对于工业界而言,小模型可以显著地节省带宽,降低存储开销。

    2、省计算。达到与 ResNet 相当的精度,DenseNet 所需的计算量也只有 ResNet 的一半左右。计算效率在深度学习实际应用中的需求非常强烈,从本次 CVPR 会上大家对模型压缩以及 MobileNet 和 ShuffleNet 这些工作的关注就可以看得出来。最近我们也在搭建更高效的 DenseNet,初步结果表明 DenseNet 对于这类应用具有非常大的潜力,即使不用 Depth Separable Convolution 也能达到比现有方法更好的结果,预计在近期我们会公开相应的方法和模型。

    3、抗过拟合。DenseNet 具有非常好的抗过拟合性能,尤其适合于训练数据相对匮乏的应用。对于 DenseNet 抗过拟合的原因有一个比较直观的解释:神经网络每一层提取的特征都相当于对输入数据的一个非线性变换,而随着深度的增加,变换的复杂度也逐渐增加(更多非线性函数的复合)。相比于一般神经网络的分类器直接依赖于网络最后一层(复杂度最高)的特征,DenseNet 可以综合利用浅层复杂度低的特征,因而更容易得到一个光滑的具有更好泛化性能的决策函数。实际上,DenseNet 的泛化性能优于其他网络是可以从理论上证明的:去年的一篇几乎与 DenseNet 同期发布在 arXiv 上的论文(AdaNet: Adaptive Structural Learning of Artificial Neural Networks)所证明的结论(见文中 Theorem 1)表明类似于 DenseNet 的网络结构具有更小的泛化误差界。

    4、泛化性能更强。如果没有data augmention,CIFAR-100下,ResNet表现下降很多,DenseNet下降不多,说明DenseNet泛化性能更强。

    提出算法出发点

    目前来看,深度卷积网络挑战主要有:

    1.Underfitting(欠拟合)。一般来说,模型越为复杂,表达能力越强,越不容易欠拟合。但是深度网络不一样,模型表达能力够,但是算法不能达到那个全局的最优(resnet基本解决)。

    2.Overfiting(过拟合),泛化能力下降。

    3.实际系统的部署。如何提升效率和减少内存、能量消耗。

    Insight:如何消除上述的冗余性?更紧致的结构?更好的泛化性能?由随机网络深度,我们就得知训练时扔掉大部分层却效果不错,说明冗余性很多,每一层干的事情很少,只学一点东西。

    目的:减少不必要的计算,提高泛化性能。

     

    如何对 DenseNet 的模型做改进

    1. 每层开始的瓶颈层(1x1 卷积)对于减少参数量和计算量非常有用。

    2. 像 VGG 和 ResNet 那样每做一次下采样(down-sampling)之后都把层宽度(growth rate) 增加一倍,可以提高 DenseNet 的计算效率(FLOPS efficiency)。

    3. 与其他网络一样,DenseNet 的深度和宽度应该均衡的变化,当然 DenseNet 每层的宽度要远小于其他模型。

    4. 每一层设计得较窄会降低 DenseNet 在 GPU 上的运算效率,但可能会提高在 CPU 上的运算效率。

    原作者面对疑问的解释

    1、密集连接不会带来冗余吗?

    这是一个很多人都在问的问题,因为「密集连接」这个词给人的第一感觉就是极大的增加了网络的参数量和计算量。但实际上 DenseNet 比其他网络效率更高,其关键就在于网络每层计算量的减少以及特征的重复利用。DenseNet 的每一层只需学习很少的特征,使得参数量和计算量显著减少。比如对于 ImageNet 上的模型,ResNet 在特征图尺寸为 7x7 的阶段,每个基本单元(包含三个卷积层)的参数量为 2048x512x1x1+512x512x3x3+512x2048x1x1=4.5M,而 DenseNet 每个基本单元(包含两个卷积层,其输入特征图的数量一般小于 2000)的参数量约为 2000x4x32x1x1 + 4x32x32x3x3 = 0.26M,大幅低于 ResNet 每层的参数量。这就解释了为什么一个 201 层的 DenseNet 参数量和计算量都只有一个 101 层 ResNet 的一半左右。

    还有一个自然而然的问题就是,这么多的密集连接,是不是全部都是必要的,有没有可能去掉一些也不会影响网络的性能?论文里面有一个热力图(heatmap),直观上刻画了各个连接的强度。从图中可以观察到网络中比较靠后的层确实也会用到非常浅层的特征。

    via

    我们还做过一些简单的实验,比如每一层都只连接到前面最近的 m 层(例如 m=4),或者奇(偶)数层只与前面的偶(奇)数层相连,但这样简化后的模型并没有比一个相应大小的正常 DenseNet 好。当然这些都只是一些非常初步的尝试,如果采用一些好的剪枝(prune)的方法,我觉得 DenseNet 中一部分连接是可以被去掉而不影响性能的。

    2、DenseNet 特别耗费显存?

    不少人跟我们反映过 DenseNet 在训练时对内存消耗非常厉害。这个问题其实是算法实现不优带来的。当前的深度学习框架对 DenseNet 的密集连接没有很好的支持,我们只能借助于反复的拼接(Concatenation)操作,将之前层的输出与当前层的输出拼接在一起,然后传给下一层。对于大多数框架(如 Torch 和 TensorFlow),每次拼接操作都会开辟新的内存来保存拼接后的特征。这样就导致一个 L 层的网络,要消耗相当于 L(L+1)/2 层网络的内存(第 l 层的输出在内存里被存了 (L-l+1) 份)。

    解决这个问题的思路其实并不难,我们只需要预先分配一块缓存,供网络中所有的拼接层(Concatenation Layer)共享使用,这样 DenseNet 对内存的消耗便从平方级别降到了线性级别。在梯度反传过程中,我们再把相应卷积层的输出复制到该缓存,就可以重构每一层的输入特征,进而计算梯度。当然网络中由于 Batch Normalization 层的存在,实现起来还有一些需要注意的细节。

    新的实现极大地减小了 DenseNet 在训练时对显存的消耗,比如论文中 190 层的 DenseNet 原来几乎占满了 4 块 12G 内存的 GPU,而优化过后的代码仅需要 9G 的显存,在单卡上就能训练。

    另外就是网络在推理(或测试)的时候对内存的消耗,这个是我们在实际产品中(尤其是在移动设备上)部署深度学习模型时最关心的问题。不同于训练,一般神经网络的推理过程不需要一直保留每一层的输出,因此可以在每计算好一层的特征后便将前面层特征占用的内存释放掉。而 DenseNet 则需要始终保存所有前面层的输出。但考虑到 DenseNet 每一层产生的特征图很少,所以在推理的时候占用内存不会多于其他网络。

    3、DenseNet 是受什么启发提出来的?

    DenseNet 的想法很大程度上源于我们去年发表在 ECCV 上的一个叫做随机深度网络(Deep networks with stochastic depth)工作。当时我们提出了一种类似于 Dropout 的方法来改进ResNet。我们发现在训练过程中的每一步都随机地「扔掉」(drop)一些层,可以显著的提高 ResNet 的泛化性能。这个方法的成功至少带给我们两点启发:

    • 首先,它说明了神经网络其实并不一定要是一个递进层级结构,也就是说网络中的某一层可以不仅仅依赖于紧邻的上一层的特征,而可以依赖于更前面层学习的特征。想像一下在随机深度网络中,当第 l 层被扔掉之后,第 l+1 层就被直接连到了第 l-1 层;当第 2 到了第 l 层都被扔掉之后,第 l+1 层就直接用到了第 1 层的特征。因此,随机深度网络其实可以看成一个具有随机密集连接的 DenseNet。

    • 其次,我们在训练的过程中随机扔掉很多层也不会破坏算法的收敛,说明了 ResNet 具有比较明显的冗余性,网络中的每一层都只提取了很少的特征(即所谓的残差)。实际上,我们将训练好的 ResNet 随机的去掉几层,对网络的预测结果也不会产生太大的影响。既然每一层学习的特征这么少,能不能降低它的计算量来减小冗余呢?

    DenseNet 的设计正是基于以上两点观察。我们让网络中的每一层都直接与其前面层相连,实现特征的重复利用;同时把网络的每一层设计得特别「窄」,即只学习非常少的特征图(最极端情况就是每一层只学习一个特征图),达到降低冗余性的目的。这两点也是 DenseNet 与其他网络最主要的不同。需要强调的是,第一点是第二点的前提,没有密集连接,我们是不可能把网络设计得太窄的,否则训练会出现欠拟合(under-fitting)现象,即使 ResNet 也是如此。

     

    展开全文
  • 集成算法介绍1.2 机器学习中的两个核心任务1.3 集成学习中boosting和Bagging2.Bagging与随机森林2.1 Bagging集成原理2.2 随机森林的构造过程2.3 随机森林API介绍2.4 随机森林预测泰坦尼克号的生存率2.5 bagging集成...
  • MATLAB智能算法超级学习手册MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似。用MATLAB解决问题要比用C、FORTRAN等语言简捷得多,并且MATLAB吸收了Maple等软件的优点,从而成为一个...
  • 简介: 当机器最终学会如何学习时,将会发生什么?  不同于传统算法,现在悄然主导我们生活的是“能够学习的机器”...而如果整合所有这些算法优点,就有可能找到一种“终ji算法”,该算法可以获得过去、现在和...
  • 1.9 k近邻算法总结[**] 优点: 1.简单有效 2.重新训练代价底 3.适合类域交叉样本 4.适合大样本自动分类 缺点: 1.惰性学习 2.类别评分不是规格化 3.输出可解释性不强 4.对不均衡的样本不擅长 样本不均衡...
  • 人工智能基础算法之感知器(1)

    千次阅读 2018-05-12 09:46:52
    算法属于非参数算法优点是不需要对各类样本的统计性质作任何假设,属于确定性方法。  虽然简单,感知器算法却是支持向量机(SVM)和神经网络算法的基础,为了之后更好地学习,感知器算法必须要了解地非常清楚...
  • 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析一、鸢尾花数据集二分类可视化分析1、线性LDA可视化2、k-means...-means可视化3、SVM可视化三、SVM算法的优缺点1、优点2、缺点...
  • 7.11 深度学习在推荐算法上的应用进展 最近几年是深度学习发展的黄金时间,其在多个领域取得了重要进展,包括图像领域、语音领域、文本领域等。深度学习为科研工作者提供了一种非常有效的技术途径,其本质上是对数据...
  • 13 基于粒子群算法的函数寻优算法(史峰) 粒子群优化算法(PSO,particle swarm optimization)是计算智能领域,除了蚁群算法,鱼群算法 之外的一种群体智能的优化算法。函数寻优是工程中经常遇到的问题,有些函数...
  • 强化学习的一些算法

    2019-02-26 15:26:01
    强化学习算法的种类 ...强化学习算法的一个重要分支是:智能体是否有能力从环境学习一个模型。 Model-Based 优点:希望智能体能够根据自己的思考做出计划,可以观测到可能的选择值,并在选择之间做出明确的决定...
  • 人工智能与机器学习——采用线性LDA、k-means和SVM算法进行二分类可视化分析一、原理介绍1. 线性判别分析(LDA)2. K均值聚类算法 k-means3. SVM(支持向量机)算法二、线性LDA算法对鸢尾花数据集合月亮数据集二分类...
  • 数据挖掘十大经典算法 一 C4.5 C4.5 算法是机器学习算法中的一种分类决策树算法 ,其核心算法是 ID3 算法 C4.5 算法继承了 ID3 算法的优点并在以下几方面对 ID3 算法进行了改进 1) 用信息增益率来选择属性 克服了用...
  • --------------仅作学习,传播idea,愿论文无限制---------------- QR 二维码的识别技术是数字图像处理领域研究的一个热门课题。随着物联网的不断发展, QR 二维码凭借其强大的信息存储能力、方便快捷的识读优点、...
  • 本节讲解XGBoost的原理~目录1、回顾:1.1 有监督学习中的相关概念1.2 回归树概念1.3 树的优点2、怎么训练模型:2.1 案例引入2.2 XGBoost目标函数求解3、XGBoost中正则项的显式表达4、如何生长一棵新的树?...
  • 该模型从智能考试系统的需求出发对蚁群算法的信息素初始值的设定进行了探讨并改进了更新规则, 将考试结果反馈给系统, 从而不仅有效解决了自动组卷问题, 而且系统具有了自主学习能力, 使其能够更智能化地改进系统性能...
  • 从方法上来说,深度学习具有的优点本质上是领域无关的。因此,在可预见的未来,深度学习将会作为一种较为通用的数据建模方法,对于多个潜在领域的应用产生重要影响。在信息大数据时代,用户的个性化需求不断提高,...
  • 作者:华为人工智能高级讲师 王豪聪 ...在众多图像处理算法中,卷积神经网络是最重要的一种,被大量应用于计算机视觉、自然语言处理等人工智能领域 。什么是卷积神经网络?听到“卷积”、“神经网络”,你脑海中也...
  • 粒子群优化算法(PSO)是一种群体智能算法,通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。但基本PSO算法存在进化后期收敛速度慢、易陷入局部最优点的缺点,提出了一种多向学习型的粒子群优化算法,...
  • 讲座预告时间4月28日晚上19:00 — 21:00主办计信学院主讲人彭义春副教授主题BP神经网络算法的应用研究讲座内容简介讲座简介主要包括人工智能和机器学习概述、人工神经网络的定义、特点和优点、组成、网络拓扑结构、...
  • 在本文中,我们将通过计算二次凸函数的最优点来数值比较主要的深度学习优化算法的性能。 简介 深度学习被称为人工智能的未来。现在,神经网络被称为通用函数逼近器,也就是说,它们有能力表示这个宇宙中任何复杂的...
  • 通过对待监测区域安装网络摄像设备采集待监测区域图像数据,将采集原始数据通过网络传输至服务器端,服务器端通过深度学习相关技术对图像数据进行处理识别,引用数据挖掘和人工智能相关算法,最终给出相关配电设备的...
  • 在各种智能算法发展迅速的今天算法优化问题变得愈发重要在数据挖掘学习中普通的K-均值聚类算法过于依赖初始质心的选择而增加了计算的复杂度本文首先介绍了cs算法的发展历史和论文的研究背景并给出了几种改进的cs算法...
  • 深度学习-01深度学习-01深度学习概述引入人工智能划时代事件深度学习巨大影响深度学习什么是深度学习深度神经网络深度学习与机器学习的关系深度学习的特点深度学习优点深度学习的缺点为什么要学习深度学习深度学习...
  • 没人会看的开场白:本来觉得自己从数据建模转人工智能方向应该问题不大(自我感觉自己算法学的不错)。结果一个K-邻近实现手写数字识别的代码就让我改了三四天。虽然网上这方面的代码是很多,但是我运行了好几个,...

空空如也

空空如也

1 2 3 4 5 6
收藏数 114
精华内容 45
关键字:

智能学习算法优点