雷锋网AI科技评论按:不管是AI也好,其他学科也好,学习、研究的过程中不断反思学科的历史,总结学科的发展现状,找出最重要的理念,总能让人能“吾道一以贯之”。软件工程师James Le近期根据他研究的经验总结出了AI研究必须要知道的十种深度学习方法,非常具有启发性。雷锋网AI科技评论编译如下。
人们对机器学习的兴趣在过去十年经历了爆炸式的发展。计算机科学项目中、业界会议中、媒体报道中,你都能够看到机器学习的影子。但是似乎所有关于机器学习的讨论中,人们常常会把AI能做什么和他们希望AI能做什么混为一谈。
从根本上来讲,机器学习其实就是使用算法从原始数据中提取信息,并以某种类型的模型表示出来;然后我们使用这个模型来推断我们尚未建模的其他数据。
神经网络作为机器学习的一类模型,它们已经存在了至少50年。神经网络的基本单元是节点,大致上模仿了哺乳动物大脑中的生物神经元的节点;节点之间的链接(也是模仿生物大脑)随着时间的推移(训练)而演化。
在上世纪八十年代中期和九十年代早期,许多重要的神经网络构架都已经做出了,不过要想获得好的结果还需要足够强大的计算能力和大体量的数据集,这些当时在当时很不理想,所以也导致人们对机器学习的热情逐渐冷淡了下来。在21世纪初,计算机的计算能力呈现了指数级的增长——业界见证了计算机技术的“寒武纪大爆发”,这在之前几乎是不可想象的。深度学习作为这个领域中一个重要的架构,在计算能力爆发式增长的十年中,赢得了许多重要的机器学习竞赛。这个红利的热度直到今年仍未降温;今天,我们看到在机器学习的每个角落里都会提到深度学习。
为了更深入地了解这些,我参加了一门“深度学习”课程,并开发了一个图像识别的神经网络以及基于循环神经网络(RNN)和长短项记忆(LSTM)的自然语言处理。可以去我的Github仓库中查看这些代码:
https://github.com/khanhnamle1994/deep-learning
最近,我也开始阅读一些深度学习方面的学术论文。下面这些是我收集到的几篇对深度学习领域的发展有重大影响的几篇论文:
1、Gradient-Based Learning Applied to Document Recognition (1998)
意义:向机器学习世界引进了卷积神经网络
作者:Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner
2、Deep Boltzmann Machines (2009)
意义:为玻尔兹曼机提出了一种新的学习算法,其中包含许多隐藏变量层。
作者:Ruslan Salakhutdinov, Geoffrey Hinton
3、Building High-Level Features Using Large-Scale Unsupervised Learning (2012)
意义:解决了仅从未标记的数据构建高层次、特定类别的特征检测器的问题。
作者:Quoc V. Le,Marc’Aurelio Ranzato,Rajat Monga,Matthieu Devin,Kai Chen,Greg S. Corrado,Jeff Dean,Andrew Y. Ng
4、DeCAF — A Deep Convolutional Activation Feature for Generic Visual Recognition (2013)
意义:释放了一个深度卷积激活特征的开源实现——DeCAF,以及所有相关的网络参数,使视觉研究人员能够深入地在一系列视觉概念学习范例中进行实验。
作者:Jeff Donahue,Yangqing Jia,Oriol Vinyals,Judy Hoffman,Ning Zhang,Eric Tzeng,Trevor Darrell
5、Playing Atari with Deep Reinforcement Learning (2016)
意义:提供了第一个可以使用强化学习从高维感官输入中直接学习控制策略的深度学习模型。
作者:Volodymyr Mnih,Koray Kavukcuoglu,David Silver,Alex Graves,Ioannis Antonoglou,Daan Wierstra,Martin Riedmiller(DeepMind 团队)
在这些学习和研究中,我发现大量非常有意思的知识点。在这里我将分享十个深度学习的方法,AI工程师可能会将这些应用到他们的机器学习问题当中。
不过,首先先让我们来定义一下什么是“深度学习”。对很多人来说,给“深度学习”下一个定义确实很有挑战,因为在过去的十年中,它的形式已经慢慢地发生了很大的变化。
先来在视觉上感受一下“深度学习”的地位。下图是AI、机器学习和深度学习三个概念的一个关系图。
AI的领域要相对较广泛,机器学习是AI的一个子领域,而深度学习是机器学习领域中的一个子集。
深度学习网络与“典型”的前馈多层网络之间是有一些区别的,如下:
深度学习网络比之前的网络有更多的神经元
深度学习网络具有更复杂的连接层的方式
深度学习网络需要用强大的计算能力来训练
深度学习网络能够进行自动特征提取
因此深度学习可以被定义为在以下四个基本网络框架中拥有大量参数和层的神经网络:
无监督预训练网络(Unsupervised Pre-trained Networks)
卷积神经网络(Convolutional Neural Networks)
循环神经网络(Recurrent Neural Networks)
递归神经网络 (Recursive Neural Networks)
在这篇文章中,我主要对后三个框架比较感兴趣。
卷积神经网络基本上就是用共享权重在空间中进行扩展的标准神经网络。设计CNN主要是为了通过内部卷积来识别图片,内部卷积可以看到待识别物体的边。
循环神经网络基本上是在时间上进行扩展的标准神经网络,因为边进入下一个时间步,而不是在同一时间步进入下一个层。设计RNN主要是为了识别序列,例如语音信号或者文本。它里面的循环意味着网络中存在短暂的记忆。
递归神经网络更类似于分层网络,其中输入序列没有真正的时间面,而是输入必须以树状方式分层处理。
以下10种方法可以应用于所有这些体系结构。
反向传播是“误差反向传播”的简称,它是一种计算函数(在神经网络中以函数形式存在)偏微分的方法。当你要用一个基于梯度的方法来解决一个最优问题时(注意梯度下降只是解决这类问题的一种方法),你希望在每一次迭代中计算函数梯度。
对于神经网络而言,目标函数具有合成的形式。那么如何计算梯度呢?一般情况下有两种常见的方法:
1)微分分析法。当你知道这个函数的形式时,你只需要用链式法则计算导数即可;
2)用有限差分方法来近似微分。这种方法的计算量很大,因为函数评估的数量是O(N),其中N是参数的数量。与微分分析法相比,这是比较昂贵的。不过,有限差分通常在调试时验证后端实现。
一个直观理解梯度下降的方法是去想象一条溯源山顶的河流。这条河流会沿着山势梯度的方向流向山麓下的最低点。
如果让人来走,可能就不一样了,你可能会先随便选一个方向,然后沿着这个方向的梯度向下走;过一会儿再随机换一个方向向下走;最后你发现自己差不多也到了谷底了。
数学化的理解就是:
随机梯度下降主要用来求解类似于如下求和形式的优化问题:
梯度下降法:
当n很大时,每次迭代计算所有的梯度会非常耗时。随机梯度下降的想法就是每次在Delta f_i 中随机选取一个计算代替上面的Delta f_i,以这个随机选取的方向作为下降的方向。这样的方法反而比梯度下降能够更快地到达(局部)最优解。
在训练模型的时候,通常会遇到这种情况:我们平衡模型的训练速度和损失(loss)后选择了相对合适的学习率(learning rate),但是训练集的损失下降到一定的程度后就不在下降了,比如training loss一直在0.7和0.9之间来回震荡,不能进一步下降。如下图所示:
遇到这种情况通常可以通过适当降低学习率(learning rate)来实现。但是,降低学习率又会延长训练所需的时间。
学习率衰减(learning rate decay)就是一种可以平衡这两者之间矛盾的解决方案。学习率衰减的基本思想是:学习率随着训练的进行逐渐衰减。
学习率衰减基本有两种实现方法:
线性衰减。例如:每过5个epochs学习率减半;
指数衰减。例如:每过5个epochs将学习率乘以0.1。
在当前的大规模神经网络中有两个缺点:
费时;
容易过拟合
Dropout 可以很好地解决这个问题。Dropout说的简单一点就是在前向传导的时候,让某个神经元的激活值以一定的概率p停止工作,示意图如下:
每次做完dropout,相当于从原始的网络中找到一个更瘦的网络。
Hinton在其论文中做了这样的类比,无性繁殖可以保留大段的优秀基因,而有性繁殖则将基因随机拆了又拆,破坏了大段基因的联合适应性;但是自然选择了有性繁殖,物竞天择,适者生存,可见有性繁殖的强大。dropout 也能达到同样的效果,它强迫一个神经单元,和随机挑选出来的其他神经单元共同工作,消除减弱了神经元节点间的联合适应性,增强了泛化能力。
池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的向下采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。
直觉上,这种机制能够有效地原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。
包括深度网络在内的神经网络需要仔细调整权重初始化和学习参数。批标准化使这些变得轻松许多。
权重问题:
无论权重的初始化如何,是随机的还是经验性的选择,它们离学习权重都会很远。考虑一个小批量,初期在所需的特征激活方面会有很多异常值。
深层神经网络本身是病态的,初始层中的微小扰动都会导致后面层的非常大的变化。
在反向传播过程中,这些现象会导致梯度弥散。这就意味着在学习权重产生所需要的输出前,必须对梯度的异常值进行补偿,这将导致需要额外的时段来收敛。
批量归一化使这些梯度从分散到正常值并在小批量范围内流向共同目标(通过归一化)。
学习率问题:一般来说,学习率需要保持较低的值,使得只有一小部分的梯度来校正权重,原因是要使异常激活的梯度不影响已学习到的激活。通过批量标准化,可以减少这些异常激活,因此也就可以使用更高的学习率来加速学习过程。
LSTM网络具有以下三个方面,使其与循环神经网络中的常见神经元不同:
1)它能够决定何时让输入进入神经元;
2)它能够决定何时记住上一个时间步中计算的内容;
3)它决定何时让输出传递到下一个时间步。
LSTM的美妙之处在于它能够根据当前的输入本身来决定所有这些。 所以你看下面的图表:
当前时间的输入信号x(t)决定所有上述3个点。 输入门决定点1,遗忘门决定点2,输出门决定点3。任何一条输入都能够采取所有这三个决定。这种设计其实是受到了我们大脑如何工作的启发,并且可以基于输入来处理突然的上下文切换。
词嵌入模型的目标是为每个词项学习一个高维密集表示,其中嵌入向量之间的相似性显示了相应词之间的语义或句法相似性。 Skip-gram是一个学习词嵌入算法的模型。
skip-gram模型(以及许多其他的词语嵌入模型)背后的主要思想如下:两个词项相似,如果它们共享相似的上下文。
换句话说,假设你有一个句子,例如“猫是哺乳动物”;如果你用“狗”而不是“猫”,这个句子还是一个有意义的句子。因此在这个例子中,“狗”和“猫”可以共享相同的上下文(即“是哺乳动物”)。
基于上述假设,你可以考虑一个上下文窗口(一个包含k个连续项的窗口),然后你跳过其中一个单词,试着去学习一个能够得到除跳过项外的所有项的神经网络,并预测跳过的这个项。如果两个词在一个大语料库中反复共享相似的语境,则这些词的嵌入向量将具有相近的向量。
在自然语言处理问题中,我们希望学习将文档中的每个单词表示为一个数字的向量,使得出现在相似的上下文中的单词具有彼此接近的向量。在连续的单词模型中,目标是能够使用围绕特定单词的上下文并预测特定单词。
我们通过在一个大的语料库中采取大量的句子来做到这一点,每当我们看到一个单词时,我们就提取周围的单词。 然后,我们将上下文单词输入到一个神经网络,并预测在这个上下文中间的单词。
当我们有成千上万个这样的上下文单词和中间词时,我们就有一个神经网络数据集的实例。 我们训练神经网络,最后编码的隐藏层输出表示了特定单词的嵌入。 恰巧,当我们对大量的句子进行训练时,类似语境中的单词得到相似的向量。
让我们想一下如何在CNN中处理一张图片。假设有一张图片,你对它进行卷积处理,然后你得到的输出是像素的组合,我们姑且称之为“边”吧。我们再次使用卷积,这时候你得到的输出将是边的组合,我们称之为“线”。如果再次使用卷积,那么你将得到线的组合,等等。
每一层都是在寻找相应的特定模式。你的神经网络最后一层一般会给出非常特定的模式。也许你在处理ImageNet,你的网络最后一层可能是在找孩子、狗或飞机或别的任何东西。如果你向前两层看,网络可能是在找眼睛、耳朵、嘴巴或者轮子。
深度卷积神经网络中的每一层的深入都是在构建越来越高层次的特征表示。最后两层会产生你输入模型的数据中的特定模式。换句话说,早期的层提取的特征则广泛得多,在提取的大量的类中有很多简单的模式。
迁移学习就是当你用一个数据集训练CNN时,砍掉最后的一(些)层,再用另一个不同的数据集重新训练最后一(些)层的模型。直观地说,你在重新训练模型来识别不同的高级层次特征。作为结果,训练时间大幅减少。所以当你没有足够的数据或者训练的资源时,迁移学习是非常有用的一个工具。
这篇文章只是展示了这些方法的一般概述。我建议阅读下面这些文章以获得对这些概念更详细的解释:
Andrew Beam's “Deep Learning 101”
Andrey Kurenkov's “A Brief History of Neural Nets and Deep Learning”
Adit Deshpande's “A Beginner’s Guide to Understanding Convolutional Neural Networks”
Chris Olah's “Understanding LSTM Networks”
Algobean's “Artificial Neural Networks”
Andrej Karpathy's “The Unreasonable Effectiveness of Recurrent Neural Networks”
深度学习非常注重技术,而对每一个新的想法却没有太多具体的解释。大多数新的idea只是用实验结果来证明它们的工作。深度学习就像玩乐高,掌握它有一定的挑战性,但是入门还是很容易的。
via towardsdatascience,雷锋网编译
人工智能赛博物理操作系统
AI-CPS OS
“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。
AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。
领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:
重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?
重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?
重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?
AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的数字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:
精细:这种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。
智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。
高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。
不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。
边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。
AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:
创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;
对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;
人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。
给决策制定者和商业领袖的建议:
超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;
迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新
评估未来的知识和技能类型;
制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开
发过程中确定更加明晰的标准和最佳实践;
重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临
较高失业风险的人群;
开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。
如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!
新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。
产业智能官 AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
长按上方二维码关注微信公众号: AI-CPS,更多信息回复:
新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能农业”、“智能金融”、“智能零售”、“智能城市”、“智能驾驶”;新模式:“财富空间”、“特色小镇”、“赛博物理”、“供应链金融”。
点击“阅读原文”,访问AI-CPS OS官网
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!
版权声明:由产业智能官(公众号ID:AI-CPS)推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com