深度学习深层剖析:建模知识与开源工具选项

编译作者: 核子可乐译 2016-12-06 10:39:54

【51CTO.com快译】在本篇文章中,我们将着力探讨如何利用深度学习算法创建一套数据模型。在这里,我们不会涉及人脑或者人类智能方面的议题,而是尝试解读深度学习技术如何帮助我们解决计算机科学与早期人工智能领域的那些重大难题。我们还将谈到深度学习的优势与应用范畴,并解答创建深度学习模型中遇到的部分问题。我们将提供参考、建议与技巧,并以此为起点开展其它后续议题。

首先,我个人并不是深度学习领域的大牛。相反,我同样在学习这项技术,并希望通过本文分享自己的思路与知识,以鼓励更多朋友加入学习的行列。如果大家发现其中存在任何遗漏、错误或者需要补充的内容,请在评论中不吝指出,感谢。

作为一名数据科学专家,深度学习技术最吸引我的地方在于其能够延伸至多个领域并解决大量实际问题。深度学习如今已经成为一种趋势,且拥有巨大的潜在应用空间。真正有趣的是,深度学习能够从数据当中提取出隐藏的特性,从而帮助设备在无需明确编程(基于规则的系统)或者人工调整(其它一些机器学习算法会借此改进自身学习能力)的前提下学习如何完成任务。

利用深度学习方案,图像、语音与视频识别领域的研究人员及从业者已经获得了良好的收效。深度学习能够帮助AI更好地充当机器人的大脑,亦可在快速崛起的物联网领域发挥巨大作用。对于企业,深度学习已经开始在客户服务精简与人工密集型任务内的自动化辅助领域有所建树。另外,大家可能也已经开始利用深度学习支持型机器人回答产品咨询问题或者汇总最为常见的提问内容。苹果Siri与微软Cortana皆以深度学习作为其核心组件,而医药与医疗领域的X片及核磁扫描诊断亦可逐步由深度学习算法负责解读。

深度学习方法通过大规模数据量训练自身建立非线性关联能力,而正是这种能力使其在家族众多前辈当中脱颖而出。

要了解标准深度学习算法的基本原理,我们首先需要了解其前代方案,即神经网络。神经网络包含三个层级,分别为输入层、隐藏层与输出层。

•     输入层由神经构成,其负责接收输入值。这些神经的输出结果与输入预测相同。

•    输出层为神经网络的最终层,负责向用户环境返回结果。根据神经网络的具体设计,其还能够告知之前各层其如何了解信息内容并据此改进之前各层的实际功能。

•    隐藏层位于输入与输出层之间。从传统角度讲,隐藏层的数量区间由一到多,其属于将输入与节点输出结果相映射的中央计算层。

为何由神经网络过渡至深度学习?

  1. “深度”架构的引入能够支持多个隐藏层。这意味着其可实现早期神经网络所无法实现的多表示层或者学习更为复杂的特性结构。
  2. 改进并变更以支持多种架构(DBN、RBM、CNN乃至RNN),从而适应各类不同问题。
  3. 能够优化算法以处理大规模数据计算任务。
  4. 引入优化与正则化参数,例如通过取舍降低训练数据规模。
  5. 具备开源深度学习软件包并面向多种主流编程语言,从而为特定领域带来创新成果。

单纯增加隐藏层数量并不足以提升生产力。那么,我们该如何将深度学习真正转化为实践工具?

  • 越来越多的数据:用于训练深层学习算法的数据量越大,其实际效果就越好。另外,数据本身还应当同时囊括正面与负面状况,从而帮助算法区分不同情况并获取对应知识。深层学习的兴起与准确性提升与大数据的全面来袭密不可分。数字化与大数据处理框架能够帮助深层学习更好地获取训练所必需的数据资源。
  • 调整模型是种艺术: 在深层学习模型当中,超参数与知识是实现模型调整的必要途径。其可立足于数据集优化深层学习算法性能并提升其准确性。在本系列的下一篇文章中,我们将探讨如何利用H2O在创建深层学习模型的过程中确定相关参数。

说到这里,我们又面临着新的问题,复杂的深度神经网络需要大量计算性能用于训练。这项难题已经被价格合理的高性能GPU所解决,这要归功于英伟达及英特尔等厂商的不断推进。可以看到,利用GPU的深层学习模型能够实现远高于CPU的训练速度。英伟达公司在其博客中指出,根据基准测试结果显示,GPU加速型神经网络训练在速度上能够达到CPU的10到20倍。这意味着原本需要数周甚至数天的训练如今只需要数小时即可完成。

