转行深度学习,如何解决自己在学习中遇到的瓶颈问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转行深度学习,如何解决自己在学习中遇到的瓶颈问题?相关的知识,希望对你有一定的参考价值。

大数据和高性能的计算能力,让深度学习技术开始超越人类。随着深度学习技术在应用上已经取得的快速发展,有人开始认为,科技既然能够通过互联网,让全世界实现信息共享,那么,随着以深度学习为代表的人工智能技术的发展,有理由相信,未来将会有比人的智力更高的新物种被创造出来。

不过,在众人普遍看好深度学习技术的发展前景时,也有业内专业人士指出,深度技术在发展方面还存在着不少问题。这些问题主要体现在以下几个方面。

(1)理论问题。
深度学习的理论问题主要体现在统计学和计算两个方面。对于任意一个非线性函数,都能找到一个浅层网络和深度网络来表示。深度模型比浅层模型对非线性函数具有更好的表现能力。但深度网络的可表示性并不代表可学习性。要了解深度学习样本的复杂度,要了解需要多少训练样本才能学习到足够好的深度模型,就必须知道,通过训练得到更好的模型需要多少计算资源,理想的计算优化是什么。由于深度模型都是非凸函数,也就让深度学习在这方面的理论研究变得非常困难。

(2)建模问题。
工业界曾经有一种观点:“在大数据条件下,简单的机器学习模型会比复杂模型更有效。”在实际的大数据应用中,很多最简单的模型得到大量使用的情形也在一定程度上印证着这种观点。

但是,随着深度学习的快速发展,人们不得不重新思考这种观点。因为在大数据情形下,往往只有比较复杂或表达能力强的模型,才能充分挖掘海量数据中的信息。随着深度模型变得更强大,从大数据中发掘出的信息往往更有价值。大数据需要深度模型。比如说,语音识别所涉及的是大数据机器学习问题。其声学建模所面临的是高达十亿到千亿级别的样本训练。Google公司在一个语音识别实验中发现,训练后的DNN,训练样本上的预测误差,竟然与测试样本的预测误差基本相当。而在通常模型上,训练样本上的预测误差要明显小于测试样本。这是因为大数据里含有丰富的信息维度,从而让DNN这样高容量的复杂模型处于欠拟合状态。由此也就表明大数据需要深度学习。浅层模型模拟人工经验抽取样本特征,其功能主要是负责分类或预测。在这种情形下,特征的好坏就成为整个系统性能的关键。为此,为了发掘更好的特征,开发人员就得对需要解决的问题有深入的理解。要做到这一点,就需要反复摸索,这在时间上往往要花费数年。这就表明,人工设计样本特征在可扩展性上欠佳。
深度学习的实质是学习更有用的特征,最终提升分类或预测的准确性。其方法是构建深度模型和海量训练数据。可以说,特征学习是目的,深度模型是手段。相对浅层学习来说,深度学习具有多达5层、6层,甚至是10多层的隐层节点,还突出了特征学习的重要性。深度学习通过逐层特征变换,让分类或预测变得更容易。

利用大数据来学习特征,比通过人工规则来构造规则更能刻画数据的内在信息。那么,在推进深度学习的学习理论与计算理论时,能不能提出新的具有强大表示能力的分层模型呢?在具体应用上,又该怎样设计一个用来解决问题的最合适的深度模型呢?还有,是否存在可能建立一个通用的深度模型或者是建模语言呢?这些都是深度学习必须面对的问题。

(3)工程问题。
对于从事深度学习技术研发的人来说,首先要解决的是利用并行计算平台来实现海量数据训练的问题。深度学习需要频繁迭代,传统的大数据平台无法适应这一点。随着互联网服务的深入,海量数据训练的重要性日益凸显。而现有的DNN训练技术通常所采用的随机梯度法,不能在多个计算机之间并行。采用CPU进行传统的DNN模型训练,训练时间非常漫长,一般训练声学模型就需要几个月的时间。这样缓慢的训练速度明显不能满足互联网服务应用的需要。目前,提升模型训练速度,成为许多大公司研发者的主攻方向。比如谷歌公司,搭建起了DistBelief这个深度学习并行计算平台。通过采用异步算法,实现随机梯度下降算法的并行化,从而加快模型训练速度。不过,工程方面尽管取得了一定的进展,但对解决各种服务需求来说,仍然有很长的一段路要走。

深度学习引领着“大数据+深度模型”时代的到来。尤其是在推动人工智能和人机交互方面取得了长足的进步。同时也应该看到,深度学习在理论、建模和工程方面仍面临着一系列的难题。而在具体应用方面,深度学习也面临着一些挑战。

人工智能神经网络建设从最初的设想到成为信息技术中的应用,花了超过50年的时间。在克服传统计算机性能不足方面,神经网络算法较其他算法更具有先进性。在早期的实验中,网络训练方法是:“迭代地调整每个神经元施加到其输入的数据,来尽量减少整个网络的输出与所希望的结果之间的误差。”这样的训练虽然较过去有所改善,但让深度学习在规模上面临着一个挑站。

2006年,多伦多大学开发的训练技术能用于包含多个隐藏层的网络,其中的一种技术叫作“预训练”。这种方法能让上层提取高级特征,但无法解决规模问题。处在较高层的神经元,需要巨大的计算能力。如用于图像处理应用程序的第一层所需要分析的像素就多达一百万个。深度网络的多个层连接的数量非常巨大,每个图像的连接就达几十亿甚至上千亿。训练这样的大型网络,需要数千亿的浮点运算。这样的巨大规模,让神经网络的训练变得非常缓慢
参考技术A 深度学习作为机器学习的典范,在各领域显示出了广阔的前景。深度学习最大的特点在于从大量无关数据中获取有用信息,已经在很多实际中得到应用:从Netflix著名的电影推荐系统到Google的无人驾驶,从创造艺术和文学写作到各种预测,都在使用深度学习模型。
很多转行人士在学习深度学习算法时,往往会对算法的数学推导感到吃力,无法理解具体核心参数表示的物理意义,等弄懂算法原理后,面对实际问题,依然不知道如何利用算法解决。
造成这种普遍现象的原因,主要在于学习者数学基础不扎实、实践经验不足。
人工智能是一个将数学、算法理论和工程实践紧密结合的领域,是数学、概率论、统计学、各种数学理论的体现。机器学习作为实现人工智能的主流方法,最重要的基础就是数学和编程。对于普通程序员,C /C++、Python等编程能力比较强,但数学基础却相对薄弱。数学作为表达与刻画机器学习模型的工具,是深入理解机器学习算法原理的基石,也是算法创新的基础技能。
参考技术B 如果依靠自己无法解决这些瓶颈问题,可以考虑给孩子报一个辅导班,辅助孩子的学习,像迎上学之类的教育都是有很丰富的经验的。

以上是关于转行深度学习,如何解决自己在学习中遇到的瓶颈问题?的主要内容,如果未能解决你的问题,请参考以下文章

深度学习入门有多难?这篇带你零基础入行

三分钟解读2018年想转行大数据,该如何开始呢?

深度学习入门——引言

强化学习是如何解决问题的?

张亚勤:深度学习更近一步,如何突破香农冯诺依曼和摩尔瓶颈?

怎么解决深入学习PHP的瓶颈?