深度学习概述:从基础概念、计算步骤到调优方法

25f783c52fdc6550c090d59f012bb4b8.png

自2012年深度学习崛起以来,这项技术已被应用到计算机视觉、NLP、推荐等各领域,推动了技术发展,创造了巨大的商业价值。同时,深度学习的算法和网络结构在这期间也在不断发展,但不管怎样,它们都遵循深度学习的基础理论。

温故而知新,如今回顾深度学习的基本原理,依然对我们理解它从何发展而来,为什么能发挥作用至关重要,也对我们在下个十年推进深度学习有指导性意义。

因此,本文将重点回顾深度学习相关的基础理论知识。首先介绍深度学习与人工智能的相关概念,然后从感知机等初等神经网络结构出发,阐述深度学习模型的前向传播和反向传播计算理论。同时系统性地介绍常见的前馈神经网络和卷积神经网络,以及深度学习实践中模型常用的调优方法,包括多种权重学习的最优化算法和模型过拟合的调整方法。

1

深度学习与人工智能

深度学习(Deep Learning, DL)作为人工智能的一个重要子分支,说到深度学习,不得不提人工智能(Artificial Intelligence, AI)和与之密切相关的机器学习(Machine Learning, ML)。刚接触人工智能、机器学习和深度学习的读者可能比较容易混淆三者之间的关系,它们之间的相互包含关系如图1-1所示。机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。下面简要介绍相关概念。

fd64b32ceeda0f630eeee49321f1463a.png

图1-1 人工智能、机器学习、深度学习的包含关系

人工智能是在1956年由约翰·麦卡锡提出的概念,研究用于模拟、延伸和扩展人类智能的科学技术,属于现代计算机科学的一个重要分支。人工智能试图让计算机拥有人类的智慧,即具备理解语言、学习、记忆、推理、决策等诸多能力。人工智能延伸出了很多子领域,包括机器人、语音识别、图像识别、自然语言处理和专家系统等。

机器学习是实现人工智能的重要技术,采用算法解析观测到的大量数据,从中学习出更具一般性的规律,然后对真实世界中的事件作出预测。典型的机器学习算法包括决策树、随机森林、逻辑回归、支持向量机、朴素贝叶斯等。机器学习领域有一个经典共识,即数据和特征决定了机器学习性能的上限,而模型和算法只是不断朝着这个上限逼近。

而在模型和算法设计过程中,传统机器学习需要投入大量的人力在特征工程上,而理想的状态是让机器帮助我们自动找出应该使用的特征空间,无须人参与。为此,人们希望设计的机器学习算法能够自动学习特征和任务之间的关联,还能从简单特征中提取复杂特征,深度学习就是满足这个特点的机器学习算法。

深度学习的概念源于人工神经网络的研究,主要通过组合和抽取低层特征,形成更加抽象的高层表示属性类别或特征,以发现数据的分布特征表示。

2

感知机与神经网络

2.1 单层感知机

神经网络的概念源于生命科学中的神经系统。在生命科学中,神经元是动物脑神经系统中最基本的单元,数百亿的神经元相互连接,组成复杂的神经系统,用来完成学习、认知和体内对生理功能活动的调节。

840f817709827866014797e6d85b811c.png

图1-2 生物神经单元与感知机

如图1-2所示,神经细胞按照功能大致可分为树突、细胞体和轴突。按照对逻辑电路的理解,每个神经细胞可被视为一个只有兴奋或者抑制两种状态的器件,当某个神经元从其他神经细胞接收到的信号强度超过某个阈值时,细胞体就会兴奋,产生电脉冲并传递到其他神经元。

受生物神经细胞的启发,计算机科学家提出感知机(Perceptron)来模拟动物神经细胞,对人工神经网络的发展具有里程碑式的意义。感知机可以认为是一种人工神经元,其本质是一种线性模型,它接收多个信号输入,产生一个信号输出,如图1-2(b)所示。其数学含义可以表达为

8af371799f10d72f8366518ba9d22023.png

(1.1)

其中,b 是实数,称为偏置,包含神经细胞信息的阈值,04d511ac626fcc1547eeb5a6b42cd0d9.png可以视为各个树突传入信息的求和。f(x)为阶跃函数,满足

62e332388ebb43d083dd77b3053e0972.png

(1.2)

其函数图像如图1-3所示。

ba0843f63161ebfc9c4d90052fb60c6e.png

图1-3 单位阶跃函数

感知机输出两个数值结果,因此可以用于解决一些二分类问题。对于输入信息x1x2,…,xn,处理方式为

2b0eec77149bd592e9f985301fad82b3.png

(1.3)

在几何数学中,式(1.3)可以认为是一个超平面方程。因此,感知机可以认为是采用一个超平面将n 维空间中的数据切分为两部分。当然,现实中大部分的数据并不能够恰好被一个超平面分割。如果一个数据集的正负样本能够被一个超平面区分开,那么称这个数据集是线性可分的。总而言之,感知机已经可以用于解决部分线性问题,但是其结构相对简单,存在不能处理线性不可分问题的缺陷。

