2018-09-07 19:07:12 JH0lmes 阅读数 207
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40478 人正在学习 去看看 唐宇迪

深度学习工程师50%的时间在调参数,49%的时间在对抗过/欠拟合,剩下1%的时间在修改down下来的程序。

Top-5错误率

ImageNet图像通常有1000个可能的类别,对每幅图像可猜5次结果(即同时预测5个类别标签),当其中有任何一次预测对了,结果都算对,当5次全都错了的时候,才算预测错误。

Overfitting

过拟合,此问题是深度学习领域一个重大问题。为了得到一致假设而使假设变得过度严格称为过拟合,在每一个全连接层的神经激活函数之后需要采用dropout的方式进行降拟合。特征有很多,但是特征有时候是和数据概率无关的,如果将这些特征放到模型里面,就肯定过拟合了。如喜欢玩游戏的深度学习,性别和年龄是合适的特征,如果将姓氏作为特征,放入数据中进行拟合,肯定过拟合了。与之相对的是欠拟合,特征不足会导致欠拟合

Generalization ability

泛化能力。指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。

局部感知

传统神经网络中每个神经元都要与图片上每个像素相连接,这样会造成权重的数量巨大网络难以训练。而在含有卷积层的的神经网络中每个神经元的权重个数是卷积核的大小,这样就相当于没有神经元只与对应图片部分的像素相连接。这样就极大的减少了权重的数量。

左图,输入1000*1000像素的图片,隐层有10^6个神经元,采用像素级别的全连接模型,有1000*1000*10^6 = 10^12个连接,有10^12个参数需要学习,非常耗时,并且提取到的特征不具有具体的含义(过拟合)。

右图,局部感受野:类似于卷积中的patch核,将10^6的隐层换成10*10的patch,即1000*1000的图片采用10*10的局部感受野,将像素级别的特征映射到这个局部感受野,有1000*1000×100=10^8个参数需要学习。此时,图像中的每一个像素点学习一个10*10的局部感受野。

参数共享

参数共享的思想:权重是经过学习得到且在卷积过程中卷积核的权重不会改变。通过一个卷积核的操作提取了原图的不同位置的同样特征。简单来说就是在一幅图片中的不同位置的相同目标,它们的特征是基本相同的。

AdamOptimizer

Adam优化,控制学习速度。通过使用动量(参数的移动平均数)来改善传统梯度下降,促进超参数动态调整。

纹理特征

纹理是一种反映图像中同质现象的视觉特征,它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性。纹理具有三大标志:某种局部序列性不断重复、非随机排列、纹理区域内大致为均匀的统一体。纹理不同于灰度、颜色等图像特征,它通过像素及其周围空间邻域的灰度分布来表现,即:局部纹理信息。局部纹理信息不同程度的重复性,即全局纹理信息。

Feature map

特征图,每一种卷积核提取一张feature map, 数量根据需求而定,一般图像很大的话会需要很多。例如32*32的图像,6个feature map就比较合适。不同的特征提取会提取不同的feature,模型想要达成的目的是解一个最优化,来找到能解释现象的最佳的一组卷积核。设计多种的滤波器(卷积核,滤波器矩阵所有的元素之和等于1,滤波前后图像的亮度保持不变;大于1,滤波后更亮;小于1,滤波后变暗;和为0,图像不会变黑,但也会非常暗;出现负数或大于255,直接截断到0和255之间,对于负数也可取绝对值),通过权值共享来减少网络参数,这时候就可以通过输入图像的大小以及卷积核的大小来确定隐含层的神经元的个数了,公式为:(32-5+1)*(32 -5 +1)=28*28 个隐层神经元,也就是每一个feature map的大小就是28*28 。那么这一层一共有(5*5 +1)*6个参数,其中5*5为卷积核的大小,1为一个bias参数, 6为6种卷积核。

大部分 CNN 网络在越深的层,feature map 的尺寸(size)会越来越小。这样做不仅仅是为了减少计算与内存的需求,还有个好处就是,最后提取的 feature map 就会有某种程度上的平移与尺度不变性。

