本文目录
- 既然IP地址是全球唯一的,那么为什么很多路由器的默认IP一样
- 源于人脑的深度学习,到底是怎样学习的
- 刚出生宝宝被亲死亲吻的危害真的有这么大吗
- 巴洛克画家委拉斯贵支有哪些好作品
- 「对于请不要随便亲吻我的孩子,或诱发“亲吻病”」这一说法,你怎么看
- 什么是偏爱,对女朋友如何偏爱
- 偏爱的意思是什么
- 路由器的地址是不是大多都是192.168为什么要用这一组数字呢
既然IP地址是全球唯一的,那么为什么很多路由器的默认IP一样
你指的IP:192.168.1.1,这是内网保留地址使用。该路由器对外还是有一个公用IP地址的。就好比,某某小区叫建国路35号,里面的一栋栋楼就不会再编个36号,37号什么的。里面的就叫1栋201,2栋201。
建国路35号——》公用IP。这个城市维一的。
1栋201——》内部IP。
所以别的小区也有1栋201。
希望你能理解
源于人脑的深度学习,到底是怎样学习的
摘要: 深度学习可以完成需要高度抽象特征的人工智能任务,如语音识别、图像识别和检索、自然语言理解等。深层模型是包含多个隐藏层的人工神经网络,多层非线性结构使其具备强大的特征表达能力和对复杂任务建模能力。训练深层模型是长期以来的难题,近年来以层次化、逐层初始化为代表的一系列方法的提出给训练深层模型带来了希望,并在多个应用领域获得了成功。深层模型的并行化框架和训练加速方法是深度学习走向实用的重要基石,已有多个针对不同深度模型的开源实现,Google、Facebook、百度、腾讯等公司也实现了各自的并行化框架。深度学习是目前最接近人脑的智能学习方法,深度学习引爆的这场革命,将人工智能带上了一个新的台阶,将对一大批产品和服务产生深远影响。
1 深度学习的革命
人工智能(ArTIficial Intelligence),试图理解智能的实质,并制造出能以人类智能相似的方式做出反应的智能机器。如果说机器是人类手的延伸、交通工具是人类腿的延伸,那么人工智能就是人类大脑的延伸,甚至可以帮助人类自我进化,超越自我。人工智能也是计算机领域最前沿和最具神秘色彩的学科,科学家希望制造出代替人类思考的智能机器,艺术家将这一题材写进小说,搬上银幕,引发人们无限的遐想。然而,作为一门严肃的学科,人工智能在过去的半个多世纪中发展却不算顺利。过去的很多努力还是基于某些预设规则的快速搜索和推理,离真正的智能还有相当的距离,或者说距离创造像人类一样具有抽象学习能力的机器还很遥远。
近年来,深度学习(Deep Learning)直接尝试解决抽象认知的难题,并取得了突破性的进展。深度学习引爆的这场革命,将人工智能带上了一个新的台阶,不仅学术意义巨大,而且实用性很强,工业界也开始了大规模的投入,一大批产品将从中获益。
2006年,机器学习泰斗、多伦多大学计算机系教授Geoffery Hinton在Science发表文章,提出基于深度信念网络(Deep Belief Networks, DBN)可使用非监督的逐层贪心训练算法,为训练深度神经网络带来了希望。
2012年,Hinton又带领学生在目前最大的图像数据库ImageNet上,对分类问题取得了惊人的结果,将Top5错误率由26%大幅降低至15%。
2012年,由人工智能和机器学习顶级学者Andrew Ng和分布式系统顶级专家Jeff Dean领衔的梦幻阵容,开始打造Google Brain项目,用包含16000个CPU核的并行计算平台训练超过10亿个神经元的深度神经网络,在语音识别和图像识别等领域取得了突破性的进展。该系统通过分析YouTube上选取的视频,采用无监督的方式训练深度神经网络,可将图像自动聚类。在系统中输入“cat”后,结果在没有外界干涉的条件下,识别出了猫脸。
2012年,微软首席研究官Rick Rashid在21世纪的计算大会上演示了一套自动同声传译系统,将他的英文演讲实时转换成与他音色相近、字正腔圆的中文演讲。同声传译需要经历语音识别、机器翻译、语音合成三个步骤。该系统一气呵成,流畅的效果赢得了一致认可,深度学习则是这一系统中的关键技术。
2013年,Google收购了一家叫DNN Research的神经网络初创公司,这家公司只有三个人,Geoffrey Hinton和他的两个学生。这次收购并不涉及任何产品和服务,只是希望Hinton可以将深度学习打造为支持Google未来的核心技术。同年,纽约大学教授,深度学习专家Yann LeCun加盟Facebook,出任人工智能实验室主任,负责深度学习的研发工作,利用深度学习探寻用户图片等信息中蕴含的海量信息,希望在未来能给用户提供更智能化的产品使用体验。
2013年,百度成立了百度研究院及下属的深度学习研究所(IDL),将深度学习应用于语音识别和图像识别、检索,以及广告CTR预估(Click-Through-Rate PredicTIon,pCTR),其中图片检索达到了国际领先水平。2014年又将Andrew Ng招致麾下,Andrew Ng是斯坦福大学人工智能实验室主任,入选过《时代》杂志年度全球最有影响力100人,是16位科技界的代表之一。
如果说Hinton 2006年发表在《Science》杂志上的论文只是在学术界掀起了对深度学习的研究热潮,那么近年来各大巨头公司争相跟进,将顶级人才从学术界争抢到工业界,则标志着深度学习真正进入了实用阶段,将对一系列产品和服务产生深远影响,成为它们背后强大的技术引擎。
目前,深度学习在几个主要领域都获得了突破性的进展:在语音识别领域,深度学习用深层模型替换声学模型中的混合高斯模型(Gaussian Mixture Model, GMM),获得了相对30%左右的错误率降低;在图像识别领域,通过构造深度卷积神经网络(CNN),将Top5错误率由26%大幅降低至15%,又通过加大加深网络结构,进一步降低到11%;在自然语言处理领域,深度学习基本获得了与其他方法水平相当的结果,但可以免去繁琐的特征提取步骤。可以说到目前为止,深度学习是最接近人类大脑的智能学习方法。
2深层模型的基本结构
深度学习采用的模型为深层神经网络(Deep Neural Networks,DNN)模型,即包含多个隐藏层(Hidden Layer,也称隐含层)的神经网络(Neural Networks,NN)。深度学习利用模型中的隐藏层,通过特征组合的方式,逐层将原始输入转化为浅层特征,中层特征,高层特征直至最终的任务目标。
深度学习源于人工神经网络的研究,先来回顾一下人工神经网络。一个神经元如下图所示:
这个神经元接受三个输入x1,x2,x3,神经元输出为
其中W1, W2, W3和b为神经元的参数,f(z)称为激活函数,一种典型的激活函数为Sigmoid函数,即
其图像为
神经网络则是多个神经元组成的网络,一个简单的神经网络如下图所示
使用圆圈来表示神经网络的输入,标上“+1”的圆圈称为偏置节点,也就是截距项。神经网络最左边的一层叫做输入层(本例中,有3个输入单元,偏置单元不计);最右的一层叫做输出层(本例中,输出层有2个节点);中间的节点叫做隐藏层(本例中,有2个隐藏层,分别包含3个和2个神经元,偏置单元同样不计),因为不能在训练样本集中观测到它们的值。神经元网络中的每一条连线对应一个连接参数,连线个数对应网络的参数个数(本例共有4&TImes3 + 4&TImes2 +3×2=26个参数)。求解这个的神经网络,需要(x(i),y(i))的样本集,其中x(i)是3维向量,y(i)是2维向量。
上图算是一个浅层的神经网络,下图是一个用于语音识别的深层神经网络。具有1个输入层,4个隐藏层和1个输出层,相邻两层的神经元全部连接。
3 选择深层模型的原因
为什么要构造包含这么多隐藏层的深层网络结构呢?背后有一些理论依据:
3.1天然层次化的特征
对于很多训练任务来说,特征具有天然的层次结构。以语音、图像、文本为例,层次结构大概如下表所示。
以图像识别为例,图像的原始输入是像素,相邻像素组成线条,多个线条组成纹理,进一步形成图案,图案构成了物体的局部,直至整个物体的样子。不难发现,可以找到原始输入和浅层特征之间的联系,再通过中层特征,一步一步获得和高层特征的联系。想要从原始输入直接跨越到高层特征,无疑是困难的。
3.2 仿生学依据
人工神经网络本身就是对人类神经系统的模拟,这种模拟具有仿生学的依据。1981年,David Hubel 和Torsten Wiesel发现可视皮层是分层的。人类的视觉系统包含了不同的视觉神经元,这些神经元与瞳孔所受的刺激(系统输入)之间存在着某种对应关系(神经元之间的连接参数),即受到某种刺激后(对于给定的输入),某些神经元就会活跃(被激活)。这证实了人类神经系统和大脑的工作其实是不断将低级抽象传导为高级抽象的过程,高层特征是低层特征的组合,越到高层特征就越抽象。
3.3 特征的层次可表示性
特征的层次可表示性也得到了证实。1995年前后,Bruno Olshausen和David Field收集了很多黑白风景照,从这些照片中找到了400个16×16的基本碎片,然后从照片中再找到其他一些同样大小的碎片,希望将其他碎片表示为这400个基本碎片的线性组合,并使误差尽可能小,使用的碎片尽可能少。表示完成后,再固定其他碎片,选择更合适的基本碎片组合优化近似结果。反复迭代后,得到了可以表示其他碎片的最佳的基本碎片组合。他们发现,这些基本碎片组合都是不同物体不同方向的边缘线。
这说明可以通过有效的特征提取,将像素抽象成更高级的特征。类似的结果也适用于语音特征。
4 从浅层模型到深层模型
前文谈到了深层模型的结构和它的优势。事实上,深层模型具有强大的表达能力,并可以像人类一样有效提取高级特征,并不是新的发现。那么为什么深层模型直到最近几年才开始得到广泛的关注和应用呢?还是从传统的机器学习方法和浅层学习谈起。
4.1浅层模型及训练方法
反向传播算法(Back Propagation,BP算法)。
上世纪八九十年代,人们提出了一系列机器学习模型,应用最为广泛的包括支持向量机(Support Vector Machine,SVM),这两种模型分别可以看作包含1个隐藏层和没有隐藏层的浅层模型。训练时可以利用反向传播算法计算梯度,再用梯度下降方法在参数空间中寻找最优解。浅层模型往往具有凸代价函数,理论分析相对简单,训练方法也容易掌握,取得了很多成功的应用。
4.2 深层模型的训练难度
浅层模型的局限性在于有限参数和计算单元,对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定的制约。深层模型恰恰可以克服浅层模型的这一弱点,然而应用反向传播和梯度下降来训练深层模型,就面临几个突出的问题:
1.局部最优。与浅层模型的代价函数不同,深层模型的每个神经元都是非线性变换,代价函数是高度非凸函数,采用梯度下降的方法容易陷入局部最优。
2.梯度弥散。使用反向传播算法传播梯度的时候,随着传播深度的增加,梯度的幅度会急剧减小,会导致浅层神经元的权重更新非常缓慢,不能有效学习。这样一来,深层模型也就变成了前几层相对固定,只能改变最后几层的浅层模型。
3.数据获龋深层模型的表达能力强大,模型的参数也相应增加。对于训练如此多参数的模型,小训练数据集是不能实现的,需要海量的有标记的数据,否则只能导致严重的过拟合(Over fitting)。
4.3 深层模型的训练方法
尽管挑战很大,Hinton教授并没有放弃努力,他30年来一直从事相关研究,终于有了突破性的进展。2006年,他在《Science》上发表了一篇文章,掀起了深度学习在学术界和工业界的浪潮。这篇文章的两个主要观点是:
1.多隐藏层的人工神经网络具有优异的特征学习能力,学习到的特征对数据有更本质的刻画,从而有利于可视化或分类。
2.深度神经网络在训练上的难度,可以通过“逐层初始化”(Layer-wise Pre-training)来有效克服,文中给出了无监督的逐层初始化方法。
优异的特征刻画能力前文已经提到,不再累述,下面重点解释一下“逐层初始化”的方法。
给定原始输入后,先要训练模型的第一层,即图中左侧的黑色框。黑色框可以看作是一个编码器,将原始输入编码为第一层的初级特征,可以将编码器看作模型的一种“认知”。为了验证这些特征确实是输入的一种抽象表示,且没有丢失太多信息,需要引入一个对应的解码器,即图中左侧的灰色框,可以看作模型的“生成”。为了让认知和生成达成一致,就要求原始输入通过编码再解码,可以大致还原为原始输入。因此将原始输入与其编码再解码之后的误差定义为代价函数,同时训练编码器和解码器。训练收敛后,编码器就是我们要的第一层模型,而解码器则不再需要了。这时我们得到了原始数据的第一层抽象。固定第一层模型,原始输入就映射成第一层抽象,将其当作输入,如法炮制,可以继续训练出第二层模型,再根据前两层模型训练出第三层模型,以此类推,直至训练出最高层模型。
逐层初始化完成后,就可以用有标签的数据,采用反向传播算法对模型进行整体有监督的训练了。这一步可看作对多层模型整体的精细调整。由于深层模型具有很多局部最优解,模型初始化的位置将很大程度上决定最终模型的质量。“逐层初始化”的步骤就是让模型处于一个较为接近全局最优的位置,从而获得更好的效果。
4.4 浅层模型和深层模型的对比
浅层模型有一个重要的特点,需要依靠人工经验来抽取样本的特征,模型的输入是这些已经选取好的特征,模型只用来负责分类和预测。在浅层模型中,最重要的往往不是模型的优劣,而是特征的选取的优劣。因此大多数人力都投入到特征的开发和筛选中来,不但需要对任务问题领域有深刻的理解,还要花费大量时间反复实验摸索,这也限制了浅层模型的效果。
事实上,逐层初始化深层模型也可以看作是特征学习的过程,通过隐藏层对原始输入的一步一步抽象表示,来学习原始输入的数据结构,找到更有用的特征,从而最终提高分类问题的准确性。在得到有效特征之后,模型整体训练也可以水到渠成。
5 深层模型的层次组件
深层模型是包含多个隐藏层的神经网络,每一层的具体结构又是怎样的呢?本节介绍一些常见的深层模型基本层次组件。
5.1 自编码器(Auto-Encoder)
一种常见的深层模型是由自编码器(Auto-Encoder)构造的。自编码器可以利用一组无标签的训练数据{x(1), x(2), … }(其中x(i)是一个n维向量)进行无监督的模型训练。它采用反向传播算法,让目标值接近输入值。下图是一个自编码器的示例:
自编码器尝试训练一个恒等函数,让输出接近等于输入值,恒等函数看似没有学习的意义,但考虑到隐藏层神经元的数目(本例中为3个)小于输入向量的维数(本例中为6维),事实上隐藏层就变成了输入数据的一种压缩的表示,或说是抽象的简化表示。如果网络的输入是完全随机的,将高维向量压缩成低维向量会难以实现。但训练数据往往隐含着特定的结构,自编码器就会学到这些数据的相关性,从而得到有效的压缩表示。实际训练后,如果代价函数越小,就说明输入和输出越接近,也就说明这个编码器越靠谱。当然,自编码器训练完成后,实际使用时只需要它的前一层,即编码部分,解码部分就没用了。
稀疏自编码器(Sparse Auto-Encoder)是自编码器的一个变体,它在自编码器的基础上加入正则化(Regularity)。正则化是在代价函数中加入抑制项,希望隐藏层节点的平均激活值接近于0,有了正则化的约束,输入数据可以用少数隐藏节点表达。之所以采用稀疏自编码器,是因为稀疏的表达往往比稠密的表达更有效,人脑神经系统也是稀疏连接,每个神经元只与少数神经元连接。
降噪自编码器是另一种自编码器的变体。通过在训练数据中加入噪声,可训练出对输入信号更加鲁棒的表达,从而提升模型的泛化能力,可以更好地应对实际预测时夹杂在数据中的噪声。
得到自编码器后,我们还想进一步了解自编码器到底学到了什么。例如,在10×10的图像上训练一个稀疏自编码器,然后对于每个隐藏神经元,找到什么样的图像可以让隐藏神经元获得最大程度的激励,即这个隐藏神经元学习到了什么样的特征。将100个隐藏神经元的特征都找出来,得到了如下100幅图像:
可以看出,这100幅图像具备了从不同方向检测物体边缘的能力。显然,这样的能力对后续的图像识别很有帮助。
5.2 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)
受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)是一个二部图,一层是输入层(v),另一层是隐藏层(h),假设所有节点都是随机二值变量节点,只能取值0或1,同时假设全概率分布p(v, h)满足Boltzmann分布。
由于同层节点之间没有连接,因此已知输入层的情况下,隐藏层的各节点是条件独立的;反之,已知隐藏层的情况下,输入层各节点也是条件独立的。同时,可以根据Boltzmann分布,当输入v时通过p(h|v)生成隐藏层,得到隐藏层之后再通过p(v|h)生成输入层。相信很多读者已经猜到了,可以按照训练其他网络类似的思路,通过调整参数,希望通过输入v生成的h,再生成的v’与v尽可能接近,则说明隐藏层h是输入层v的另外一种表示。这样就可以作为深层模型的基本层次组件了。全部用RBM形成的深层模型为深度玻尔兹曼机(Deep Boltzmann Machine,DBM)。如果将靠近输入层的部分替换为贝叶斯信念网络,即有向图模型,而在远离输入层的部分仍然使用RBM,则称为深度信念网络(Deep Belief Networks,DBN)。
5.3 卷积神经网络(Convolutional Neural Networks, CNN)
以上介绍的编码器都是全连通网络,可以完成10×10的图像识别,如手写体数字识别问题。然而对于更大的图像,如100×100的图像,如果要学习100个特征,则需要1,000,000个参数,计算时间会大大增加。解决这种尺寸图像识别的有效方法是利用图像的局部性,构造一个部分联通的网络。一种最常见的网络是卷积神经网络(Convolutional Neural Networks,CNN),它利用图像固有的特性,即图像局部的统计特性与其他局部是一样的。因此从某个局部学习来的特征同样适用于另外的局部,对于这个图像上的所有位置,都能使用同样的特征。
具体地说,假设有一幅100×100的图像,要从中学习一个10×10的局部图像特征的神经元,如果采用全连接的方式,100×100维的输入到这个神经元需要有10000个连接权重参数。而采用卷积核的方式,只有10×10=100个参数权重,卷积核可以看作一个10×10的小窗口,在图像上上下左右移动,走遍图像中每个10×10的位置(共有91×91个位置)。每移动到一个位置,则将该位置的输入与卷积核对应位置的参数相乘再累加,得到一个输出值(输出值是91×91的图像)。卷积核的特点是连接数虽然很多,有91×91×10×10个连接,但是参数只有10×10=100个,参数数目大大减小,训练也变得容易了,并且不容易产生过拟合。当然,一个神经元只能提取一个特征,要提取多个特征就要多个卷积核。
下图揭示了对一幅8×8维图像使用卷积方法提取特征的示意过程。其中使用了3×3的卷积核,走遍图像中每个3×3的位置后,最终得到6×6维的输出图像:
如图所示是Hinton的研究小组在ImageNet竞赛中使用的卷积神经网络,共有5个卷积层,每层分别有96,256,384,384和256个卷积核,每层卷积核的大小分别为11×11,5×5,3×3,3×3和3×3。网络的最后两层是全连接层。
6 深度学习的训练加速
深层模型训练需要各种技巧,例如网络结构的选取,神经元个数的设定,权重参数的初始化,学习率的调整,Mini-batch的控制等等。即便对这些技巧十分精通,实践中也要多次训练,反复摸索尝试。此外,深层模型参数多,计算量大,训练数据的规模也更大,需要消耗很多计算资源。如果可以让训练加速,就可以在同样的时间内多尝试几个新主意,多调试几组参数,工作效率会明显提升,对于大规模的训练数据和模型来说,更可以将难以完成的任务变成可能。这一节就谈谈深层模型的训练加速方法。
6.1 GPU加速
矢量化编程是提高算法速度的一种有效方法。为了提升特定数值运算操作(如矩阵相乘、矩阵相加、矩阵-向量乘法等)的速度,数值计算和并行计算的研究人员已经努力了几十年。矢量化编程强调单一指令并行操作多条相似数据,形成单指令流多数据流(SIMD)的编程泛型。深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矢量化的形式。然而,在单个CPU上执行时,矢量运算会被展开成循环的形式,本质上还是串行执行。
GPU(Graphic Process Units,图形处理器)的众核体系结构包含几千个流处理器,可将矢量运算并行化执行,大幅缩短计算时间。随着NVIDIA、AMD等公司不断推进其GPU的大规模并行架构支持,面向通用计算的GPU(General-Purposed GPU, GPGPU)已成为加速可并行应用程序的重要手段。得益于GPU众核(many-core)体系结构,程序在GPU系统上的运行速度相较于单核CPU往往提升几十倍乃至上千倍。目前GPU已经发展到了较为成熟的阶段,受益最大的是科学计算领域,典型的成功案例包括多体问题(N-Body Problem)、蛋白质分子建模、医学成像分析、金融计算、密码计算等。
利用GPU来训练深度神经网络,可以充分发挥其数以千计计算核心的高效并行计算能力,在使用海量训练数据的场景下,所耗费的时间大幅缩短,占用的服务器也更少。如果对针对适当的深度神经网络进行合理优化,一块GPU卡可相当于数十甚至上百台CPU服务器的计算能力,因此GPU已经成为业界在深度学习模型训练方面的首选解决方案。
6.2数据并行
数据并行是指对训练数据做切分,同时采用多个模型实例,对多个分片的数据并行训练。
要完成数据并行需要做参数交换,通常由一个参数服务器(Parameter Server)来帮助完成。在训练的过程中,多个训练过程相互独立,训练的结果,即模型的变化量ΔW需要汇报给参数服务器,由参数服务器负责更新为最新的模型W’ = W – η ∙ ΔW,然后再将最新的模型W’分发给训练程序,以便从新的起点开始训练。
数据并行有同步模式和异步模式之分。同步模式中,所有训练程序同时训练一个批次的训练数据,完成后经过同步,再同时交换参数。参数交换完成后所有的训练程序就有了共同的新模型作为起点,再训练下一个批次。而异步模式中,训练程序完成一个批次的训练数据,立即和参数服务器交换参数,不考虑其他训练程序的状态。异步模式中一个训练程序的最新结果不会立刻体现在其他训练程序中,直到他们进行下次参数交换。
参数服务器只是一个逻辑上的概念,不一定部署为独立的一台服务器。有时候它会附属在某一个训练程序上,有时也会将参数服务器按照模型划分为不同的分片,分别部署。
6.3模型并行
模型并行将模型拆分成几个分片,由几个训练单元分别持有,共同协作完成训练。当一个神经元的输入来自另一个训练单元上的神经元的输出时,产生通信开销。
多数情况下,模型并行带来的通信开销和同步消耗超过数据并行,因此加速比也不及数据并行。但对于单机内存无法容纳的大模型来说,模型并行是一个很好的选择。令人遗憾的是,数据并行和模型并行都不能无限扩展。数据并行的训练程序太多时,不得不减小学习率,以保证训练过程的平稳;模型并行的分片太多时,神经元输出值的交换量会急剧增加,效率大幅下降。因此,同时进行模型并行和数据并行也是一种常见的方案。如下图所示,4个GPU分为两组,GPU0,1为一组模型并行,GPU2,3为另一组,每组模型并行在计算过程中交换输出值和残差。两组GPU之间形成数据并行,Mini-batch结束后交换模型权重,考虑到模型的蓝色部分由GPU0和GPU2持有,而黄色部分由GPU1和GPU3持有,因此只有同色的GPU之间需要交换权重。
6.4计算集群
搭建CPU集群用于深度神经网络模型训练也是业界常用的解决方案,其优势在于利用大规模分布式计算集群的强大计算能力,利用模型可分布式存储、参数可异步通信的特点,达到快速训练深层模型的目的。
CPU集群方案的基本架构包含用于执行训练任务的Worker、用于分布式存储分发模型的参数服务器(Parameter Server)和用于协调整体任务的主控程序(Master)。CPU集群方案适合训练GPU内存难以容纳的大模型,以及稀疏连接神经网络。Andrew Ng和Jeff Dean在Google用1000台CPU服务器,完成了模型并行和Downpour SGD数据并行的深度神经网络训练。
结合GPU计算和集群计算技术,构建GPU集群正在成为加速大规模深度神经网络训练的有效解决方案。GPU集群搭建在CPU-GPU系统之上,采用万兆网卡或Infiniband等更加快速的网络通信设施,以及树形拓扑等逻辑网络拓扑结构。在发挥出单节点较高计算能力的基础上,再充分挖掘集群中多台服务器的协同计算能力,进一步加速大规模训练任务。
7 深度学习的软件工具及平台
目前,在深度学习系统实现方面,已有诸多较为成熟的软件工具和平台。
7.1 开源软件
在开源社区,主要有以下较为成熟的软件工具:
Kaldi是一个基于C++和CUDA的语音识别工具集,提供给语音识别的研究人员使用。Kaldi中既实现了用单个GPU加速的深度神经网络SGD训练,也实现了CPU多线程加速的深度神经网络SGD训练。
Cuda-convnet基于C++/CUDA编写,采用反向传播算法的深度卷积神经网络实现。
Caffe提供了在CPU以及GPU上的快速卷积神经网络实现,同时提供训练算法,使用NVIDIA K40或Titan GPU可以1天完成多于40,000,000张图片的训练。
Theano提供了在深度学习数学计算方面的Python库,它整合了NumPy矩阵计算库,可以运行在GPU上,并提供良好的算法上的扩展性。
OverFeat是由纽约大学CILVR实验室开发的基于卷积神经网络系统,主要应用场景为图像识别和图像特征提取。
Torch7是一个为机器学习算法提供广泛支持的科学计算框架,其中的神经网络工具包(Package)实现了均方标准差代价函数、非线性激活函数和梯度下降训练神经网络的算法等基础模块,可以方便地配置出目标多层神经网络开展训练实验。
7.2 工业界平台
在工业界,Google、Facebook、百度、腾讯等公司都实现了自己的软件框架:
Google的DistBelief系统是CPU集群实现的数据并行和模型并行框架,集群内使用上万CPU core来训练多达10亿参数的深度神经网络模型。DistBelief应用的主要算法有Downpour SGD和L-BFGS,支持的目标应用有语音识别和2.1万类目的图像分类。
Google的COTS HPC系统是GPU实现的数据并行和模型并行框架,GPU服务器间使用了Infiniband连接,并由MPI控制通信。COTS可以用3台GPU服务器在数天内完成对10亿参数的深度神经网络训练。
Facebook实现了多GPU训练深度卷积神经网络的并行框架,结合数据并行和模型并行的方式来训练CNN模型,使用4张NVIDIA Titan GPU可在数天内训练ImageNet的1000分类网络。
百度搭建了Paddle(Parallel Asynchonous Distributed Deep Learning)多机GPU训练平台。将数据分布到不同机器,通过Parameter Server协调各机器训练。Paddle支持数据并行和模型并行。
腾讯深度学习平台(Mariana)是为加速深度学习模型训练而开发的并行化平台,包括深度神经网络的多GPU数据并行框架,深度卷积神经网络的多GPU模型并行和数据并行框架,以及深度神经网络的CPU集群框架。Mariana基于特定应用的训练场景,设计定制化的并行化训练平台,支持了语音识别、图像识别,并积极探索在广告推荐中的应用。
8 总结
近年来人工智能领域掀起了深度学习的浪潮,从学术界到工业界都热情高涨。深度学习尝试解决人工智能中抽象认知的难题,从理论分析和应用方面都获得了很大的成功。可以说深度学习是目前最接近人脑的智能学习方法。
深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,并展现了强大的学习数据集本质和高度抽象化特征的能力。逐层初始化等训练方法显著提升了深层模型的可学习型。与传统的浅层模型相比,深层模型经过了若干层非线性变换,带给模型强大的表达能力,从而有条件为更复杂的任务建模。与人工特征工程相比,自动学习特征,更能挖掘出数据中丰富的内在信息,并具备更强的可扩展性。深度学习顺应了大数据的趋势,有了充足的训练样本,复杂的深层模型可以充分发挥其潜力,挖掘出海量数据中蕴含的丰富信息。强有力的基础设施和定制化的并行计算框架,让以往不可想象的训练任务加速完成,为深度学习走向实用奠定了坚实的基矗已有Kaldi,Cuda-convnet,Caffe等多个针对不同深度模型的开源实现,Google、Facebook、百度、腾讯等公司也实现了各自的并行化框架。
深度学习引爆的这场革命,将人工智能带上了一个新的台阶,不仅学术意义巨大,而且实用性很强,深度学习将成为一大批产品和服务背后强大的技术引擎。
参考文献
Geoffery E. Hinton, Salakhutdinov RR. Reducing the dimensionality of data with neural networks. Science. 2006 Jul 28;313(5786):504-7.
ImageNet Classification with Deep Convolutional Neural Networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, NIPS 2012.
Q.V. Le, M.A. Ranzato, R. Monga, M. Devin, K. Chen, G.S. Corrado, J. Dean, A.Y. Ng. Building high-level features using large scale unsupervised learning. ICML, 2012.
Rick Rashid, Speech Recognition Breakthrough for the Spoken, Translated Word?v=Nu-nlQqFCKg
NYU “Deep Learning” Professor LeCun Will Lead Facebook’s New Artificial Intelligence Lab.
Stanford deep learning tutorial
A Primer on Deep Learning
The Nobel Prize in Physiology or Medicine 1981.
Bruno A. Olshausen & David J. Field, Emergence of simple-cell receptive field properties by learning a sparse code for natural images. Nature. Vol 381. 13 June, 1996 ~little/cpsc425/olshausen_field_nature_1996.pdf
Back propagation algorithm
余凯,深度学习-机器学习的新浪潮,Technical News程序天下事
Support Vector Machine
Logistic Regression
Deep Networks Overview :_Overview
Y. LeCun and Y. Bengio. Convolutional networks for images, speech, and time-series. In M. A. Arbib, editor, The Handbook of Brain Theory and Neural Networks. MIT Press, 1995
Introduction to Convolutional neural network
Dean, J., Corrado, G.S., Monga, R., et al, Ng, A. Y. Large Scale Distributed Deep Networks. In Proceedings of the Neural Information Processing Systems (NIPS’12) (Lake Tahoe, Nevada, United States, December 3–6, 2012). Curran Associates, Inc, 57 Morehouse Lane, Red Hook, NY, 2013, 1223-1232.
Kaldi project
Povey, D., Ghoshal, A. Boulianne, G., et al, Vesely, K. Kaldi. The Kaldi Speech Recognition Toolkit. in Proceedings of IEEE 2011 Workshop on Automatic Speech Recognition and Understanding(ASRU 2011) (Hilton Waikoloa Village, Big Island, Hawaii, US, December 11-15, 2011). IEEE Signal Processing Society. IEEE Catalog No.: CFP11SRW-USB.
cuda-convent https://code.google.com/p/cuda-convnet/
Krizhevsky, A., Sutskever, I., and Hinton, G.E. ImageNet Classification with Deep Convolutional Neural Networks. In Proceedings of the Neural Information Processing Systems (NIPS’12) (Lake Tahoe, Nevada, United States, December 3–6, 2012). Curran Associates, Inc, 57 Morehouse Lane, Red Hook, NY, 2013, 1097-1106.
Krizhevsky, A. Parallelizing Convolutional Neural Networks. in tutorial of IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2014). (Columbus, Ohio, USA, June 23-28, 2014). 2014.
caffe
Jia, Y. Q. Caffe: An Open Source Convolutional Architecture for Fast Feature Embedding. (2013).
Theano https://github.com/Theano/Theano
J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley and Y. Bengio. Theano: A CPU and GPU Math Expression Compiler. Proceedings of the Python for Scientific Computing Conference (SciPy) 2010. June 30 – July 3, Austin, TX.
Overfeat ?id=code:start
Torch7
Coates, A., Huval, B., Wang, T., Wu, D. J., Ng, A. Y. Deep learning with COTS HPC systems. In Proceedings of the 30th International Conference on Machine Learning (ICML’13) (Atlanta, Georgia, USA, June 16–21, 2013). JMLR: W&CP volume 28(3), 2013, 1337-1345.
(February 2014)
Kaiyu, Large-scale Deep Learning at Baidu, ACM International Conference on Information and Knowledge Management (CIKM 2013)
aaronzou, Mariana深度学习在腾讯的平台化和应用实践
Geoffrey E. Hinton, Simon Osindero, Yee-Whye Teh, A fast learning algorithm for deep belief nets Neural Compute, 18(7), 1527-54 (2006)
Andrew Ng. Machine Learning and AI via Brain simulations,
https://forum.stanford.edu/events/2011slides/plenary/2011plenaryNg.pdf
Geoffrey Hinton:UCLTutorial on: Deep Belief Nets
Krizhevsky, Alex. “ImageNet Classification with Deep Convolutional Neural Networks”. Retrieved 17 November 2013.
“Convolutional Neural Networks (LeNet) – DeepLearning 0.1 documentation”. DeepLearning 0.1. LISA Lab. Retrieved 31 August 2013.
Bengio, Learning Deep Architectures for AI, ~bengioy/papers/ftml_book.pdf;
Deep Learning
Deep Learning ~yann/research/deep/
Introduction to Deep Learning.
Google的猫脸识别:人工智能的新突破
Andrew Ng’s talk video:
Invited talk “A Tutorial on Deep Learning” by Dr. Kai Yu
刚出生宝宝被亲死亲吻的危害真的有这么大吗
虽然是个比较极端的例子,但的确是这样的!
美国儿科学会警告父母:不要小瞧疱疹,它们很可能会引发重大疾病。尤其是新生儿的疱疹。
许多新手妈妈们或许还不知道什么是疱疹。疱疹病毒又分为口腔疱疹病毒和生殖器疱疹病毒。根据疾病防控中心的统计,超过一半的人都携带疱疹病毒。
三个月以下的小baby是无法抵御这种病毒的,严重的话甚至有致命威胁。
口腔疱疹病毒可以通过亲吻传染给婴儿。
对小宝宝来说,病毒可以攻击宝宝的肝脏,肺部,中枢神经系统,皮肤,眼睛和嘴巴。即使是有药物治疗,美国儿科学会依旧认为在疱疹严重的情况下可能导致死亡。
婴儿疱疹的一些症状:
❶ 皮疹
❷ 发热
❸ 在宝宝出生的第一个月不停的流眼泪
❹ 食欲不振
“唇疱疹对宝宝来说可能是致命的,如果婴儿感染了这种疾病,可能会导致肝脏和大脑的损伤。所以不要随意让任何人亲吻你的宝宝,即使他们看起来不像是有疱疹疾病的人。”
巴洛克画家委拉斯贵支有哪些好作品
从艺术史上来说委拉斯贵支最有名的应该是《宫娥》,但是我最先接触到的却是《照镜的维纳斯》因为这张画陈丹青老师临摹过,并且在国内展览中展出过。而我大学的老师正好是陈丹青在清华大学美术学院那几年所带的研究生,所以说,整个大学期间,一直在学习委拉斯贵支是如何画画的。
委拉斯贵支年少成名,一直顺风顺水。下面这张是艺术家19岁时候的作品《一位煎鸡蛋的老妇人》,如果大家有机会把这张图放大看的话,能够看清楚艺术家对每一个形体的认真态度。跟他晚年完成的《照镜的维纳斯》比较少了一些洒脱,但是非常严谨。
委拉斯贵支23岁就成为当时西班牙的国王菲利普四世的御用画家,可以说是年少出名了。他一生画过多张关于菲利普四世的肖像。
17世纪的著名的艺术家一般接受皇室或者教廷的供养,而下面的教皇像是委拉斯贵支在51岁那年创作的。高高在上的教皇被艺术家表现的像一个狡诈的商人。据传教皇看到这张作品时,因为过于传神,而无话可说。
委拉斯贵支是1599出生的,1660年去世的,而他最著名的《宫娥》画于1656年。这张画本身是菲利普四世给以他的女儿为主角的一张画,但是远处的国王和艺术家本人,无疑总是引导着观众的视线。
要看委拉斯贵支的作品,下面这张画不得不了解,这是艺术家人生当中的最后一张画《纺织者》。后世学者解读这张作品时把它定以为艺术家对自己一生的评价。“要创造出伟大的艺术作品,既需要伟大的创造力,也需要艰苦的技术工作。”
如果喜欢我的分享,记得点赞、评论
「对于请不要随便亲吻我的孩子,或诱发“亲吻病”」这一说法,你怎么看
孩子EB病毒感染,症状像感冒,目前进入高发期,老师和家长要注意
请不要亲我的孩子,最近亲吻病高发,没有疫苗可以防治
最近大家被EB病毒刷屏了,很多幼儿园爆发了集体感染EB病毒的事件。EB病毒进入高发期,家长和老师一定要注意。EB病毒是Epstein-Barr的缩写,是导致单核细胞增多症的病毒。它也被称为“接吻病”,因为这是一种主要的传播方法。虽然EB病毒不是家喻户晓的名字,但你可能在不知情的情况下被感染了。很多人携带病毒但不生病。
EB病毒的症状
一旦感染EB病毒,症状可能需要4到6周才能显现出来,特别是幼儿。孩子的症状可能更像是感冒或流感。如果孩子发生EB感染,可能出现的症状包括
l 疲劳
l 发热
l 食欲不振
l 皮疹
l 咽喉痛
l 颈部肿胀的腺体
l 肌肉无力和酸痛
虽然宝宝可能在2至4周内开始感觉好转,但孩子的疲劳会持续很长时间。几个月后,孩子仍然可能感到疲倦。
EB病毒如何传播
这种EB病毒存在于唾液中,所以孩子在被感染的人亲吻后,也可能被感染。EB病毒还可以通过使用同一个水杯,或者使用感染者的牙刷进行传染。它也存在于血液和精液中,因此可以从性,输血或器官移植中获得单声道。
EB病毒并不是一定在发病期才传染,如果有人感染了EB病毒,EB病毒会长时间留在体内。病毒可以在数月或数年后再次活跃,再次使感染过的人具有传染性。
如何确诊EB病毒感染
单纯看症状很难判断孩子是否感染EB病毒。发烧,疲劳和喉咙痛也可能是其他疾病的迹象,如流感或感冒。去医院进行检查,医生会发现EB感染的迹象,例如脾脏肿大,腹部器官会过滤血液。医生也会检查孩子的扁桃体是否肿胀。医院还会对孩子进行一些血液检查。
EB病毒的治疗
与其他病毒一样,EB不能用抗生素治疗,专家的意见是,如果发生感染,应该在几周内自行自愈而不需要治疗。
虽然没有药物可以治愈EB病毒感染,但您可以在家中采取这些措施来缓解孩子的症状:
l 让孩子得到充足的休息。
l 喝大量的水,保持身体吸收充足的水分。
l 含润喉糖或冰棒,或用温盐水漱口,缓解孩子喉咙的不适。
l 按照医生的指示,服药,可降低发烧,缓解身体疼痛。
l 不要让孩子着急回幼儿园或者学校,直到他们痊愈。这个过程可能需要大约一个月左右,避免让孩子进行剧烈运动。
EV病毒的预防
没有疫苗可以保护您免受EB病毒的侵害。避免感染的最好方法是远离任何受到感染的人。
不要与受感染的人分享任何物品,包括眼镜和牙刷。还要避免与受感染的人亲吻。
EB病毒有一些罕见的并发症,所以如果您或您的孩子有任何这些症状,请去看医生:
腹部左侧突然剧烈疼痛,这可能意味着脾脏出现问题
尿液很少,脱水的迹象
呼吸困难或吞咽困难
如果症状在4至6周后没有消失,也要去就医。
总结
上文的内容,对家长和孩子都适用,家长要谨慎,在EB高发的时期,别让咱们的孩子被传染。
聪明的父母都会关注J妈学堂,每日分享孕产育儿小知识。
有爱的父母都会分享这篇文章,让更多的人受益。
我是J妈,创建了宝妈自媒体创业营,带领全营宝妈实现经济独立!曾经以为自己足迹踏遍几十个国家和地区是值得骄傲的一件事情,现在认为做了妈妈才是人生的王道!曾经的职场达人,现在的育儿达人,专心在头条码字,每天更文,专注于育儿经验和宝妈自我提升以及时间管理,分享我的所学所思,所有文章,一字一标点,全部是我一个一个敲打出来。J妈学堂的美国家庭万用亲子英文教学课程已经上线啦!关注即可免费获得!
每一个文章都是我的原创,如需转载,必须取得授权。 文内如果有错别字,请见谅。 图片全部来源于网络,如果有侵权,请联系删除。
什么是偏爱,对女朋友如何偏爱
偏爱是指在几个人或几件事物中特别喜爱或单单喜爱其中的一个或一件。你问如何偏爱女朋友?就以家人作为参照物吧!在一大家之人中,你却只爱女朋友一人。
偏爱的意思是什么
解答:在几个人或几件事物中特别喜爱其中的一个或一件。
扩展资料:
什么是感情里的偏爱:爱是独一无二的。除了她,每个人都差不多。她只愿意在她身上花费更多的思想和精力。
这就是感情上的“偏爱”。
你讨厌下雪,但你愿意陪她在雪地里堆雪人,做个大傻瓜。您喜欢玩游戏,但是因为她不开心,所以你宁愿切换到和她一起看电影。
您知道,她不是您最初计划中的理想情人,但是只要你爱她,其他所有规章制度就不再重要。您会为她而改变自己,这种“首选的爱”就是偏爱。
路由器的地址是不是大多都是192.168为什么要用这一组数字呢
1、你的路由上面的192.168.1.1是内网的IP地址、和你上外网的IP地址是不一样的 如果你需要上网你得去电信申请账号、他们会分配一个IP地址给你、当然你是不知道怎么的外网IP地址的、因为他们给你一个账号、这个每一次拨号成功后就随机给你一个外网IP
2、IP的构成内容相当的多。你可以慢慢看
Internet 上的每台主机(Host)都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet 能够运行的基础。IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。例如159.226.1.1。IP地址有两部分组成,一部分为网络地址,另一部分为主机地址。IP地址分为A、B、C、D、E5类。常用的是B和C两类。
IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息是就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址使用文字来表示的,计算机的地址用十进制数字表示。
众所周知,在电话通讯中,电话用户是靠电话号码来识别的。同样,在网络中为了区别不同的计算机,也需要给计算机指定一个号码,这个号码就是“IP地址”。
有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数-2);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。
本段
IP的分配
TCP/IP协议需要针对不同的网络进行不同的设置,且每个节点一般需要一个“IP地址”、一个“子网掩码”、一个“默认网关”。不过,可以通过动态主机配置协议(DHCP),给客户端自动分配一个IP地址,避免了出错,也简化了TCP/IP协议的设置。
那么,局域网怎么分配IP地址呢?互联网上的IP地址统一由一个叫“IANA”(Internet Assigned Numbers Authority,互联网网络号分配机构)的组织来管理。
本段
IP介绍
——IP是当前热门的技术。与此相关联的一批新名词,如IP网络、IP交换、IP电话、IP传真等等,也相继出现。那么,IP是什么呢?
——IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,IP协议也可以叫做“因特网协议”。
——IP是怎样实现网络互连的?各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。IP协议实际上是一套由软件程序组成的协议软件,它把各种不同“帧”统一转换成“IP数据报”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。
——那么,“数据报”是什么?它又有什么特点呢?数据报也是分组交换的一种形式,就是把所传送的数据分段打成“包”,再传送出去。但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据报”。这样,在开始通信之前就不需要先连接好一条电路,各个数据报不一定都通过同一条路径传输,所以叫做“无连接型”。这一特点非常重要,它大大提高了网络的坚固性和安全性。
——每个数据报都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据报不经过同样的路径都能准确地到达目的地。在目的地重新组合还原成原来发送的数据。这就要IP具有分组打包和集合组装的功能。
——在实际传送过程中,数据报还要能根据所经过网络规定的分组大小来改变数据报的长度,IP数据报的最大长度可达65535个字节。
——IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。
——现在电信网正在与IP网走向融合,以IP为基础的新技术是热门的技术,如用IP网络传送话音的技术(即VoIP)就很热门,其它如IP over ATM、IPover SDH、IP over WDM等等,都是IP技术的研究重点。
什么是IP地址
IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把”个人电脑“比作”一台电话“,那么”IP地址“就相当于”电话号码“,而Internet中的路由器,就相当于电信局的”程控式交换机“。
IP地址是一个32位的二进制数,通常被分割为4个”8位二进制数“(也就是4个字节)。IP地址通常用”点分十进制“表示成(
a.b.c.d
)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。目前使用的IPV4,就是有4段数字,每一段最大不超过255
IP地址分类
最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。
其中A、B、C3类(如下表格)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。