2.2 多层感知机

为了进一步挖掘感知机的能力,20世纪80年代,多层感知机(Multilayer Perception, MLP)被提了出来。多层感知机是单个感知机的推广,用来克服感知机不能对线性不可分数据进行识别的弱点。多层感知机在单层感知机的基础上引入了一到多个隐藏层,基本结构由三层组成。第一层为输入层(Input Layer),第二层为隐藏层(Hidden Layer),第三层为输出层(Output Layer),如图1-4所示。

b1832e7ed89368a6a2ef2a2dc48a53b5.png

图1-4 多层感知机示例

多层感知机相比单个感知机,除层数多之外,还增加了激活函数(Activation Function)。类似于图1-3中的阶跃函数的作用,神经元节点对上层输入权重求和之后,经历一个函数变换后作为最终输出,这个变换称为激活函数。阶跃函数就是一种激活函数,除此之外,神经网络中常见的激活函数还有 Sigmoid和线性整流(Rectified Linear Unit,ReLU)函数,如图1-5所示。下面分别介绍。

3a0e72d48d9e1df3a58e376d6868dee7.png

图1-5 激活函数

Sigmoid函数的表达式为

e6e8dd653b02d29b91ee66693c4d212b.png

(1.4)

Sigmoid函数的输出值映射在(0,1)之间,单调连续,可求导数,如图1-5(a)所示。但是包含指数计算和除法计算,导致计算复杂度高,同时求导后容易产生梯度趋近于0的问题,不利于神经网络的训练。

ReLU 函数可以有效解决梯度消失问题,其函数形式为

c91265da6d1755928d5c811e8b3646c0.png

(1.5)

如图1-5(b)所示,当输入为正时,输出为正,当输入为负时,输出为0。

对于激活函数,需要注意的一点是,若每个神经元的激活函数都是线性函数,那么任意层数多层感知机都可被简化成一个等价的单层感知器。下面做简单证明,假设线性激活函数为f1(x)=k1x+c1,f2(x)=k2x+c2,那么隐藏层为

e82f49d70e08da443d37fdf9ea098cc1.png

(1.6)

输出层为

b0f2a3047405726eaf4c622bd0e29c09.png

(1.7)

下面用矩阵形式简化表达,令

5b42182b5c7d7c365f35f1a6aaa9dd08.png

则式(1.6)、式(1.7)可以简化为

6483182236982fd8927b7c7b4cb19855.png

(1.8)

                      ac9a20c0ef72bcd00f23805cad678067.png

                           6cc4e2a290ccd209efedd93bacf71209.png                          297bcf1f900b168e0ecbd54ebf811999.png

(1.9)

其中,C 为偏置参数矩阵。由于2641eeb380ad6ad6279cd5607e3296eb.png,则图1-4 中的三层结构可以压缩为两层感知机,采用数学归纳法,可以证明对每个神经元的激活函数都是线性函数的多层神经网络,故压缩为单层感知机。

3

前馈神经网络

前馈神经网络(Feedforward Neural Network, FNN)通常由一个输入层、多个隐藏层和一个输出层构成,典型结构如图1-6所示。每层的神经元可以接收前一层神经元的信号,并产生输出到下一层,信号从输入层向输出层单向传播。其中隐藏层可代替人工特征工程进行自动特征提取,其数量以及每层的神经元个数可根据具体任务设定。前馈神经网络结构简单,能够以任意精度逼近任何连续函数,应用广泛。

083af8eb00855a2941b746058f438adb.png

图1-6 典型的深度神经网络结构

3.1 前馈神经网络的模型

如图1-6所示,若第(l-1)层神经元为75e6cbb85ec6d10fe8f25da1a161c3d1.png,l层神经元为c2af038431ed62a7cb0713b2b290fa15.png,其层间权重参数矩阵为5dfea41a99a703b92e32e6c5bf93d4e7.png,偏置向量为6815063294428db670fb55d0663cee9c.png,激活函数为f1185782a39648430a9f902407f06c46.png,则两层之间的传递计算关系为

3f0f3165b5362dcbab010cfc348368c4.png

(1.10)

以此迭代关系,可完成隐藏层前向计算。

输出层的激活函数往往需要与具体的任务相结合,深度学习中常见的任务有回归(Regression)任务和分类(Classification)任务。如果函数的输出是一个标量(即一个单独的数),我们定义其为回归任务;如果函数的输出为有限的几种可能(例如图片分类),我们定义其为分类任务;回归任务的激活函数为恒等函数,即直接输出输入信号线性变换后的值。分类任务的激活函数常常采用Softmax函数来实现多分类。

Softmax分类模型会有多个输出,且输出个数与类别个数相等,Softmax 函数定义如下:

70aa3bd711bb944c684ee3645692d2a0.png

(1.11)

其中,928bc4bd007f2537c0b911c6af504382.png为样本属于第 k 类的概率,4671dcc3349e66757ee7bd10c14f3482.png表示最后的隐藏层神经元值。Softmax函数计算示意图如图1-7所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值