IOU

intersection-over-union 交并比,表示了bounding box 与 ground truth 的重叠度,用IoU或者jaccard overlap表示,称之为相似系数,数值越大,相似度越高文章中选取了jaccard重叠超过0.5的默认框为正样本,其它为负样本。如下图所示:

IOU=(A∩B)/(A∪B)

Non maximum suppression(NMS)

非极大值抑制,本质是搜索局部极大值,抑制非极大值元素。主要目的是消除多余(交叉重复)的窗口,找到最佳物体检测位置,抑制过程为 迭代-遍历-消除。

1.将所有框的得分排序,选中最高分及其对应的框;

2.遍历其余的框,和当前最高分框的重叠面积(IOU)大于一定阈值,就将框删除(这片区域只留最高分一个框);

3.从未处理的框中继续选一个得分最高的,重复上述过程。

positive/negative samples

正负样本是相对的概念,不同的正负样本定义对问题解决没有本质影响,但好的正负样本定义可以减轻认知负担、方便人对问题的理解。根据目标定义正样本,优化损失函数时是根据正样本来进行。一般来说目标检测中,目标即为正样本,背景等不是目标的都是负样本。

2016-08-26 14:46:53 Yt7589 阅读数 20841
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40478 人正在学习 去看看 唐宇迪
其实从本篇博文开始,我们才算真正进入深度学习领域。在深度学习领域,已经经过验证的成熟算法,目前主要有深度卷积网络(DNN)和递归网络(RNN),在图像识别、视频识别、语音识别领域取得了巨大的成功,正是由于这些成功,能促成了当前深度学习的大热。与此相对应的,在深度学习研究领域,最热门的是AutoEncoder、RBM、DBN等产生式网络架构,但是这些研究领域,虽然论文比较多,但是重量级应用还没有出现,是否能取得成功还具有不确定性。但是有一些比较初步的迹象表明,这些研究领域还是非常值得期待的。比如AutoEncoder在图像、视频搜索领域的应用,RBM对非结构化数据的处理方面,DBN网络在结合人工智能领域两大流派连接主义和符号主义,都具有巨大的前景,有理由期待产生重量级成果。我们在后续会对这些网络逐一进行介绍和实现,除了给出重构后的Theano实现代码外,还会逐步补充这些算法在实际应用的中的实例,我们会主要将这些算法应用在创业公司数据中,从几万家创业公司及投融资数据中,希望能挖掘出哪些公司更可能获得投资,特定公司更有可能获得哪家投资机构的投资。
好了,转入正题。我们今天将要研究的是卷积网络(CNN),这是深度学习算法应用最成功的领域之一,主要用于图像和视频识别领域。

在讨论卷积网络(CNN)之前,我们先来根据我们的常识,来讨论一下怎样可以提高图像识别的准确率。我们以印刷字母识别为例,假设我们需要网络识别大写字母A,我们给网络的训练样本可能是这样的:


但是我们实际需要识别的图片却可能是这样的:


根据我们的经验,如果可以把字母移到视野的中心去,识别的难度将下降很多,有利于提高识别率。


在这种情况下,如果我们能把图像变为标准大小,则可以提高相应的识别率。

对于真识的物体,从不同角度来看,会有不同的表现,即使对于字母识别而言,字母也能出现旋转的情况:


如果可以将图像旋转过来,将可以极大的提高识别率。

以上各种方式,在实际的图像识别领域,通常是以组合形式出现的,即图像中的元素,需要经过一系列的平移、旋转、缩放后,才能得到与训练样本相似的标准图像,因此在传统的图像识别中,需要对图像进行预处理,达到这一目的。在神经网络进行图像识别中,我们也希望神经网络可以自动处理这些变换,用学术术语来讲,就是具有平移、旋转、缩放的不变性,卷积网络(CNN)就是为解决这一问题而提出一种架构。

