什么是深度学习有什么优点和缺点
人工智能(AI)是一门科学,机器学习(ML)是目前最主流的人工智能实现方法,而深度学习(DL)则是机器学习(ML)的一个分支,也是当下最流行的机器学习(ML)的一种。
深度学习在机器学习领域是一个很热的概念,经过媒体和大V等炒作,这个概念变得近乎有些神话的感觉,下面让我来慢慢揭开深度学习的神秘面纱。^_^
深度学习(DeepLearning)的概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。
那么究竟什么是深度学习呢?深度学习(DL)是机器学习中一种基于对数据进行表征学习的方法,是一种能够模拟出人脑的神经结构的机器学习方法。深度学习的概念源于人工神经网络的研究。而人工神经网络ANN(ArtificialNeuralNetwork)是从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络,简称为神经网络或类神经网络。因此,深度学习又叫深层神经网络DNN(DeepNeuralNetworks),是从之前的人工神经网络ANN模型发展而来的。
深度学习是机器学习研究中的一个新领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,比如图像,声音和文本等。深度学习,能让计算机具有人一样的智慧,其发展前景必定是无限的。
同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.例如,卷积神经网络(Convolutionalneuralnetworks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(DeepBeliefNets,简称DBNs)就是一种无监督学习下的机器学习模型。
深度学习所涉及的技术主要有:线性代数、概率和信息论、欠拟合、过拟合、正则化、最大似然估计和贝叶斯统计、随机梯度下降、监督学习和无监督学习、深度前馈网络、代价函数和反向传播、正则化、稀疏编码和dropout、自适应学习算法、卷积神经网络、循环神经网络、递归神经网络、深度神经网络和深度堆叠网络、LSTM长短时记忆、主成分分析、正则自动编码器、表征学习、蒙特卡洛、受限波兹曼机、深度置信网络、softmax回归、决策树和聚类算法、KNN和SVM、生成对抗网络和有向生成网络、机器视觉和图像识别、自然语言处理、语音识别和机器翻译、有限马尔科夫、动态规划、梯度策略算法和增强学习(Q-learning)等等。
讨论深度学习,肯定会讲到“深度(Depth)”一词,“深度”即层数。从一个输入中产生一个输出所涉及的计算可以通过一个流向图(flowgraph)来表示:流向图是一种能够表示计算的图,在这种图中每一个节点表示一个基本的计算以及一个计算的值,计算的结果被应用到这个节点的子节点的值。考虑这样一个计算集合,它可以被允许在每一个节点和可能的图结构中,并定义了一个函数族。输入节点没有父节点,输出节点没有子节点。这种流向图的一个特别属性是深度(depth):从一个输入到一个输出的最长路径的长度。
深度超过8层的神经网络才叫深度学习。含多个隐层的多层学习模型是深度学习的架构。深度学习可以通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度学习的”深度“是指从”输入层“到”输出层“所经历层次的数目,即”隐藏层“的层数,层数越多,深度也越深。所以越是复杂的选择问题,越需要深度的层次多。除了层数多外,每层”神经元“-黄色小圆圈的数目也要多。例如,AlphaGo的策略网络是13层,每一层的神经元数量为192个。
深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。多层的好处是可以用较少的参数表示复杂的函数。
深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。深度学习强调了模型结构的深度,突出了特征学习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。
深度学习的训练过程:1)自下上升非监督学习,从底层开始,一层一层的往顶层训练。采用无标定数据(有标定数据也可)分层训练各层参数,这是一个无监督训练过程,是和传统神经网络区别最大的部分,这个过程可以看作是featurelearning过程。
2)自顶向下的监督学习,通过带标签的数据去训练,误差自顶向下传输,对网络进行微调。基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一个有监督训练过程。
深度学习的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果。所以深度学习效果好很大程度上归功于第一步的featurelearning过程。
对深度学习而言,训练集就是用来求解神经网络的权重的,最后形成模型;而测试集,就是用来验证模型的准确度的。
深度学习领域研究包含:优化(Optimization),泛化(Generalization),表达(Representation)以及应用(Applications)。除了应用(Applications)之外每个部分又可以分成实践和理论两个方面。
根据解决问题、应用领域等不同,深度学习有许多不同实现形式:卷积神经网络(ConvolutionalNeuralNetworks)、深度置信网络(DeepBeliefNetworks)、受限玻尔兹曼机(RestrictedBoltzmannMachines)、深度玻尔兹曼机(DeepBoltzmannMachines)、递归自动编码器(RecursiveAutoencoders)、深度表达(DeepRepresentation)等。
深度学习的优点:深度学习提出了一种让计算机自动学习出模式特征的方法,并将特征学习融入到了建立模型的过程中,从而减少了人为设计特征造成的不完备性。而目前以深度学习为核心的某些机器学习应用,在满足特定条件的应用场景下,已经达到了超越现有算法的识别或分类性能。
深度学习的缺点:只能提供有限数据量的应用场景下,深度学习算法不能够对数据的规律进行无偏差的估计。为了达到很好的精度,需要大数据支撑。由于深度学习中图模型的复杂化导致算法的时间复杂度急剧提升,为了保证算法的实时性,需要更高的并行编程技巧和更多更好的硬件支持。因此,只有一些经济实力比较强大的科研机构或企业,才能够用深度学习来做一些前沿而实用的应用。
深度学习成功应用于计算机视觉、语音识别、记忆网络、自然语言处理等其他领域。
深度学习是关于自动学习需要建模的数据潜在分布的多层表达的复杂算法。深度学习算法自动的提取分类需要的低层次或者高层次特征。总之,深度学习是用多层次的分析和计算手段,得到结果的一种方法。
结语目前深度学习的发展引起其他它领域的革命。深度学习的火热得益于各行各业丰富的大数据发展和计算机计算能力的提升,同时也要归功于过去经验。今后深度学习将继续解决各种识别(Recognition)和演绎(AbilitytoAct)方面的相关问题。当然,机器学习本身也不是完美的,也不是解决世间任何机器学习问题的利器,深度学习目前仍有大量工作需要研究,不应该被放大到一个无所不能的程度。
人工神经网络的优缺点
炒作,为什么?NiklasDonges觉得,最近的神经网络是火的有点过了。当然,这也是有原因的:
原因之一:数据几十年来积累的海量数据,在2018年,迎来了最光辉的时刻!使得神经网络能够真正展示自己的潜力。数据之于神经网络,就好比波纹之于JoJo,气之于龟仙人。
数据越多,神经网络越浪!
相比之下,传统的机器学习算法在数据量面前,会触及一个天花板。一旦到达极限,传统机器学习算法将无法跟上数据增长的步伐,性能则停滞不前。我们用一张图来更直观的说明:
原因之二:计算能力另一个非常重要的原因是现在的计算能力。想想比特币矿机,单机就能达到那样恐怖的算力!
强大的算力能够处理更多数据,节省更多时间。根据人工智能领域的重要人物RayKurzweil的说法,计算能力是呈指数增长。
是不是想起了摩尔定律?
原因之三:算法增加深度学习流行度的第三个因素是算法本身已经取得的进步。这些最近在算法开发方面的突破,主要是因为它们比以前运行得更快,这就可以尽可能充分的的利用所有数据,做到不浪费。
原因之四:营销营销,就是给太上老君八卦炉扇火的那把芭蕉扇,可以把星星之火,扇成森林大火。
自1944年提出神经网络概念以来,已经被炒过一轮了,市场已经疲软,没人相信和投资了。
“深度学习”这个词,赋予了它一个新的名字,使新的炒作成为可能。这也是为什么,许多人错误地认为深度学习是一个新创造的领域。
此外,还有其他一些因素促成了深度学习的营销。例如第一个机器人公民Sophia,以及机器学习等主要领域的几项突破等等。
ProsvsCons抛开这些虚幻的因素,接下来NiklasDonges通过和传统机器学习算法的对比,阐述了神经网络的优缺点。
优点神经网络的主要优点,在于它们能够胜过几乎所有其他机器学习算法。例如在癌症检测中,对于性能的要求是非常高的,因为性能越好,可以治疗的人越多。
缺点1:著名的“黑匣子”问题
神经网络最着名的缺点,可能就是“黑匣子”性质。这意味着你不知道你的神经网络将会如何产出结果,更不知道为什么会产生这种结果。
例如,你把一张猫的图像放入神经网络,结果告诉你这是个汽车?。而且你也没办法找出问题的症结所在。
相反,像决策树这样的算法,是遵循一定的逻辑性,是可被解释的,你就很容易找出问题所在,并进行调整。在某些领域,这种可解释性非常重要!比如银行。
银行不会使用神经网络来预测一个人的信誉。银行需要向客户解释为什么没有获得贷款,而神经网络恰恰无法做出解释。
假如Quora决定使用神经网络算法删除垃圾帐户,结果就像是灭霸的手套一样,反正你也不知道它是根据什么规则定义一个账户是不是垃圾账户,结果就被灭了。
你觉得被删除账户的用户,会接受“我们也不清楚,这都是计算机决定的”这种解释吗?
以及,你能想象马云收购一家公司,只是因为“电脑”说他需要这样做?
缺点2:耗时耗力虽然有像Keras这样的库,使得神经网络的开发变得相当简单。但有时你需要更多地控制算法的细节,
例如试图用机器学习来解决一个从没有人做过的难题。你可能会使用Tensorflow,它是为你提供了更多的可能性。但它更复杂,开发需要更长的时间(取决于你想要构建的东西)。
那么对于公司管理层来说问题就出现了,真的值得动用昂贵的工程师花费数周时间吗?可能用其他算法,一天就搞定了。
缺点3:数据饕餮神经网络比传统的机器学习算法通常来说,需要更多的数据。数千,甚至数百万的标记样本才够。这么多的数据从哪儿来?显然是个非常让人头疼的问题。
相较而言,像朴素贝叶斯这样的简单算法,可以更好地处理小数据。
缺点4:贵这里的贵,指的是算力的昂贵,时间的昂贵。最先进的深度学习算法,实现真正深度神经网络的成功训练,可能需要数周才能完全训练完毕。
然而大多数传统的机器学习算法训练时间要少得多,从几分钟到几小时或几天不等。
神经网络所需的计算能力在很大程度上取决于数据的大小,也取决于网络的深度和复杂程度。只有一个层+50个神经元的神经网络,当然比1000个决策树的随机森林快得多。相比之下,有50个层的神经网络,将比仅具有10个决策树的随机森林慢得多。
总结虽然NiklasDonges认为神经网络被过度预期了。但他同时认为,我们生活在机器学习复兴中。因为它越来越亲民,越来越多的人能够用来构建有用的产品。
但一些现实问题,我们也不能忽视。目前,只有少数人了解可以用神经网络做什么,并且知道如何建立成功的数据科学团队,为公司带来真正的价值。
虽然我们拥有如此多的天才级博士工程师,他们深谙机器学习背后理论,却缺乏对商业方面的理解。
同时,企业的高管,CEO,并不了解深度学习。他们被忽悠的认为,公司面临的所有问题都会被人工智能在未来几年内解决掉?。
所以,我们需要更多人来衔接两者的鸿沟,从而产生更多对我们社会有用的产品。