如何建设深度学习开源社区

查看: 6376|回复: 1
深度学习原理及实践应用
主题帖子积分
本帖最后由 hero1122 于
14:19 编辑
问题导读:
1.深度学习是什么?
2.深度学习用来解决哪些实际问题?
3.如何构建深度学习训练环境?
4.常用的深度学习框架有哪些?如何选择?
5.如何对深度学习的训练数据集进行管理?
6.如何实现深度学习的模型训练?
7.深度学习的技术如何在生产环境中应用?
自2006年Hinton提出神经网络新的训练方法起,深度学习发展迅速,促使人工智能在图像、语音、自然语言处理等多个领域有了实质性的突破,达到产业应用标准。然而,深度学习作为人工智能领域的一项前瞻技术,实践性强,入门门槛高,关于深度学习的研究与应用,现在仍有很多问题没有找到满意的答案,这些都给深度学习的广泛应用带来挑战。
本文旨在提供一份清晰、简洁的深度学习实践说明,以便从事深度学习研究与工程技术人员能够快速掌握深度学习的实际经验。
深度学习概述
深度学习是模拟人脑进行分析学习的多层神经网络,它模仿人脑的机制来解释数据,处理数据,通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度学习本质上是机器学习技术的一种,根据一般的机器学习和深度学习的工作方法和我们的经验,我们认为采用深度学习技术解决实际业务问题的完整过程主要包括五个方面:问题理解与分析、训练环境构建、数据管理、模型训练以及生产应用。基于此,我们对每个环节分别阐述最佳实践,作为研究与工程应用的参考指南。
1.png (32.65 KB, 下载次数: 0)
深度学习五个基本环节
14:06 上传
图1.深度学习解决问题的五个基本环节
问题理解与分析
深度学习不是一项“放之四海而皆准”的技术,采用深度学习解决复杂问题,首先需对实际问题全面剖析:问题是否适合采用深度学习解决,是否具备深度学习应用的数据条件,如何将实际业务问题转换成深度学习可以解决的技术问题等。
原则上,传统机器学习能够解决的问题,深度学习都能够解决,譬如传统机器学习主要面向学习类问题,包括有监督学习(分类和回归场景),无监督学习(聚类等),均能够采用深度学习网络训练模型和应用,但是两者应用效果会有所差异。依据实践,在如下场景,可以优先考虑采用深度学习:
(1)业界提供了公开成熟的深度学习网络模型的细分场景。面对这些场景的业务问题,可以基于公开的网络模型进行网络权重微调(fine-tune),能够达到不错效果。以图像识别为例,业界已经公开了AlexNet,ResNet等深度网络模型,在解决实际图像分类问题时可避免从头训练深度模型,在该模型的基础上, 使用样本数据进行模型参数优化(fine-tune)即可。
(2)深度学习应用成功的行业,譬如,深度学习在图像分类、语音识别、自然语言处理等感知领域均取得实际应用效果,并在行业内得到验证,因此如果问题域属于图像、语音、视频等领域的问题,深度学习应用效果往往比较理想。
(3)业务问题本身复杂,样本数据充足,但问题本身又无法或者难以用人工的方式提取特征,此时传统机器学习无法进行模型训练,采用深度学习,可以有效发挥深度学习自动提取特征的价值。
与此同时,某些场景并不适合采用深度学习来解决问题,譬如在小规模的数据场景下,深度学习容易过拟合(Overfitting),正如奥卡姆剃刀原则所说,“如无必要,勿增实体”。
此外,深度学习模型训练过程中,需要大量的浮点计算以及矩阵运算,若问题解决方不具备高效的计算环境以及海量样本数据的客观条件,也不推荐使用深度学习解决问题。
无论是有监督学习,还是无监督学习,深度学习的模型训练都建立在大量样本的迭代训练基础之上,在采用深度学习解决实际问题之前,需对问题领域数据仔细分析,衡量数据规模与质量。以下提供几条基本原则供借鉴:
(1)深度学习能够从样本数据自动提取特征,但在实际考查准备样本数据集时,建议尽可能与问题领域的业务专家充分交流,洞察问题与数据的相关性,剔除噪声数据,这样可以大大提高模型训练的效率,少走弯路。
(2)考察问题领域的存量数据后,若发现不是特别充裕,可考虑如下方法进行数据扩充:爬取公共数据;对已有数据进行变换,扩充数据,譬如利用反射变化扩充图片数据;人工制造,譬如人工拍摄图像数据等;与产业界公司进行数据合作等。
(3)当采用业界公开的网络模型进行微调(fine-tune),需要进一步验证问题数据类型与公开网络模型训练数据类型的相似性。若两者数据类型差距比较大,采用微调(fine-tune)的方法训练出来的模型效果往往不理想,可能需要考虑从头开始训练新的模型。
(4)样本数据在整个深度学习模型训练过程不是一成不变的,模型实际训练过程中,会视模型的训练效果,不断进行多轮数据的迭代优化等,让样本数据类型覆盖更多的实际测试数据的类型,降低噪声数据。因此,需要牢记,数据考量会贯穿整个模型训练过程。
在利用传统机器学习分析具体问题时,需要将问题抽象为有监督学习问题或者无监督问题。如果是有监督问题,还需要进一步抽象成分类或回归问题,最后再选择适合的算法来训练模型。深度学习本质上仍属机器学习范畴,因此利用深度学习解决实际问题,需要同样的问题抽象过程:与传统机器学习一样,有监督学习问题和无监督学习问题主要由样本数据是否需要标签来决定:
(1)有监督学习问题通过有标签训练数据集的形式,在输入和输出的数据之间建立相关性。
(2)无监督学习问题通过分析非标记数据,帮助检测数据的相似性和差异性,譬如图片搜索和欺诈检测等应用场景。
当问题定位为有监督问题后,需进一步确认是分类问题还是回归问题,判断原则如下:
(1)回归问题通常用来预测一个值,如预测下一季度银行卡消费金额、交易笔数等等,回归是对真实值的一种逼近预测。
(2)分类问题是用于将数据打上一个标签,通常结果为离散值,分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。
当实际问题抽象成具体深度学习技术问题后,即可以结合问题的数据类型选择合适的深度网络结构进行模型训练,譬如图像数据处理,选择卷积神经网络(CNN)等。
训练环境构建
构建深度学习研究环境首先要考虑硬件环境的支持,这也是深度学习算法区别于其他机器学习算法的重要一点,同时还要依据实际需求对深度学习软件框架进行规划和选择。
硬件环境选择
深度学习需要很高的内在并行度、大量的浮点计算能力以及矩阵运算,传统的基于CPU集群的云计算技术并不擅长处理这类问题,例如,斯坦福大学的研究人员Adam Coates采用GPU将三台计算机连贯在一起进行深度学习实验,结果却得到了与Google数千台计算机一样的效果。由此可见,只有更好的硬件加速条件,才能满足现有数据和模型规模继续扩大的需求。
目前,最主流的硬件加速器件非GPU莫属。最重要的是GPU出色的浮点计算性能特别提高了深度学习两大关键活动:分类和卷积的性能,同时又达到所需的精准度,并且在相同的精度下,相对传统CPU的方式,拥有更快的处理速度、更少的服务器投入和更低的功耗。因此,Google和Facebook等巨头也在转向使用GPU作为硬件加速的基础原件。
此外,业界也出现了其他进行深度学习硬件加速的方案。比如,部分公司正在研究采用FPGA作为进行深度学习加速,以期使其对深度学习领域经常使用的上层软件兼容性更强,并行训练架构更加灵活。同时,FPGA在单位能耗下性能更强,这对大规模服务器部署或资源有限的嵌入式应用的研究而言也至关重要。
建设深度学习硬件加速环境需要较大的资金和技术投入,需要进行精细研究并审慎选择,建议遵循以下原则:
选择硬件加速环境时尽量采用具备更多用户友好开发工具的芯片,这样能够很好的降低学习门槛。建立庞大且需要平行的深度网络,需要考虑硬件的开放性、数据并行和模型并行支持度,以及单位能耗特点。深度学习模型训练过程中需对深度网络进行多次反向传导运算计算量大,而深度模型进行生产应用时只需进行前向传播计算,因此建议在训练环境中采用硬件加速,生产应用环境无需进行硬件加速。
常用深度学习软件框架简介
深度学习是一个发展迅速的领域,除了众多学术界专家在理论方面的贡献之外,工业界也为深度学习提供了很多工具框架,例如,伯克利视觉和学习中心开发的Caffe,微软推出的开源深度学习框架CNTK,LISA开发的基于Python的Theano,Google主推的TensorFlow、以及Torch、MxNet等。目前来看,业界使用最多的是Caffe、Theano和TensorFlow。
(1)Caffe
Caffe是由伯克利视觉和学习中心(Berkeley Vision and Learning Center,BVLC)开发的基于C++/CUDA/Python实现的卷积神经网络框架,提供了面向命令行、Matlab和Python的绑定接口。Caffe 遵循BSD-2协议,代码组织良好,可读性强。同时,Caffe提供了一整套工具集,可用于模型训练、预测、微调、发布、数据预处理,以及良好的自动测试。
(2)Theano
Theano是由LISA开发的基于Python的深度学习框架,可以定义数学表达式并高效地优化、求值。Theano支持机器学习中的逻辑回归(LR)、多层感知器(MLP)、深度卷积网络等监督学习方法,以及自编码器(AE)、降噪自编码器、受限玻尔兹曼机(RBM)、深度置信网络(DBN)等非监督/半监督学习方法。但是Theano计算速度慢,虽然有GPU加速,但仍然不如其他框架高效。
(3)TensorFlow
TensorFlow是Google在2015 Google Research Blog宣布推出的新一代人工智能学习系统。TensorFlow是一个异构分布式学习系统上的大规模机器学习框架,移植性好,小到移动设备如手机,大到规模集群,都能支持。同时TensorFlow支持多种深度学习模型,随着TensorFlow源码不断开放,对新硬件、新设备、新的加速库如cuDNN的支持力度也在不断提升。
深度学习软件框架选择
通过对Caffe、Theano、TensorFlow的研究经验,其优势与缺陷可归纳为下表所示:
2.png (62.81 KB, 下载次数: 0)
深度学习软件框架
14:13 上传
在实际的工作中,需要依据问题特征和业务需求进行深度学习框架工具的选择,以下是挑选工具框架的几点建议:
(1)进行数据特征提取或基于现有模型进行微调选用Caffe。
(2)需要对预训练模型进行复杂处理选用Theano。
(3)处理适用于RNN模型的问题,选用Theano或者TensorFlow。
(4)建立庞大且需要平行的深度网络模型时选用TensorFlow。
(5)Caffe、Theano、TensorFlow各有自身独特优势,在选择某一深度学习框架时要保持对其他工具技术发展的关注。
深度学习是建立在对大量训练数据进行学习、特征提取等基础之上的实践性方法,深度学习模型只有在海量数据输入下才能达到最好的性能,可见有效的数据对深度学习的重要性。同时,数据管理中的数据的采集、处理等各环节也很有讲究,有些实践性的技巧。
依据获取数据的成本可将市场上的数据划分为三类:免费公开数据、付费公开数据以及私有数据。以下列举了不同类型数据的获取渠道:
(1)免费公开数据源
(a)公开的数据库
公开数据库是获取海量数据最简单有效的方式。公开数据库基本按照学术问题、行业应用划分针对性较强,而且数据库中数据大都经过人工整理和标注,规范性和易用性更强。以下是一些常用的公开数据库资源列表:
3.png (61.51 KB, 下载次数: 0)
公开数据库
14:14 上传
(b)网络爬虫
网络爬虫是获取各类网站公开数据的有效工具,使用网络爬虫是研究深度学习技术的一项必备技能。网络采集器属于网络爬虫的一种,通过软件的形式实现简单快捷地采集网络上分散的内容,具有很好的内容收集作用,而且不需要技术成本,可被用作为初级的数据采集工具,例如火车采集器、八爪鱼、集搜客等。此外,针对特定网站的特定数据采集需求,也可结合开源系统自行开发爬虫工具,这样具有更高的自由性和自主性。利用爬虫可以获取一些从其它渠道获取不到的数据资源,更重要的是帮助研究者打开寻找和搜集数据的思路。
(2)付费公开数据源
(a)商业化数据交易平台
数据交易平台是一些专注于互联网综合数据交易和服务的公司,其致力于融合和盘活各类大数据资源。可以通过数据购买的方式在数据交易平台上获取深度学习训练和测试数据。国内知名的商业化数据交易凭条有优易数据、数据堂等,其提供的服务和数据资源各有特色:
4.png (77.19 KB, 下载次数: 0)
商业化数据交易平台
14:14 上传
(b)政府性数据交易平台
随着国家十三五规划中提出的国家大数据战略的实施,各地方政府对大数据产业发展高度重视,因而国内政府性交易平台建设也蓬勃发展,成为重要的数据源头:
5.png (180.37 KB, 下载次数: 0)
政府性数据交易平台
14:14 上传
(3)私有数据源
(a)商业合作交换
目前产业发展已经进入大数据时代,数据是企业生存的核心竞争力之一,因而各行各业对自身数据的保护都倍加关注,想通过付费或爬取的方式获得企业的核心数据就变得更加困难。然而,如果行业间的数据合作能够给双方带来巨大的数据增值收益,则可以通过推动跨领域商业合作的方式进行数据互换,从而完成数据收集形成完整的数据链。
(b)自建数据库
在有些数据是外界无法获取的情况下有可能需要自主进行数据采集并维护一个小型的数据库。为了保证数据采集的有效性在进行数据采集的过程中关键是明确数据要求。以银行卡分类问题为例,通常采用照片拍摄与视频拍摄,为了避免拍摄之后复杂的裁剪旋转工作,设定如下拍摄要求:
在拍摄板中央固定一个卡槽,相机固定在中央上方并与板面保持平行;选择阳光、阴天、夜晚三个场景于室内室外分别拍摄。增加可变灯光进行场景模拟。
数据预处理
获取数据后需要进行数据处理,在深度学习中,常常面临数据不足的问题,在这种情形下,深度学习算法往往难以达到最优的效果,因此需要对现有的原始数据源进行必要的扩充与拓展或称为数据合成。
以图片数据处理为例,常见的数据扩充方法大致有如下几种:
(1)旋转|反射变换(rotation/reflection): 随机旋转图像一定角度,改变图像内容的朝向。
(2)翻转变换(flip):沿着水平或者垂直方向翻转图像。
(3)缩放变换(zoom):按照一定的比例放大或者缩小图像。
(4)平移变换(shift):在图像平面上对图像以一定方式进行平移,可以采用随机或人为定义的方式指定平移范围和平移步长,沿水平或竖直方向进行平移,改变图像内容的位置。
(5)尺度变换(scale):对图像按照指定的尺度因子, 进行放大或缩小; 或者参照SIFT特征提取思想, 利用指定的尺度因子对图像滤波构造尺度空间. 改变图像内容的大小或模糊程度。
(6)对比度和亮度变换: 在图像的HSV颜色空间,改变饱和度S和V亮度分量,保持色调H不变。对每个像素的S和V分量进行指数运算(指数因子在0.25到4之间), 增加光照变化。
(7)噪声扰动(noise): 对图像的每个像素RGB进行随机扰动, 常用的噪声模式是椒盐噪声和高斯噪声。
此外,从视频中提取图片也是获取大量数据的有效途径,通过自制视频转换工具可将上述图片预处理方法进行集成,这样能够有效扩大数据采集量。
对于有监督的分类任务一项重要的工作就是数据标注。目前数据标注的方法可划分为人工标记与自动化标记。
(1)人工标注
对于分类问题,可以人工将类别相同的数据放在一个文件夹中,然后通过代码遍历访问数据形成分类标签。对于检测问题,需要人工用矩形框来标记图片中的物体,往往会采用标注工具,比如LabelImg,辅助完成。
(2)自动化标记
自动化标记则是通过少量样本人工标记,然后提取传统特征(比如SIFT、LBP等)并训练分类器,接着对大量待标记样本进行分类标记。经过一次分类器分类的样本标记往往错误较多,对于这批标记数据进行抽样训练另一个分类器进行分类,对于两次具有不同标签的数据进行人工修正,则可以以少量人力得到精度较高的标记数据。
模型训练常用深度网络简介
深度学习技术的核心基础是深度网络模型,在其产生和发展演进的过程产生了诸多网络结构,目前常用的深度网络结构有DBN、CNN、RNN。下表对DBN、CNN、RNN的网络结构和特特性进行了简要对比。
6.png (171.54 KB, 下载次数: 0)
深度网络介绍
14:14 上传
深度网络模型选择
学界对深度网络所使用的问题已经有了基本的认识,下表给出了一些深度学习算法和对应的领域:
7.png (100.21 KB, 下载次数: 0)
深度网络模型选择
14:14 上传
因而,建议从问题特征出发选择对应的深度网络结构,并遵循如下原则:
(1)对于文本领域,整体选择RNTN(递归张量神经网络)或DBN来处理,RNTN是RNN(循环神经网络)的一个变种。
(2)对于文档(相对于文本更大),选择自编码器或者DBN解决问题。
(3)对于图像来说,DBN或CNN应用更多,处理图像搜索或图片语义问题采用自编码器更好。
(4)处理声音问题,选择RNN或CNN。
(5)处理时间序列问题,比如预测分析,选择DBN或DNN。
参数调优技巧
在确定深度网络结构后,需要通过大量训练和测试以获取有效的模型,以下是一些常用的参数设定和调优原则。
(1)尽量基于成熟模型进行微调(fine-tune)
深度网络参数训练优化是一项冗长而复杂的工作,若技术人员的经验不足,则容易导致训练过程参数不收敛或者陷入局部最优而得不到很好的结果。因此,基于前人已经训练好的网络参数模型进行微调是目前通行的良好实践原则。
(2)权重初始化策略
在开始训练深度网络之前,需要对网络连接权值进行初始化,目前在神经网络中建议使用的权重初始化策略是将值归一化到范围[-b,b],b为:
8.png (9.85 KB, 下载次数: 0)
权重初始化策略
14:14 上传
9.png (8.86 KB, 下载次数: 0)
14:14 上传
分别是权值向量之前和之后的隐藏层大小,这样有助于加速网络参数收敛,避免局部最优或网络失灵。
(3)高维度网络结构克服局部最小
深层网络由于是高度非线性的,有着太多的局部极值,传统观念认为在这样的条件下很难保证能够得到一个可以接受的好的解,容易陷入局部最小。实际上通过增加深度网络的维度和训练时间,陷入局部最优解的概率会越小。当损失函数接近全局最小时,如果我们找到了真正的局部最小,那么它将非常接近全局最小,这种差异是无关紧要的。比如从alexnet、VGG、googlenet、resnet等卷积模型中进行选择并在自己的数据集进行微调。这些网络效果随层数递增,因而采用resnet或者更新的googlenet-v4将会发现测试结果会更令人满意。
(4)数据批量大小设定
增加网络强度的一种方式(受计算而不是内存限制)是,将数据分成小批量。这可以避免一些内存操作,GPU也擅长并行处理大矩阵计算。然而,增加批次的大小的话可能会对训练算法有影响,并且合并需要更多时间。重要的是要找到一个很好的平衡点,以在最短的时间内获得最好的效果。此外,使用小批量的数据,梯度会更加稳定。
(5)训练误差衡量准则
在训练与测试一个深度神经网络模型时,我们通常使用三个数据集,即训练集、开发集、测试集。模型对应这三个数据集有三个误差,训练集误差、开发集误差、与测试集误差,另外还有一个人类梳理这类问题的误差值—人类水平误差。基于此的著名的偏差-方差权衡理论是指导我们调参的准则:人类误差与训练集误差之间的差距称为可避免的偏差,这部分误差可以通过进一步学习及模型调优来避免。而训练集和开发集之间的差距称为方差,它是训练集与开发集的分布差异造成的。
当训练误差较大时,是指模型并未达到最优解(陷入局部最优)或者模型不够表达你的数据集。这时需要更换更深的模型,或者训练更长的时间。当训练误差较小,而开发集误差较大,则是模型过拟合,即训练样本并未完全包含目标任务的数据类型,这时候需要增加训练样本或者使用正则化来防止过拟合。
如果训练集误差与开发集误差都很小,测试集误差较大,那么是开发集与测试集的分配不合适,需要增大开发集所占的比例。
(6)其他训练技巧
归一化实值数据,减去平均值,再除以标准差。降低训练过程中的学习率。使用动量,帮助参数通过停滞区。
上述几个小节介绍的都是在深度学习研究过程中需要注意的事项,本节将讨论如何将深度网络模型与生产系统进行无缝对接。
训练环境与生产环境的数据接口
实现深度学习训练模型到生产系统的迁移,需要在屏蔽训练环境和生产应用环境的软硬件环境的基础上实现网络结构和参数数据的无缝兼容。目前通行的原则是网络定义文件、网络参数文件分离。
(1)深度网络定义文件
用于定义深度网络的节点设置和节点间连接结构的参数文件,例如采用Caffe的prototext文件。
(2)深度网络参数文件
用于保存训练结束时得到的深度网络各连接之间加权值,以二进制流形式存储,例如采用caffe的caffemodel文件。
生产应用环境服务接口
深度学习的理论模型投入生产仍需要“IT团队”花费大量时间进行系统性的改变和优化,因此在深度学习生产应用环境中,通过Restful API向企业其他生产系统提供服务是很好的形式,这样既可以屏蔽内部实现细节,又可以在产生模型变动时实现平滑的迁移。在API的规划中需包含如下必要接口:
10.png (105.89 KB, 下载次数: 0)
生产环境下的服务
14:14 上传
模型退化的解决方法
深度学习问题建模的过程中,训练数据集是固定的,大部分数据由数据合成产生,数据质地和分布可能与实际生产应用不一致,容易导致训练集误差、开发集误差、与测试集误差。因而在生产环境中进行模型应用时,随着调用案例的增加,会产生模型退化问题,即训练模型分类错误增多。要解决这一问题,可以采取以下措施:
(1)对判别置信度低或用户反馈出现判别错误的数据进行保存收集。
(2)定期利用收集到的数据对原有模型进行微调并在生产应用环境进行模型更新。
转自:infoQ
作者:费志军、刘想、王宇、华锦芝
本帖被以下淘专辑推荐:
& |主题: 177, 订阅: 5
& |主题: 9, 订阅: 5
主题帖子积分
高级会员, 积分 1141, 距离下一级还需 3859 积分
高级会员, 积分 1141, 距离下一级还需 3859 积分
站长推荐 /4
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
等待验证会员请验证邮箱
新手获取积分方法
技术类问答,解决学习openstack,hadoop生态系统中遇到的问题
Powered by2016深度学习统治人工智能?深度学习十大框架
2015 年结束了,是时候看看 2016 年的技术趋势,尤其是关于深度学习方面。新智元在 2015 年底发过一篇文章《深度学习会让机器学习工程师失业吗?》,引起很大的反响。的确,过去一年的时间里,深度学习正在改变越来越多的人工智能领域。Google DeepMind 工程师 Jack Rae 预测说,过去被视为对于中型到大型数据集来说最佳的预测算法的那些模型(比如说提升决策树(Boosted Decision Trees)和随机森林)将会变得无人问津。 深度学习,或者更宽泛地说——使用联结主义架构的机器学习算法,可能会让机器学习算法变成过去时,因为深度学习算法还远远不是饱和状态。在未来的几年里,很有可能会出现一些训练深度神经网络的方法,让它们能够显著提升性能。在优化方法、激活功能、联结结构以及初始化步骤之间,还有一些突破出现的空间。这很可能让很多机器学习算法接近出局的边缘。那么,2016 年是否能看作深度学习正式统治人工智能的一年?如果是这样,我们又能为此做好什么准备?新智元整理了业内人士关于 2016 年的深度学习技术展望,以及 2015 年深度学习最流行的 10 大框架。深度学习十大技术展望IIya Sutskever:OpenAI 的研究部负责人 我们期待看到更深度的模型(Deeper Models),相比今天的模型,它们可以从更少的数据中学习,尤其是在非监督学习方面,会有显著的进步。我们还可以期待,在语音识别和图像识别领域,我们能看到更加精准而且有用的结果。Sven Behnke:波恩大学全职教授,智能系统小组主任我期待深度学习技术,会在那些日益增多的多结构数据问题中得到应用。这会给深度学习带来新的应用领域,包括机器人,数据挖掘和知识发现。Christian Szegedy:Google 高级工程师 现在的深度学习算法和神经网络,距离理论上可能的表现还很远。相比一年以前,我们现在的视觉神经网络模型,它的价格便宜了 5 到 10 倍,处理的参数少了 15 倍,但表现的还更好。这背后是更好的网络结构和更好的训练方法。我相信这仅仅是开始,深度学习算法会如此便宜,它能运行在便宜的手机设备中,而且不用更多的硬件设备支撑,也不需要额外的存储器。Andrej Karpathy:斯坦福大学计算机科学博士,OpenAI 的研究工程师 我看到了一个趋势,结构会趋于更大,更复杂。我们会建造一个超大型的神经网络,能够交换神经网络组件,提前训练部分网络,增加新的模块,连带调整所有组件。例如,卷积神经网络曾经是最大的深度神经网络,但是今天它们被分离出来,作为新的大型神经网络一部分。相似的,现在的这些神经网络,也会是新一年更大型神经网络的一部分。我们在学习乐高玩具的拼法,学会如何把它们高效拼接在一起。Pieter Abbeel:UC 伯克利大学助理教授,Gradescope 联合创始人 依赖于监督技术的深度学习垂直领域,需要用新的方法(NLP)超过现有的技术表现。我们会看到深度学习在非监督学习和增强学习方面的突出表现。Eli David:Deep Instinct CTO 在过去两年,我们看到了深度学习在各个领域获得很大突破。但即便如此,5 年之内并不会达到人类水平的圣杯(但我认为,终其一生这会出现)。我们在各大领域看到极大的突破。特别的,我认为最具有希望的领域,来自于非监督学习,这个世界的大部分数据是没有标签的,而且我们大脑本身,也是非常好的非监督学习盒子。当 Deep Instinct 成为第一个在安全领域使用深度学习的公司时,可以预计有更多的公司也会使用深度学习来部署。但是深度学习的门槛还是非常高,尤其对于互联网安全公司来说,他们其实并不使用人工智能工具(只有很少的解决方案使用了传统的机器学习技术)。所以深度学习要在安全领域得到大规模应用,还会经过很多年的时间。Daniel McDuff:Affectiva 研究主管 在计算机视觉、语音分析以及其他领域,深度学习已成为机器学习中的支配形式。我希望使用 1 到 2 个 GPUs 就能部署的准确识别系统,能够让开发者们把新的软件部署到真实世界。我希望更多的焦点会放在非监督训练,或者半监督训练的算法上。J?rg Bornschein:Google 学者,在加拿大前沿技术研究院(CIFAR)预测未来总是很难的。当我们在大规模系统里考虑机器学习,在机器人控制的系统领域,或者在大规模系统里的大脑系统,非监督、半监督和强化学习会扮演愈发重要的角色。很明显的是,单纯的监督学习方法在理论上受到太多限制,很难解决实际问题。Ian Goodfellow:Google 高级研究工程师 我预测在未来5年的时间里,我们的神经网络可以概括视频里发生了什么,而且有能力生成短视频。神经网络已经成为视觉任务的标准解决方案。我预测神经网络会成为 NLP 和机器人任务的标准解决方案。我还预测神经网络会在其他科学领域扮演重要工具,例如在基因行为预测,药物,蛋白质,新的医疗方案等。Koray Kavukcuoglu & Alex Graves:Google DeepMind 研究工程师 很多事情会在未来 5 年发生。我们预测非监督学习和增强学习越发重要。我们也预测多方式学习(Multimodal Learning)的兴起,而且会超越个体数据集进行学习。2015 深度学习十大顶级框架1.Keras Keras 是非常极简、高度模块化的神经网络库,用 Python 写成,而且能运行在 TensorFlow 和 Thenao 的顶层。它的设计初衷是实现更快的实验,让从想法到结果的时间尽可能少,这是做好研究的关键所在。2.MXNet 轻量、便携、灵活性强的分布式/移动深度学习系统,并能对动态的、突变的数据流进行调度。MXNet 能支持 Python、R、Julia、Go、Javascript 等编程语言,是出于效率和灵活性设计的深度学习框架。它能够给深度学习程序增加一些小佐料,而且能最大化产品效率。3.Chainer 深度学习的神经网络灵活框架。Chainer 支持各种网络架构,包括 Feed-forward Nets、Convnets、Recurrent Nets 和 Recursive Nets。它也支持 per-batch 的架构。Chainer 支持 CUDA 计算,它在驱动 GPU 时只需要几行代码。它也能通过一些努力,运行在多 GPUs 的架构中。4.Sickit-Neuralnetwork 深度神经网络的实施,而且没有学习崖(Learning Cliff)。这个库能够执行多层感知器,自动编码器和递归神经网络,它运行在稳定的 Future Proof 交互界面,并能和对用户更加友好的 Scikit-Learn 以及 Python 交互界面兼容。5.Theano-Lights Theano-Lights 是基于 Theano 的研究架构,提供最近一些深度学习模型的实现,以及便于训练和测试功能。这些模型不是隐藏起来的,而是在研究和学习的过程中,有很大的透明性和灵活性。6.Deeppy 基于 Theano 高度扩展性的深度学习框架。7.IdlfIntel 的深度学习框架。Intel Deep Learning Framework(IDLF)是一个 SDK 库,为深度神经网络提供训练和执行。它包括一些 API,能够把构建神经网络拓扑作为计算工作流程,进行函数图形优化并执行到硬件。我们最初的重点是驱动部署在 CPU(Xeon)和 GPU(Gen)上神经网络的物体识别(ImageNet 拓扑)。这个 API 的设计,使我们未来能很容易支持更多的设备。我们的关键原则是在每个 Intel 支持的平台上实现最大性能。8.Reinforcejs Reinforcejs 是一个增强学习库,能够执行常见的增强学习算法,而且可以做 Web 端的 Demos。这个库现在包括:动态规划方法(Dynamic Programming Methods)时间差分学习(Temporal Difference Learning)(SARSA/Q-Learning)Deep Q-LearningStochastic/Deterministic Policy Gradients 和 Actor Critic 架构9.OpenDeep OpenDeep 是服务于 Python 的一个深度学习框架,建立在 Theano 的基础上,专注在灵活性和易用性,为行业的数据科学家和前沿研究者服务。OpenDeep 是一个模块化、易扩展的架构,能够用来构建几乎所有的神经网络框架,以解决你的问题。10.MXNetJS MXNetJS 是一个 DMLC/MXnet 的 Javasript 包。MXNetJS 能给浏览器带来最新水平的深度学习预测 API。它通过 Emscripten 和 Amalgamation 运行。MXNetJS 允许你在各种计算图像中,运行最新水平的深度学习预测,并给客户端带来深度学习的乐趣。Via:
转载请注明:文章转载自 开源中国社区
本文标题:2016深度学习统治人工智能?深度学习十大框架
本文地址:
引用来自“a_ye”的评论前一个可能,后面的可能还需要点时间引用来自“Big Head”的评论强AI的兴起也就是二三十年内的事,毁灭不毁灭,那得看人类自己会不会作死了…… 引用来自“toneyw”的评论似乎人类不作死就不会被取代一样,有些东西就像历史车轮下的亡魂,没有做错什么,只不过是命运如此罢了。 世事皆有因果,被历史车轮取代的,错就错在不能认清形势,与时俱进。说人类被机器人取代的,都是没有真正思考过人工智能本质的外行人罢了
引用来自“a_ye”的评论前一个可能,后面的可能还需要点时间引用来自“Big Head”的评论强AI的兴起也就是二三十年内的事,毁灭不毁灭,那得看人类自己会不会作死了…… 似乎人类不作死就不会被取代一样,有些东西就像历史车轮下的亡魂,没有做错什么,只不过是命运如此罢了。
引用来自“Big Head”的评论错,无论你多贪婪,机器人是不会超出你预计范围的,毁灭人类的机器人必然出自黑客之手 引用来自“G_Young”的评论黑客也是人类。 引用来自“Big Head”的评论但是黑客+恐怖分子=反人类 引用来自“G_Young”的评论不知道未来人类创造的智能会不会失控。反正现在大家的基本观念是:先有,等一定规模后再考虑安全。 那肯定啊,没创造出来的东西,怎么考虑安全,总不能因噎废食
引用来自“Big Head”的评论错,无论你多贪婪,机器人是不会超出你预计范围的,毁灭人类的机器人必然出自黑客之手 引用来自“G_Young”的评论黑客也是人类。 引用来自“Big Head”的评论但是黑客+恐怖分子=反人类 不知道未来人类创造的智能会不会失控。反正现在大家的基本观念是:先有,等一定规模后再考虑安全。
引用来自“Big Head”的评论错,无论你多贪婪,机器人是不会超出你预计范围的,毁灭人类的机器人必然出自黑客之手 引用来自“G_Young”的评论黑客也是人类。 但是黑客+恐怖分子=反人类
引用来自“Big Head”的评论错,无论你多贪婪,机器人是不会超出你预计范围的,毁灭人类的机器人必然出自黑客之手 黑客也是人类。
错,无论你多贪婪,机器人是不会超出你预计范围的,毁灭人类的机器人必然出自黑客之手
引用来自“a_ye”的评论前一个可能,后面的可能还需要点时间强AI的兴起也就是二三十年内的事,毁灭不毁灭,那得看人类自己会不会作死了……
前一个可能,后面的可能还需要点时间}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信