那么怎样才能让神经网络具有我所希望的这种变换不变性呢?我们知道,神经网络的兴起,很大程度上是仿生学在人工智能领域的应用,我们用人工神经元模型及其连接,来模仿人类大脑,解决一些常规方法不能解决的复杂问题。对于图像识别而言,神经网络的研究人员,也希望通过模拟大脑视觉皮层的处理机制,来提高图像识别的准确率。

根据Hubel and Wiesel对猫的视觉皮层的研究表明,视觉皮层细胞会组成视觉接收域,只负责对一部分图像信号的处理,处理局部的空间信息,例如图像在的边缘识别等。同时视觉皮层中存在两类细胞,一类细胞是简单细胞,主要用于识别图像边缘等基本信息,还有一类复杂细胞,具有位置不变性,可以识别各种高级的图像信息。

以上述发现为指导,研究人员提出了卷积神经网络(CNN)模型,主要包括两大方面特性:第一是层间稀疏连接,第二是共享连接权值。

层间稀疏连接主要是想要模拟大脑视觉皮层的接收域,以具有简单细胞和复杂细胞两类不同细胞,分别处理局部细节和全局空间不变性。首先我们将图像像素分为3*3的区域,所以对于l=1的输入层而言,这9个像素连接到9个输入层神经元,而这9个神经元,只连接到l=2上的一个神经元,如下图所示:注意由于我们画的是二维图,因此只显示面对我们的三个神经元,如图所示:


如上图所示,每上一层,都只与其底层3*3的神经元相连接,这样对最上层神经元,其对应的视觉接收域将变为9*9。利用上述结构,可以采用多层来表示原来的图像信息,底层神经元主要负责边缘等基本信息的识别,而越往高层走,其识别的级别越高,最上层则可以表达为我们希望区分的类别。这其实与传统的数字图像处理中,金字塔模型比较类似,解决的是同一类问题。

卷积网络的第二个特征是共享连接权值,如图所示:


图中不同颜色的连接,具有相同的连接权值。因此,在我们的卷积神经网络(CNN)实现中,考虑到这种情况,需要对原来的算法进行修改,将以单个权值求导变为对三个权值之和进行求导,将在下一篇博文中详述。

通过共享权值模式,可以使卷积神经网络(CNN)识别出图像中的物体,而与物体的空间位置无关,即实现本文开头所提到的旋转、平移、缩放的不变性,这对于在图像识别领域经常出的物体在图像中的位置变化,大小变化,观察角度变化,所造成了识别困难,具有非常好的解决效果。同时,由于权值共享,减少了网络的参数个数,也大提高了网络的学习效率,因此成为卷积神经网络(CNN)的一个事实上的标准。

在讲完了卷积神经网络(CNN)的基本原理之后,自然就是怎么利用Theano这样的平台,来实现自己的卷积神经网络(CNN),对于这一问题,我们将在下一篇博文中进行讨论。


2019-10-15 14:12:39 cliukai 阅读数 142
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40478 人正在学习 去看看 唐宇迪

TensorFlow,Keras和Mxnet

Keras是最常用的深度网络库,他是基于TensorFlow或者theano运行的一个高级API。

Mxnet也是一个轻量级的深度网络库,他的特点在于可以使用GPU,大规模集群进行训练。

TensorFlow不仅仅是一个深度网络库,他还有其他更多的应用。

TensorFlow中文社区-首页

深度学习的定义

“Deep learning methods are representation-learning methods with multiple levels of representation, obtained by composing simple but nonlinear modules that each transform the representation at one level (starting with the raw input) into a representation at a higher, slightly more abstract level. […] The key aspect of deep learning is that these layers are not designed by human engineers: they are learned from data using a general-purpose learning procedure”
Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, Nature 2015. [9]

机器学习专注于从数据中学习和模式识别,但是AI算法包含一系列自动推理的过程,例如推理,计划,启发等等。

