您的位置:网站首页 > Java工具 > 正文

JIFANG360com - 机房360

类别:Java工具 日期:2017-8-8 13:56:26 人气: 来源:

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

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

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

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

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

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

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

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

   “深度”架构的引入能够支持多个隐藏层。这意味着其可实现早期神经网络所无法实现的多表示层或者学习更为复杂的特性结构。

   改进并变更以支持多种架构(DBN、RBM、CNN乃至RNN),从而适应各类不同问题。

   越来越多的数据:用于训练深层学习算法的数据量越大,其实际效果就越好。另外,数据本身还应当同时囊括正面与负面状况,从而帮助算法区分不同情况并获取对应知识。深层学习的兴起与准确性提升与大数据的全面来袭密不可分。数字化与大数据处理框架能够帮助深层学习更好地获取训练所必需的数据资源。

   调整模型是种艺术: 在深层学习模型当中,超参数与知识是实现模型调整的必要途径。其可立足于数据集优化深层学习算法性能并提升其准确性。在本系列的下一篇文章中,我们将探讨如何利用H2O在创建深层学习模型的过程中确定相关参数。

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

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

   h2o:面向H2O的R接口。其能够为H2O提供R脚本功能,而H2O则是一套用于计算各类并行分布式机器学习算法的开源数学引擎,其适用范围包括在各类集群下实现广义近线模型、梯度引导设备、随机森林以及神经网络(深层学习)。

   neuralnet:用于训练神经网络。其利用配合或未配合权重回溯的弹性反向,或者经过修改的全局聚合版本。这套软件包允许我们通过定制化错误与激活函数选择实现设置调整。另外,其亦可实现广义加权计算能力。

   darch:面向深层架构与受限玻尔兹曼机的软件包。darch软件包由G. E. Hinton与R. R. Salakhutdinov提供的代码构建而成。这种方法中包含一项由G.E Hinton发布的预训练对比发散方法并在发布前利用反向及共轭梯度等算法进行预训练。另外,其中亦引入更多其它新型技术以提升深层学习的细粒度调整效果。

   autoencoder:用于对未标记数据内表现特性进行自动化学习的稀疏自动编码器。

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

   应该使用多少个隐藏层?要了解所需使用的具体隐藏层数量,我们应当利用标准机器学习方案进行交叉验证。

   每个隐藏层中应包含多少个神经元?我们无法纯粹依靠现成技术确定隐藏层中的具体神经元数量。最常见的隐藏层最佳神经元数量应介于输入层与输出层神经元数量之间。另外,我们亦可使用几何规则计算出一项粗略的近似值,这是一套拥有N个输入与输出神经元的三层网络,其中隐藏层的神经元数量为sqrt(n * m)sqrt(n * m)个。

   深层学习网络能否在无需隐藏层的情况下实现?是的,但请不要将其称为“深层”学习网络。其能够接纳数量,并对数据进行线性分离。

  推荐:

  

关键词:系统建模工具
0
0
0
0
0
0
0
0
下一篇:没有资料

相关阅读

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved