深度学习在近年来的应用范围非常广泛,它已经渗透到了诸多领域,并获得了巨大的成功。深度神经网络通过大量神经元的非线性操作,使得网络模型具有强大的拟合能力,通过利用诸如GPU之类的高密度计算设备,使得网络模型能够在较短的时间范围内(数天)完成海量的训练数据(百万级以上)的训练。如果将深度学习看作是一个具有很强拟合能力的复杂函数,那么在有足够训练样本和计算资源的前提下,定义一个恰当的目标函数,就可以通过深度学习方法来解决各类问题,而且效果往往会出人意料。但是,深度学习取得成功的关键点也是其最容易出现瓶颈问题的地方,由于一般的深度学习网络具有庞大而复杂的结构,因此会有大量复杂的计算和对硬件设备的极高要求问题的出现,这使得深度学习在移动终端设备等实际应用过程中出现了极大的问题。
1。1 深度学习概述
近几年来,深度学习在机器学习领域取得了长足的进步与发展,基于深度学习算法而诞生出来的各类深度网络结构在自然语言处理、语音识别、生物信息学、计算机视觉和机器翻译等诸多领域得了到令人十分瞩目的成果。
深度学习基于人脑神经网络科学,它的灵感源于人脑视觉系统工作机理。1981年,诺贝尔医学奖获得者David Hubel和Torsten Wiesel发现人类视觉系统的信息处理是分层的[1],如图1。1所示,对于人类而言,当他观察到一副图像时,首先从视网膜出发,经过低层次的区域提取图像边缘特征,接着形成图像的基本形状或目标局部信息,再到高层的整体目标判断,甚至到更高层的前额叶皮层进行判断或分类,经过逐层的信息提取与整合最后形成一幅完整的画面。这也意味着,高层特征是低层特征的组合,特征表达从低层到高层越来越抽象化、概念化,也即越来越能表现语义或者意图,也就是说,大脑的工作是一个不断迭代、不断抽象化概念化的过程。而深度学习正是通过组合底层的特征表示来抽象成更高层的特征或类别属性[2]。
图1。1 人脑视觉机理。从左至右对信息的表示越来越明确化,直至形成最终的图像
20世纪80年代,诞生了神经网络的反向传播算法,利用反向传播算法,让人工神经网络从大量训练样本中学习统计规律,从而得出预测值。但这一时期的人工神经网络是只包含有一层隐藏节点的浅层模型,而且当时支持向量机(Support Vector Machine, SVM)等浅层机器学习模型的理论分析和应用效果十分突出,从而导致这一时期的人工神经网络研究领域进展缓慢。
1989年,Yahn Lecun等人便提出了训练多层网络结构的卷积神经网络算法[3],但是由于算法复杂度较高,而当时硬件条件相对落后,这一算法的应用效果并不理想。
直到2006年,加拿大多伦多大学教授Geoffrey Hinton在《科学》上发表的一篇文章中提出:1、具有多隐层的人工神经网络具有较强的特征学习能力[1];2、可以通过“逐层初始化”的方式来降低深度神经网络在训练过程中的难度[4]。同时,Geoffrey Hinton正式提出了“深度学习”概念,自此,深度学习在学术界开始受到大量研究人士的追捧。
2012年,Alex Krizhecsky等人设计的基于卷积神经网络的深度学习算法在ImageNet 大规模视觉识别挑战赛(ILSVRC)获得冠军,其在ImageNet上的评测结果将错误率从26。17%降到15。32%,这一结果在图像识别领域十分惊人。同年,Google公司开展了由斯坦福大学专家Andrew Ng和Jeff Dean负责的Google Brain项目,他们设计的网络拥有超过10亿个节点,实践证明,该网络能够从大量的数据中学习到特征,从而实现分类和识别任务。