最早的ANN(Artificial Neural Networks)就是根据人大脑的机制,设计出来的一种机器学习算法。深度学习的特点就是deep和hierarchical learning(层次学习),这使得深度学习再现代计算机视觉中取得了巨大的成功。
深度学习的范围

深度学习处理的步骤

在这里插入图片描述

传统机器学习存在的问题

线性不可分问题:考虑如何用一条直线将下面的星星和圆圈分开
在这里插入图片描述

BP和DNN的发展

反向传播算法是现代DNN的基石,BP算法教会了DNN如何从错误中进行学习。
在这里插入图片描述

深度学习和机器学习在图片处理上的不同

在过去的机器学习中,我们通常使用颜色,局部纹理,形状等信息去提取特征。
在这里插入图片描述
或者用一些关键点检测方法,例如FAST算子,以及一些局部不变描述子例如SIFT,SURT,ORB等描述局部特征。
在这里插入图片描述
其中HOG加SVM的方法在物体检测中取得了巨大成功
在这里插入图片描述
而深度学习是具有层次特征的学习,可以端到端的识别出物体,例如CNN,我们直接输入原图像,然后一系列的隐层自动学习出图像的特征,一开始是低层次的边缘,然后是角点(边缘的交汇),接着是图像的轮廓,最后通过角点和轮廓可以得到更抽象的物体层。
在这里插入图片描述
每一层都利用上一层的信息来建立更抽象的高层描述,这一特性,使得CNN在数据量增加的过程中,性能得到快速提高。
在这里插入图片描述

在过去,我们都是用人工创造出的特征向量来描述图片,但是在深度学习中,我们直接使用整个的像素来描述图片特征。
在这里插入图片描述

怎样才算深度学习呢,要多深?

只要使用了超过2层的网络,都叫深度网络。
在这里插入图片描述

2016-07-14 08:03:24 happytofly 阅读数 628
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40478 人正在学习 去看看 唐宇迪

阿里云工程师卜居接受CSDN记者专访,介绍了他在深度学习领域的实践经验和成长心得,以及完成Caffe著作背后的原因和故事。

从Geoffrey Hinton 2006年的论文算起,这一波深度学习(DL)浪潮才10年,而如果只算国内,深度学习的流行也不过5年,尽管如此,深度学习现在已经扎根中国互联网,成为BAT、京东、360、今日头条等公司的基础技术和战略技术,与之伴随的,则是深度学习技术人员的快速成长,例如,阿里云工程师卜居(赵永科,博客),2014年才开始接触深度学习实战,如今已在深度学习及计算优化方面方面有很独到的见解。卜居在最近写了一本浓缩其深度学习实战经验的书——《深度学习—21天实战Caffe》,该书获得了机器学习前辈的肯定。日前,卜居接受CSDN记者专访,介绍了他在深度学习领域的实践经验和成长心得,以及完成Caffe著作背后的原因和故事。

卜居认为,深度学习具备强大的表达能力和灵活多变的模型结构,并在各种硬件加速方案的支撑下不断成熟,而Caffe具有高效的C++/CUDA实现、Matlab/Python接口、独特的网络描述方式、清晰的代码框架等优势,徒手hack代码的乐趣更多,同时Caffe框代码于稳定,掌握了阅读技巧可以事半功倍,因而可以作为初学者学习的第一个深度学习框架,由此逐步深入了解使用C++/CUDA代码实现深度学习的计算过程。

谈到新书《深度学习—21天实战Caffe》,卜居表示,这是一本透过源码解读深度学习的书,也是一本注重“实战”的书。读者可以从本书中学习Caffe设计模式、编程技巧,以及深度学习最新的进展和生产环境批量部署等内容。而书中的一些思考题需要深入实践和思考之后才能得到答案,这可以让读者养成独立思考的习惯,从而更加从容地面对实际问题。