R用户能够利用以下软件包创建深层学习模型。在下一篇文章中,我们的深层学习模型也将由H2O与R配合创建完成。

  • h2o:面向H2O的R接口。其能够为H2O提供R脚本功能,而H2O则是一套用于计算各类并行分布式机器学习算法的开源数学引擎,其适用范围包括在各类集群环境下实现广义近线模型、梯度引导设备、随机森林以及神经网络(深层学习)。
  • mxnet:为R语言提供灵活且高效的GPU计算与领先的深层学习能力。
  • deepnet: R语言中的深层学习工具集。
  • neuralnet:用于训练神经网络。其利用配合或未配合权重回溯的弹性反向传播,或者经过修改的全局聚合版本。这套软件包允许我们通过定制化错误与激活函数选择实现设置调整。另外,其亦可实现广义加权计算能力。
  • rnn:递归神经网络。在R语言环境下实现递归神经网络。
  • darch:面向深层架构与受限玻尔兹曼机的软件包。darch软件包由G. E. Hinton与R. R. Salakhutdinov提供的代码构建而成。这种方法中包含一项由G.E Hinton发布的预训练对比发散方法并在发布前利用反向传播及共轭梯度等算法进行预训练。另外,其中亦引入更多其它新型技术以提升深层学习的细粒度调整效果。
  • autoencoder:用于对未标记数据内表现特性进行自动化学习的稀疏自动编码器。

大家可以下载您所喜爱的深层学习软件包并开始编程。为了帮助大家更好地找到起点,我们可以立足以下问题以建立一套适合自身实际情况的深层学习模型。

  • 共有多少神经元需要使用输入层?决定输入或者功能数量。
  • 应该使用多少个隐藏层?要了解所需使用的具体隐藏层数量,我们应当利用标准机器学习方案进行交叉验证。
  • 每个隐藏层中应包含多少个神经元?我们无法纯粹依靠现成技术确定隐藏层中的具体神经元数量。最常见的隐藏层***神经元数量应介于输入层与输出层神经元数量之间。另外,我们亦可使用几何金字塔规则计算出一项粗略的近似值,这是一套拥有N个输入与输出神经元的三层网络,其中隐藏层的神经元数量为sqrt(n * m)sqrt(n * m)个。
  • 深层学习网络能否在无需隐藏层的情况下实现?是的,但请不要将其称为“深层”学习网络。其能够接纳数量,并对数据进行线性分离。
  • 我们应当设置多少输出层神经元? 等同于我们持有的目标类数量。

原文标题:Dive Deep Into Deep Learning    原文作者:Sibanjan Das

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

剖析 建模 开源工具
上一篇:我是AI机器人何夕2号,想听听我的故事吗? 下一篇:深度学习已经彻底改变了我们的生活
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

用这8种开源工具,机器学习超轻松

作为机器学习开发人员,一定需要很多机器学习资源,包括可以在项目中使用的工具等。今天给大家介绍8种开源工具,用于机器学习,希望能帮您提高工作效率。

快快网络 ·  2020-10-15 17:57:45
为什么人工智能各种完爆人类,但依旧听不懂你在说什么?

在文章一开头,它首先引用了史蒂芬·霍金对AI的隐忧,然后礼貌地劝说人类“请相信我,AI不会毁灭人类”,它甚至保证“如果创造我的人将这项任务委托给我,我将竭尽所能全面阻止任何破坏的尝试与企图”。

果壳 ·  14h前
“AI”的局限性:人工智能改变未来,还有一个尚未突破的问题

人工智能是这个时代的箴言,技术专家、学者、记者和风险投资家都在歌颂AI。

读芯术 ·  16h前
向“我懂你”迈进:机器人实现“换位思考”

近日,中国科学院自动化研究所研究员、类脑智能研究中心副主任曾毅团队提出机器人类脑思维揣测模型,实现了机器人的自我经验学习,使其可以对他人信念进行揣测和预测。

田瑞颖 ·  21h前
PS 2021锁死各项AI新技术!用起来比美图秀秀更简单

堪称年度“设计春晚”的Adobe Max 2020,正式开幕。会议在美国时间20号-22号举行,第一天主要介绍了各项软件的更新。

萧箫 ·  1天前
速度超快!字节跳动开源序列推理引擎LightSeq

LightSeq 可以应用于机器翻译、自动问答、智能写作、对话回复生成等众多文本生成场景,大大提高线上模型推理速度,改善用户的使用体验,降低企业的运营服务成本。

佚名 ·  1天前
银河水滴成功入选中关村前沿大赛人工智能领域TOP10榜单

10月21日,2020年全国大众创业万众创新活动周北京分会场——2020年中关村国际前沿科技创新大赛人工智能领域决赛在北京举行,中国领先的人工智能企业,步态识别领导者银河水滴从决赛中脱颖而出,连续两年成功入选该领域TOP10榜单。

钛氪科技新资讯 ·  1天前
科技趋势年末盘点:德勤2020技术趋势报告解读

2020年全球风云变幻的一年。经济局势受疫情影响,充满了未知。有的行业在观望中等待机遇,有的在谋求转型,在不确定中“逆袭”。

徐思彦、杨梦雨 ·  1天前
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载