深度学习以不少于两个隐含层的神经网络对输入进行非线性变换或表示学习的技术,通过构建深层神经网络,进行各项分析活动。深层神经网络由一个输入层,数个隐层,以及一个输出层构成。每层有若干个神经元,神经元之间有连接权重。每个神经元模拟生物的神经细胞,而结点之间的连接模拟神经细胞之间的连接。总结起来是这个样子的:
这种流向图的一个特别属性是深度(depth):从一个输入到一个输出的最长路径的长度。深度学习并非一个新的概念,但在2006年由Hinton等人引领了一波爆发。然而近年来虽然许多人都在谈论深度学习,但这项技术在实际应用时到底有哪些坑?创办一家成熟的依赖深度学习的公司需要哪些要素?下面我们将来重点讲解下深度学习之计算能力。
计算能力
首先,深度神经网络复杂,训练数据多,计算量大。深度神经网络中神经元多,神经元间连接数量也相当惊人。从数学的角度看,每个神经元都要包含数学计算(如Sigmoid、ReLU或者Softmax函数),需要估计的参数量也极大。语音识别和图像识别应用中,神经元达数万个,参数数千万,模型复杂导致计算量大。所以计算能力是深度学习应用的基础。
不仅如此,计算能力还是推动深度学习的利器,计算能力越强,同样时间内积累的经验就越多、迭代速度也越快,百度首席科学家吴恩达博士认为深度学习的前沿正转移到高性能计算(HPC),这也是他目前在百度的工作重心之一,吴博士认为深度学习上的很多成功得益于主动地追求可用的计算能力,2011年Jeff Dean(谷歌第二代人工智能学习系统Tensorflow的设计者之一)创立并领导了谷歌深度学习小组,使用谷歌云扩展深度学习;这使得深度学习得以推向工业界。在2013年,科茨博士等人建立了第一个HPC式的深度学习系统,可扩展性提升了1-2个数量级,使深度学习有了革命性的进步——计算能力这种对于深度学习的支撑与推动作用是不可替代的。
目前这方面技术处于领先地位的还是像百度、谷歌这样的大型互联网公司,当然也有一些像地平线机器人这样的初创公司在该领域颇有成就,由百度深度学习研究院负责人余凯博士创立的地平线机器人公司设计的深度神经网络芯片相比传统的CPU芯片能够支持深度神经网络中图像、语音、文字、控制等方面的任务而不是去做所有事情,这样比在CPU上用软件要高效,会提高2-3个数量级。