此外,对于不同的硬件加速方案,卜居认为,深度学习本身在不断演进,没有哪个计算架构能够一劳永逸,得到某方面优势会丧失另一部分特性,最终起决定作用的仍然是应用需求,例如批量离线处理更适合利CPU/GPU集群的规模优势,而在线应用、移动端应用更适合利用FPGA/ASIC的低功耗、低延迟特性。

以下为采访实录:

卜居与深度学习

CSDN:请介绍您自己,您是如何与深度学习结缘的,它的哪些特质吸引您?

卜居:大家好,我博客笔名是卜居(出自《楚辞》),在阿里花名是以亭(《镜花缘》探花唐敖之字),真名赵永科,2014年毕业于中国科学院大学,目前就职于阿里云计算有限公司高性能计算团队,从事CPU/GPU/FPGA上的计算优化工作。

我最早接触“神经网络”、“深度学习”还是在中科院微波成像实验室从事现代信号处理工作期间,通过阅读Simon Heykin的大部头著作《Adaptive Filter Theory》《Neural Networks : A Comprehensive Foundation》,初次了解其设计理念,但当时仅仅停留在一些抽象理论上,一直希望有机会将它们应用到实际项目中。

直到2014年我到阿里巴巴集团核心系统部实习,看到周围同事在用Caffe做深度学习算法优化,而且已经有很多内部项目(即后来的拍立淘、OCR等)在使用该框架。当时首先被名字吸引:“快速特征植入的卷积结构”(Convolutional Architecture for Fast Feature Embedding),谐音“咖啡”。当时的Caffe还只是雏形,我看了一遍代码后深深被其设计所吸引,高效的C++/CUDA实现、Matlab/Python接口、独特的网络描述方式、清晰的代码框架……当时对深度学习的认识一下子从教科书上的抽象概念落地到实实在在的代码实现,甚至对其稍作修改就可以应用于线上生产环境,直接面向广大用户!也是从那个时候,我开始关注每年的ILSVRC比赛,看到计算机视觉领域逐渐接受深度学习方法,并随后在语音识别、自然语言处理取得巨大成功,意识到这次深度学习高潮不是泡沫,而是逐渐迈向成熟的标志。

现在,深度学习强大的表达能力、灵活多变的模型结构、在CPU/GPU/FPGA/ASIC上加速方案等,都是吸引我的闪光点。

CSDN:阿里巴巴的很多业务都使用了深度学习技术,能否介绍和您的工作有直接关系的技术环节包括哪些?

卜居:在阿里云我们组主要是计算平台支持和计算效率提升两个环节。

  • 计算平台支持方面,我们的HPC支持当前大多数主流计算框架(Caffe/Torch/Theano/MxNet/TensorFlow/……),利用IB+双万兆网络实现多机互联,提供多机多卡并行训练系统,最近使用专门为深度学习定制的Tesla M40 GPU加速器将单节点计算能力提升到16 TFLOPS。

  • 计算效率提升方面,我们自研了CUDA Native汇编器文档下载),进一步挖掘硬件计算能力,实现更高计算效率。

深度学习及实践经验

CSDN:目前深度学习的论文非常多,您会关注哪类论文?神经网络最近的哪些进展让您印象深刻?

卜居:我比较感兴趣的还是计算优化方面,包括计算体系结构优化和计算软件优化两类。

最近的ResNet实现了深达1000层的模型结构,这不禁让人思考:“深度学习”还可以多深?除了加深之外,网络结构也逐渐表现出了生物特征,例如出现了分形结构,这些让人愈发感受到自然之美、生命之美。

CSDN:ICML、CVPR上来自Deepmind等大公司的论文比较出彩,这其中不乏大公司投入比较大要求少的因素,比如LeCun说目前Facebook对FAIR还没有盈利要求,能否介绍您的团队如何要求DL研究的投入?

卜居:我不敢妄谈公司战略,单从个人角度谈下。

DL不仅是我在阿里云高性能计算团队工作时需要了解的内容,同时也是我个人爱好,对于论文和前沿的技术一般是用业余时间学习,工作时间更多是面向用户需求。在阿里云有得天独厚的研究条件,我们有大规模GPU集群可以折腾,周围许多同事自己攒机体验最新的硬件(GPU、FPGA),研发氛围浓厚,讨论问题热烈,都是自发行为。

总体来看,大公司在数据规模、基础设施方面有较大优势,初创团队一般在业务算法、模型调参方面更有优势。

CSDN:论文虽多,深度学习理论体系却不似SVM那么优美,在很多实际应用场景中的效果也还不尽人意,从开发人员的角度,您如何看待当前深度学习技术的缺陷?成功应用深度学习有没有一些“黄金法则”?

卜居:深度学习不需要专门特征工程师,降低了模型设计门槛,但对于调超参“黑科技”方面,经验仍然很重要,不然会经常出现使用了深度学习技术效果反而不如传统方法的尴尬局面。

  • 模型参数远大于数据量时,相当于求解一个欠定方程,存在多解的可能性大,容易产生过拟合问题。
  • 模型参数远小于数据量时,相当于求解超定方程,可能无解,或者有解但准确率很低,这属于欠拟合问题。
  • 模型参数与数据量匹配时,相当于求解恰定方程,既能避免过拟合,又能兼顾准确率,但模型参数量和数据量怎样才能做到匹配,是一个工程问题。

所以,如果你选择用某个模型处理数据,那么应该考虑这个因素,越大的模型越难训练,因为需要与之匹配的数据量、一系列避免过拟合的方法才能训练得到一个较为理想的模型。幸运的是,我们可以将大模型首先在较大的数据集(如ImageNet)上预训练,得到模型,再对特定数据集(如人脸数据)进行精调(fine-tuning),即可得到较为理想的结果。

深度学习目前的应用场景只是冰山一角,对于更多传统领域的应用,一方面需要引起该领域工程师对深度学习技术的关注,另一方面要重视数据,作为待开发的矿产资源。

CSDN:您曾经做过CNN硬件加速的分享,重点谈了阿里云用到的FPGA方案,但目前还有很多ASIC的尝试,包括Google的TPU、中科院的寒武纪等,同时考虑到神经网络的应用越来越广,比如LSTM在语音、机器翻译中的应用,您认为未来DL平台应当是什么样的架构,主流的加速方案是什么,应当具备哪些特性?

卜居:阿里云HPC团队是一个既注重技术创新、又贴近用户实际业务的团队,我们在平台选择方面,会首先根据用户需求进行优化和定制,而一些通用的模块则逐渐沉淀成为公共服务。

DL本身在不断演进,没有哪个计算架构能让DL一劳永逸,得到某方面优势会丧失另一部分特性,最终起决定作用的仍然是应用需求,例如批量离线处理更适合利CPU/GPU集群的规模优势,而在线应用、移动端应用更适合利用FPGA/ASIC的低功耗、低延迟特性。

CSDN:阿里云已经在用Docker来提供DL服务,您认为DL任务中使用Docker有哪些坑需要填好?

卜居:Docker 的优点在于一次开发,处处部署,简化了开发测试环境与生产环境的迁移。目前已经有越来越多用户选择Docker,越来越多开源DL框架开始支持Docker部署,进一步降低了这些框架使用难度。Docker本身也在不断发展中,存在一些坑也是正常的,对于个人用户而言Docker基本坑都已经填好,是时候学习和掌握这门技术了。

关于“21天实战Caffe”

CSDN:深度学习开源工具众多,您的新书写的是Caffe,而您最近的博客在写TensorFlow,能否介绍您尝试过哪些DL框架?如何看待它们的优缺点?

卜居:在阿里云HPC平台上我们支持当前大多数主流计算框架(Caffe/Torch/Theano/MxNet/TensorFlow/……),我个人都使用过这些工具,还通读过其中几个框架的源码。

Caffe可以作为初学者学习的第一个深度学习框架,因为代码组织较规范,徒手hack代码的乐趣更多。但相比之下所需依赖库比较多,适合在固定计算平台(如服务器、带GPU的台式机)上运行。

TensorFlow提供了更灵活的设计,不仅可以部署在服务器端,对资源受限的硬件支持也更好,例如内置了定点化运算库,适合做移动、嵌入式设备上的DL应用。

CSDN:从KDnuggets的统计来看,用得最多的似乎是Pylearn2而不是Caffe,能否进一步介绍您的新书选择写Caffe的原因?

卜居:诚然,从上述统计结果看,Caffe受欢迎程度可能不及Pylearn2、Theano。但我们在企业一线生产环境统计的结果来看,直接使用Pylearn2、Theano接生产任务的应用几乎是凤毛麟角。性能是一个关键的因素。

新书选择Caffe,是希望读者不仅知其然,更要知其所以然,知道怎样使用 C++/CUDA代码实现深度学习的计算过程。

CSDN:Caffe的架构还在发展,社区文档也在不断完善,您为什么会在现在写Caffe的书?这本书适合的阅读对象是谁?读者需要一些知识基础吗?

卜居:从诞生到现在已经过去2年时间,Caffe经历过很多变化,框架代码其实变动不大,掌握了阅读技巧可以事半功倍,写这本书是希望更多读者可以加入hack Caffe、改进Caffe的行列中。

建议读者具备高等数学、线性代数、概率论等知识水平。编程方面,建议读者至少具备C++、Python、MATLAB基础。对于本科生,建议大二以上阅读本书。研究生、博士生理论基础达标,可以从本书中学习Caffe设计模式、编程技巧方面内容,充实自己的科研生活。企业一线工程师,可以通过本书了解深度学习最新的进展和生产环境批量部署等内容。

CSDN:您认为这本书的最大的亮点是什么?

卜居:这是第一本透过源码解读深度学习的书,也是一本注重“实战”的书。

CSDN:如果开发者能完全吸收书中的营养,21天之后的DL水平是怎么样的?

卜居:本书不是一部让读者从0开始,21天之后精通 Caffe 的“武林秘籍”,更像是游戏攻略,可以让读者更快地找到捷径,避免在原地徘徊。每章后面的思考题,有些是需要深入实践和思考之后才能得到答案的。相信通过这些锻炼,读者可以养成独立思考的习惯,面对实际问题时更加胸有成竹。

CSDN:开发人员在读完这本书之后,如何继续提升DL技能?还有一些DL书籍可以推荐?

卜居:DL修行道阻且长,要有扎实的数学基础、精湛的编程技术,还要有广阔的视野,不断吸取其他领域的营养。推荐继续阅读其他ML/DL大部头著作(例如Youshua Bengio的《Deep Learning》值得深入阅读),以及该领域的经典论文。

笔耕收获

CSDN:能否介绍您写这本书的最大挑战和收获?

卜居:克服惰性。写书后,我养成了早起的习惯,每天精神了许多。

CSDN:从您2008年发表第一篇CSDN博客文章,到现在已经8年,能否介绍您坚持写博客的动力和收获、心得?博客创作对您的技术工作和完成著作有多大的帮助?

卜居:2008年我还是在大一、大二刚刚学习编程的阶段,每期《程序员》、《电脑报》、《黑客 X 档案》都要细细阅读。偶然的机会看到CSDN上面的一些博客写得很好,于是也注册了一个号,尝试自己写文章。在此之前我写文章都是发表在QQ空间、人人网,发一些编程相关的文章不太“合群”,于是逐渐淡出了这些圈子,全面转向CSDN。

早期的文章不成体系,很少坚持。真正开始写系列文章是从研究生开始,结合自己学习CUDA的心得体会,整理了十篇左右,反响不错。后来又整理了关于Zynq开发的系列文章,访问量暴增,进一步增加了写博客的动力和信心。再后来毕业后参加工作,接触 DL,学习Caffe、TensorFlow,这时的博客更像笔记,比较随性。

写博客最大的收获,是查资料时可以先从自己博客中找,如果Cache命中,直接返回;否则再找其他人博客,学习后收藏。博客相比互联网上零散知识点而言更有凝聚性,可以集中解决一类问题,习惯从博客中找答案可以触类旁通。

此外,写博客也会认识更多同行者,可以在交流之间取长补短,相互促进,并打开视野,这对工作和学习有很大帮助。


CCAI 2016中国人工智能大会将于8月26-27日在京举行,AAAI主席,多位院士,MIT、微软、大疆、百度、滴滴专家领衔全球技术领袖和产业先锋打造国内人工智能前沿平台,6+重磅大主题报告,4大专题论坛,1000+高质量参会嘉宾,探讨人机交互、机器学习、模式识别及产业实战。门票限时六折优惠中

图片描述

2017-11-26 17:36:42 qq_33378523 阅读数 198
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40478 人正在学习 去看看 唐宇迪

整合一下深度学习caffe基本环境的配置(CPU+GPU)

之前国创项目做的深度学习关于衣物识别的内容,当时也算初入dl坑吧。。不过主要是以应用为主,后期进实验室才真正去看paper做实验等等。。(实验室框环境都配好的,从老的faster-RCNN到SSD、resnet等等都有学长给弄好的,自己需要跑实验带着数据集即可)

然而自己在新校区配环境也是艰难得很,不过后来问问基本都是这样过来的,格十几次系统不算大事。
本blog主要记录分享我们团队大二配环境的总结。

队伍中hhy同学提前有写blog的习惯,主要以他的博客转载为主。


caffe(CPU only)部分

http://blog.csdn.net/hhy_csdn/article/details/61615958

写得很好,摘取他的首段

曾参考了很多CSDN前辈的教程,也按照《深度学习——21天实战caffe》这本书来配过,但是都不成功。无疑,这些博客讲述的都是成功的例子,但是由于每台电脑的配置、环境都不尽相同,所以仅凭一篇教程来配置caffe是欠妥当的。建议后来的朋友多多参考前人的足迹,看看每篇教程有什么不同,哪些依赖包是教程没有提及但自己电脑又确实没有的。
  caffe依赖多且复杂,历来被人诟病,但是配置编译完成后caffe所带来的欣喜与便捷也足以回报先前的煞费苦心。相信自己的能力也会随着这个过程逐步提高,所以希望未来看到这篇博客的你不要灰心丧气、半途而废!
  所幸我还是找到了一篇适合于我的电脑的caffe 配置教程。当然这不可能适合于所有的电脑,所以千万不要迷信教程,多看多想才是正道。

我们团队的做法其实比较死,几个人都去配caffe、都打开十几个配caffe的blog,对比,选择通法。若出问题再去百度。

下面再来cifar10的小例程

http://blog.csdn.net/hhy_csdn/article/details/61463956

毫无疑问,在当时,我的电脑配置成功,完成了minist、cifar10后,非常激动和喜悦。

基本上完成CPU only的caffe配置后,并且在不断摸索中,对linux系统和基本依赖包就已经很熟了。之后开始真正做项目需要用cuda,GPU的配置其实也很容易上手。

另外我们发现,其实与其去看那么多的博客,不如自己去读英文的官方文件,或者github下下来后的readme文件,那才是最权威的第一手资料

下为cuda官方文件的翻译

NVIDIA CUDA Installation Guide for Linux

Linux 系统下的NVIDIA CUDA 安装指南

http://blog.csdn.net/hhy_csdn/article/details/64440406

到了这里基本就结束了

还有一些小知识。

Ubuntu vim command
http://blog.csdn.net/hhy_csdn/article/details/61924537

ubuntu chmod命令
http://blog.csdn.net/hhy_csdn/article/details/62047126

批量改文件名
http://blog.csdn.net/hhy_csdn/article/details/62428947

深度学习发展历史

阅读数 2022

深度学习入门必须理解这25个概念

博文 来自: qq_45082364
没有更多推荐了,返回首页