什么是深度学习?刘利刚老师讲的很好

 

什么是深度学习?

45分钟理解深度神经网络和深度学习

 

刘利刚

中国科学技术大学图形与几何计算实验室

http://staff.ustc.edu.cn/~lgliu

 

【绪言】

近年来,人工智能(Artificial Intelligence, AI)和深度学习(Deep Learning, DL)非常火爆,在各个领域得到了广泛的应用。在笔者所从事的计算机图形学领域,也出现了越来越多的使用深度学习方法来解决各种问题的研究工作。2018年7月初,笔者首次在第七届中国科学技术大学《计算机图形学前沿》暑期课程上讲授和分享了笔者从数学(函数逼近论)的角度来对基于深度神经网络(Deep Neural Network, DNN)的深度学习的理解和解释。之后,不断有学生来向笔者进一步询问和交流有关资料和问题。为了使学生们能够更好、更快理解和使用深度神经网络和深度学习,特撰写此文。

本文的目的是帮助非人工智能领域的学生(主要是计算机图形学领域的学生及笔者的学生)来搞懂深度学习(这里指狭义的深度学习,即基于DNN的深度学习)的基本概念和方法。笔者尝试用通俗的语言,从函数逼近论的角度来阐释深度神经网络的本质。由于笔者的主要研究领域为计算机图形学,而非人工智能领域,因此本文仅仅为笔者从外行的角度对基于DNN的深度学习的粗浅理解,而非人工智能领域对DNN和深度学习的权威解释。因而,笔者对其中的有些内容的理解是有限的,甚至是有误的。如有不当之处,还请读者指正!

 

一、   从数据拟合说起

 

在大学的《数学分析》、《微积分》或者《数值分析》中,大家都已学习并熟悉数据拟合问题及求解拟合问题的最小二乘法。

1.1.            数据拟合问题

在科学技术的各领域中,我们所研究的事件一般都是有规律(因果关系)的,即自变量集合与应变量集合之间存在的对应关系通常用映射来描述(特殊情况:实数集合到实数集合之间的映射称为函数)。这样能根据映射(函数)规律作出预测并用于实际应用。

有些函数关系可由理论分析推导得出,不仅为进一步的分析研究工作提供理论基础,也可以方便的解决实际工程问题。比如,适合于宏观低速物体的牛顿第二运动定律就是在实际观察和归纳中得出的普适性力学定律。

但是,很多工程问题难以直接推导出变量之间的函数表达式;或者即使能得出表达式,公式也十分复杂,不利于进一步的分析与计算。这时可以通过诸如采样、实验等方法获得若干离散的数据(称为样本数据点),然后根据这些数据,希望能得到这些变量之间的函数关系,这个过程称为数据拟合(Data fitting),在数理统计中也称为回归分析(Regression analysis)。

这里值得提一下,在实际应用中,还有一类问题是输出的结果是离散型的(比如识别图片里是人、猫、狗等标签的一种),此时问题称为分类(Classification)。

 

1.2.            数据拟合类型

我们先考虑最简单的情形,即实数到实数的一元函数。假设通过实验获得了个样本点。我们希望求得反映这些样本点规律的一个函数关系,如图1所示。

如果要求函数严格通过每个样本点,即

 

 ,

(1.1)

则求解函数的问题称为插值问题(Interpolation)。

一般地,由于实验数据带有观测误差,因此在大部分情况下,我们只要求函数反映这些样本点的趋势,即函数靠近样本点且误差在某种度量意义下最小,称为逼近问题(Approximation)。若记在某点的误差为

 

(1.2)

且记误差向量为。逼近问题就是要求向量的某种范数最小。一般采用欧氏范数(范数)作为误差度量的标准(比较容易计算),即求如下极小化问题:

 

.

(1.3)

图1. 数据拟合。左:输入的样本点;中:插值函数;右:逼近函数。

 

无论是插值问题还是逼近问题,一个首要的问题就是函数的类型的选择和表示问题,这是《函数逼近论》中的一个比较“纠结”的问题。

 

二、   函数逼近论简介

 

函数的表示是函数逼近论中的基本问题。在数学的理论研究和实际应用中经常遇到下类问题:在选定的一类函数中寻找某个函数,使它与已知函数(或观测数据)在一定意义下为最佳近似表示,并求出用近似表示而产生的误差。这就是函数逼近问题。称为逼近函数或拟合函数。

在函数逼近问题中,逼近函数的函数类可以有不同的选择;即使函数类选定了,在该类函数中确定的方式仍然是各式各样的;的近似程度(误差)也可以有各种不同的定义。我们分别对这些问题进行解释和讨论。

 

2.1.             逼近函数类

在实际问题中,首先要确定函数的具体形式。这不单纯是数学问题,还与所研究问题的运动规律及观测数据有关,也与用户的经验有关。一般地,我们在某个较简单的函数类中去寻找我们所需要的函数。这种函数类叫做逼近函数类。

逼近函数类可以有多种选择,一般可以在不同的函数空间(比如由一些基函数通过线性组合所张成的函数空间)中进行选择。如下是一些常用的函数类。

(1)   多项式函数类

次代数多项式,即由次数不大于的幂基的线性组合的多项式函数:

 

,

(2.1)

其中为实系数。

更常用的是由次Bernstein基函数来表达的多项式形式(称为Bernstein多项式或Bezier多项式):

 

,

(2.2)

其中Bernstein基函数

(2)   三角多项式类

阶三角多项式,即由阶数不大于的三角函数基的线性组合的三角函数:

 

,

(2.3)

其中为实系数。

 

这些是常用的逼近函数类。在逼近论中,还有许多其他形式的逼近函数类,比如由代数多项式的比构成的有理分式集(有理逼近);按照一定条件定义的样条函数集(样条逼近);径向基函数(RBF逼近);由正交函数系的线性组合构成的(维数固定的)函数集等。

 

2.2.            万能逼近定理

在函数逼近论中,如果一组函数成为一组“基”函数,需要满足一些比较好的性质,比如光滑性、线性无关性、权性(所有基函数和为1)、局部支集、完备性、正性、凸性等。其中, “完备性”是指,该组函数的线性组合是否能够以任意的误差和精度来逼近给定的函数(即万能逼近性质)?

对于多项式函数类,我们有以下的“万能逼近定理”:

【定理2.1 Weierstrass逼近定理)】上的任意连续函数,及任意给定的,必存在次代数多项式,使得

 

(2.4)

 

 

 

Weierstrass逼近定理表明,只要次数足够高,次多项式就能以任何精度逼近给定的函数。具体的构造方法有Bernstein多项式或Chebyshev多项式等,这里不详细展开。

类似地,由Fourier分析理论(或Weierstrass第二逼近定理),只要阶数足够高,阶三角函数就能以任何精度逼近给定的周期函数。这些理论表明,多项式函数类和三角函数类在函数空间是“稠密”的,这就保障了用这些函数类来作为逼近函数是“合理”的。

 

2.3.            逼近函数类选择的“纠结”

在一个逼近问题中选择什么样的函数类作逼近函数类,这要取决于被逼近函数本身的特点,也和逼近问题的条件、要求等因素有关。

在实际应用中,这里其实存在着两个非常“纠结”的问题。

第一,选择什么样的逼近函数类?一般地,需要用户对被逼近对象或样本数据有一些“先验知识”来决定选择具体的逼近函数类。比如,如果被逼近的函数具有周期性,将三角函数作为逼近函数是个合理的选择;如果被逼近的函数具有奇点,将有理函数作为逼近函数更为合理,等等。

第二,即使确定了逼近函数类,选择多高的次数或阶数?比如,如果选择了多项式函数类,根据Lagrange插值定理,一定能找到一个次多项式来插值给定的个样本点。但如果较大,则这样得到的高次多项式很容易造成“过拟合”(Overfitting)。而如果选择的过小,则得到的多项式容易造成“欠拟合”(Underfitting)。如图2所示。过拟合或欠拟合函数在实际应用中是没有用的,因为它们的预测能力非常差!

图2. 用不同次数的多项式拟合样本点(蓝色点)。

左:欠拟合;中:合适的拟合;右:过拟合。

 

这里有个概念需要提及一下。一个逼近函数“表达能力”体现在该函数的未知参数(即公式(2.1)-(2.3)中的系数)与样本点个数的差,也称为“自由度”。如果逼近函数的未知参数越多,则表达能力越强。然而,在实际的拟合问题中,逼近函数的拟合能力并非越强越好。因为如果只关注样本点处的拟合误差的话,非常强的表达能力会使得样本点之外的函数值远远偏离期望的目标,反而降低拟合函数的预测性能,产生过拟合,如图2 (右)所示。

人们发展出各种方法来减缓(不能完全避免)过拟合。比如,剔除样本点中的噪声(数据去噪)、增加样本点数据量(数据增广)、简化预测模型、获取额外数据进行交叉验证、或对目标函数进行适当的正则化等。在此不详细叙述。

在实际应用中,如何选择拟合函数的数学模型(合适的逼近函数类及其阶数),并不是一开始就能选好,往往须通过分析确定若干模型后,再经过实际计算、比较和调整才能选到较好的模型。需要不断的试验和调试(称为“调参”过程),是个需要丰富经验的“技术活”。

 

2.4.            最小二乘法(Least Squares Method)

假设通过分析我们已经确定了逼近函数类及其次数。记基函数(一般线性无关)为。记为这些基函数所张成的线性空间(函数空间)。则逼近函数可记为

 

,

(2.5)

其中为待定权系数。

关于最小二乘法的一般提法是:对给定的一组样本点数据,要求在函数类中找一个函数,使误差的模的平方,即式(1.3),达到最小。

对于分析极小化误差(1.3),可得关于系数向量的法方程

 

,

(2.6)

从而可求得

 

.

(2.7)

由于法方程是一个线性方程组,因此基于最小二乘法的函数求解也称为线性回归。

另外,我们可在误差项中加个权,表示不同点处的数据比重不同,此时称为加权最小二乘方法(Weighted least squares, WLS)。另外,还有移动最小二乘法(Moving least squares, MLS)等其他最小二乘法的改进方法。此处不详细叙述。

 

三、   稀疏表达和稀疏学习

 

在实际应用中, 2.3节中所述的两个“纠结”问题时有发生。人们发展出不同的方法来尝试解决。

3.1.            岭回归(Ridge Regression)

当数据量较少的情况下,最小二乘法(线性回归)容易出现过拟合的现象,法方程的系数矩阵会出现奇异(非满秩),此时回归系数会变得很大,无法求解。

这时在最小二乘法的结果(时(2.7))中加一个小扰动,使原先无法求广义逆的情况变成可以求出其广义逆,使得问题稳定并得以求解,即

 

.

(3.1)

事实上,这个解对应于如下极小化问题的解:

 

.

(3.2)

其中,参数称为正则化参数(岭参数)。上述回归模型称为岭回归,其与最小二乘法的区别在于多了关于参数范数正则项。这一项是对的各个元素的总体的平衡程度,即限制这些权稀疏的方差不能太大。

实际应用中,如果岭参数选取过大,会把所有系数均最小化(趋向于0),造成欠拟合;如果岭参数选取过小,会导致对过拟合问题解决不当。因此岭参数的选取也是一个技术活,需要不断调参。对于某些情形,也可以通过分析选择一个最佳的岭参数来保证回归的效果,在此不详细叙述。

 

3.2.            Lasso回归(Least Absolute Shrinkage and Selection Operator)

Lasso回归的极小化问题为:

 

,

(3.3)

其中,正则项为范数正则项。Lasso回归能够使得系数向量的一些元素变为0(稀疏),因此得到的拟合函数为部分基函数的线性组合。

 

3.3.            稀疏表达与稀疏学习

根据Lasso回归的分析,我们可通过对回归变量施加范数范数为元素中非0元素的个数,在很多时候可以用范数近似)的正则项,以达到对回归变量进行稀疏化,即大部分回归变量为0(少数回归变量非0)。这种优化称为稀疏优化。也就是说,对回归变量施加范数能够“自动”对基函数进行选择,值为0的系数所对应的基函数对最后的逼近无贡献。这些非0的基函数反映了的样本点集合的“特征”,因此也称为特征选择。

通过这种方法,为了保证防止丢失一些基函数(特征),我们往往可以多选取一些基函数(甚至可以是线性相关的),使得基函数的个数比输入向量的维数还要大,称为“超完备”基(Over-complete basis)或过冗余基,在稀疏学习中亦称为“字典”。然后通过对基函数的系数进行稀疏优化,选择出合适(非0系数)的基函数的组合来表达逼近函数

这在一定程度上克服了2.3节中所提出的两个“纠结”的问题。因为,这时可以选取较多的基函数及较高的次数,通过稀疏优化来选择(“学习”)合适的基元函数,也称为稀疏学习。另外,基函数(字典)和稀疏系数也可以同时通过优化学习得到,称为字典学习。

对于矩阵形式(比如多元函数或图像),矩阵的稀疏表现为矩阵的低秩(近似为核模很小),则对应着矩阵低秩求解问题。在此不详细叙述。

稀疏学习与最近十年来流行的压缩感知(Compressive sensing)理论与方法非常相关,也是机器学习领域的一种重要方法。其深厚的理论基础由华裔数学家陶哲轩(2006年国际数学家大会菲尔兹奖得主)、斯坦福大学统计学教授David Donoho(2018年国际数学家大会高斯奖得主)等人所建立,已成功用于信号处理、图像与视频处理、语音处理等领域。在此不详细展开介绍。

近年来,笔者及其团队成功地将稀疏学习的理论和方法推广用于三维几何建模与处理中,在计算机图形学领域已发表十余篇相关论文(包括在顶级期刊ACM Transactions on Graphics上发表了4篇论文)。有兴趣的读者可详细查看笔者的相关论文

[3-1] Xu et al. Survey on Sparsity in Geometry Modeling and Processing. Graphical Models, 82, 160-180, 2015. (三维几何处理的稀疏优化方法的综述论文)

[3-2] Wang et al. Construction of Manifolds via Compatible Sparse Representations. ACM Transactions on Graphics, 35(2), Article 14: 1-10, 2016. (基于基函数稀疏选择的曲面生成)

[3-3] Xiong et al. Robust Surface Reconstruction via Dictionary Learning. ACM Transactions on Graphics (Proc. Siggraph Asia), 33(6), Article 1: 1-12, 2014. (基于字典学习的曲面重建)

[3-4] Zhang et al. Local Barycentric Coordinates. ACM Transactions on Graphics (Proc. Siggraph Asia), 33(6), Article 1: 1-12, 2014. (基于稀疏优化的局部重心坐标)

[3-5] Hu et al. Co-Segmentation of 3D Shapes via Subspace Clustering. Computer Graphics Forum (Proc. Symposium on Geometry Processing), 31(5): 1703-1713, 2012. (基于特征稀疏选择的三维形状共同分割)

[3-6] Jin et al. Unsupervised Upright Orientation of Man-Made Models. Graphical Models (Proc. GMP), 74(4): 99-108, 2012. (基于矩阵低秩优化的三维形状正向计算)

图3. 稀疏学习方法用于三维几何的建模与处理(笔者的工作)。

 

四、   高维的逼近函数

 

上面讨论了映射为一元函数的情形。上述的有关概念和方法同样可以推广至多元函数()及向量值函数()的情形(如图4)。

图4. 不同情形(维数)的逼近函数。

左上:一元函数;右上:多元函数;左下:一元向量值函数;右下:多元向量值函数。

 

4.1.            多元函数

假设有多元函数,即,的一组测量样本数据。设中的一组基函数为。要求函数

 

,

(4.1)

使得误差

 

(4.2)

的平方和最小。这与式(1.3)和2.4节的极值问题完全一样。系数, 同样通过求解法方程得到。上述过程称为多元函数的最小二乘拟合。

在函数论中,高维空间中的基函数的构造也有许多方法。为了简便,在许多时候我们采用张量积形式的基函数,即每个基函数是各个维数的一元基函数的乘积形式。在计算机图形学和计算机辅助几何设计(CG&CAGD)领域经常采用。

 

4.2.            向量值函数

如果因变量有多个,即,称为向量值函数。比如空间螺旋线的参数方程

 

(4.3)

 

 

 

就是一个从一维到三维的向量值函数。如果自变量的维数比应变量的维数低,则自变量可看作为应变量的参数。在式(4.3)中,变量可看作为该螺旋线的参数。

对于向量值函数,可以看成是多个一元函数或多元函数(一般共享基函数)即可,所有处理方法(包括最小二乘法)都是对每个函数分别操作的,与前面单个函数的处理方法完全一样。如果用数学方式来表达,前面的很多符号由向量变为矩阵的形式而已。详细可查看《数学分析》。

 

五、   参数曲线曲面拟合

 

前面讨论的函数所能表达的曲线比较简单,无法表达封闭和多值的曲线。因此,在计算机图形学和计算机辅助几何设计中常用参数曲线曲面(本质是向量值函数,见4.2节)来表达几何形状,用于几何造型。另外,在计算机图形学中还有一种利用隐函数来表达曲线的方式,也常用于造型中,这里不展开介绍。

 

5.1.            二维参数曲线

从数学来看,一条曲线的本征维度是一维的,不论是从哪个维度的空间来看。从直观来看,该曲线能被“拉”成为一条直线或线段;即,一条有端点的曲线能和一条线段建立1-1对应,如图5(左)所示。因此,嵌入到二维空间中的曲线可由单个参数来表达,即有如下形式的参数形式:

 

(5.1)

 

 

 

其中为该曲线的参数,均为的函数,分别表示曲线上对应于参数的点的两个坐标分量。一般参数曲线表达为。本质上,这是一个从的向量值函数

 

5.2.            三维参数曲面

类似地,一张二维流形曲面的本征维度是二维的。一张曲面能与平面上的一块区域建立1-1对应,如图5(右)所示。因此,嵌入到三维空间中的曲面可由两个参数来表达,即有如下形式的参数形式:

 

(5.2)

 

 

 

其中为该曲面的参数,均为的二元函数,分别表示曲面上对应于参数的点的三个坐标分量。一般参数曲面表达为。本质上,这是一个从的向量值函数

 

图5. 参数曲线曲面。左:单参数曲线;右:双参数曲面。

 

5.3.            参数曲线曲面拟合

下面我们介绍如何使用参数曲线来拟合2D平面上的一组有序样本点。

参数曲线拟合的问题描述如下:给定平面上一组有序样本点,我们希望寻求一条拟合这些点的参数曲线关系

如需决定一条拟合曲线,首先需要确定每个样本点所对应的参数。对于一组有序的样本点,所确定的一种参数分割,称之为这组样本点的参数化。参数化的本质就是找一组恰当的参数来匹配这一组样本点,以便使这条拟合出来的曲线美观、合理。

在参数曲线拟合中,样本点的参数化是个非常基本而重要的问题。不同的参数化,对拟合曲线的形状会产生很大的影响。图6显示了三种参数化(均匀参数化、弦长参数化和中心参数化)对拟合曲线形状的影响。

图6. 不同的参数化导致不同的参数曲线拟合结果。

类似地,如果利用参数曲面来拟合空间中给定的一组样本点,首先也需要确定这些样本点在平面上的参数化,如图7所示。在曲面参数化中,不仅需要建立样本点及其参数的一一对应,我们还希望参数区域的网格保持原始网格的一些重要的几何特性,比如角度、边长等。

图7. 三维曲面的参数化。

曲面参数化是计算机图形学中非常基础且重要的一个研究课题,也一直是研究热点之一。笔者及所在的课题组也在这个课题方面作了大量的工作,有兴趣的读者可详细查看笔者的相关论文

(平面参数化)

[5-1] Ligang Liu, Lei Zhang, Yin Xu, Craig Gotsman, Steven J. Gortler.  A Local/Global Approach to Mesh Parameterization. Computer Graphics Forum (Proc. Eurographics Symposium on Geometry Processing (SGP)), 27(5), 1495-1504, 2008.

[5-2] Ligang Liu, Chunyang Ye, Ruiqi Ni, Xiao-Ming Fu. Progressive Parameterizations.  ACM Transactions on Graphics (Proc. Siggraph), 37(4), Article 41: 1-12, 2018.

(球面参数化)

[5-3] Xin Hu, Xiao-Ming Fu, Ligang Liu. Advanced Hierarchical Spherical Parameterizations. IEEE Transactions on Visualization and Computer Graphics, to appear, 2018.

[5-4] Chunxue Wang, Xin Hu, Xiaoming Fu, Ligang Liu. Bijective Spherical Parametrization with Low Distortion. Computers&Graphics (Proc. SMI), 58: 161-171, 2016.

[5-5] Chunxue Wang, Zheng Liu, Ligang Liu. As-Rigid-As-Possible Spherical Parameterization. Graphical Models (Proc. GMP), 76(5): 457-467, 2014.

(流形参数化)

[5-6] Lei Zhang, Ligang Liu, Zhongping Ji, Guojin Wang. Manifold Parameterization. Lecture Notes in Computer Science (Proc. Computer Graphics International), 4035, 160-171, 2006.

 

 

六、   从人工神经网络的观点来看拟合函数

 

为了讲清楚人工神经网络(Artificial Neural Network,ANN),下面我们先从神经网络的观点来看传统的拟合函数和曲线曲面。

 

6.1.            一元函数

对于一元的逼近函数

 

.  

(6.1)

可以看成为如图8的三层神经网络,其中只有一个隐层。隐层上有个节点,激活函数分别为基函数(从这里我们将基函数称为“激活函数”)。输入层到隐层的权设为常值1(图8左),也可以看成为将输入层的值“直接代入”(不做任何变换,用虚线表示)到激活函数(图8右)。隐层到输出层的权为基函数的组合系数

中间隐层的输出节点所形成的向量可看作为输入量的“特征”。

现在我们开始用机器学习的语言来描述数据拟合的过程。整个神经网络就是由中间节点的激活函数及权系数所决定的一个函数(6.1)。我们称样本点, 为训练数据(Training set),称函数在训练数据上的误差度量为损失函数(Loss function)。通过训练数据来极小化损失函数得到权系数的过程称为“训练”或“学习”。如果损失函数取为(1.3)的形式,则网络的训练过程本质上就是前面所讲的最小二乘法(2.4节)。

     

图8. 一元逼近函数的神经网络。左:输入层到隐层的权系数均为常值1;

右:输入层到隐层看成为“直接代入”(用虚线表示)。

 

 

6.2.            多元函数和向量值函数

考虑一般的逼近函数。设中的一组基函数为。则函数可看成为如下图的一个三层的神经网络。注意这里隐层的激活函数都是维函数,从输入层到隐层也是直接代入。输出层的各个分量共享隐层的激活函数。

图9. 多元函数和向量值函数的神经网络。从输入层到隐层是变量直接代入到激活函数。

 

6.3.            拟合曲线曲面

拟合曲线可以看作为一个多层的神经网络,如下图所示。输入层(样本点)到参数化是一个变换,可看成为一个神经网络;参数化到输出层是一个变换(单变量基函数组合),也是一个神经网络。输出层的两个分量共享基函数。

隐层1的激活函数为双变量基函数;隐层3的激活函数为单变量基函数。中间隐层(隐层1、2、3)的输出节点所形成的向量均可分别看作为输入量在不同维数空间的“特征”。

图10. 拟合曲线的神经网络。输入层(样本点)到参数化是一个神经网络变换;

参数化到输出层是一个神经网络变换。

 

类似地,拟合曲面也可以看作为一个如下图的多层神经网络。

图11. 拟合曲面的神经网络。

 

从曲线曲面拟合的过程及神经网络结构来看,如果将整个网络进行优化,则拟合的过程是寻求样本点的参数化以及表达函数的基函数,使得拟合误差极小化。在这里,我们是知道给定样本点的“本征维数”,因此,人为设置了第一个隐层的维数为1(曲线)或2(曲面)。然而,在实际应用中,我们并不知道数据的本征维数,此时需要利用其他方法(比如流形学习或降维方法)来“检测”或“猜测”隐层的维数,或者直接根据经验来不断调参和测试。

需要提及的是,在计算机图形学中,传统的大部分方法是将参数化的问题和曲线曲面拟合问题分为两个问题来解决。有些工作专门做参数化,有些工作专门研究拟合问题。其中参数化的工作更为重要,直接决定了拟合曲线曲面的质量。此处不详述。

需要注意的是,本节只是从神经网络的观点来看曲线曲面的参数化和拟合的问题。在计算机图形学中,我们不是简单的通过上述网络来求参数化(单个样本点),而是要考虑更多的样本点一起来求解参数化。这个后面还会详细介绍。

 

七、   通用人工神经网络

 

有了上述的理解,我们现在来理解和解释人工神经网络就非常容易了。

7.1.            函数拟合回顾

回顾前面所述的函数逼近论中的函数拟合问题,始终是存在着两个“纠结”。一是选择什么样的逼近函数类,即选择什么类型的基函数?二是选择多高的次数或阶数?

另一方面,如果从图8或图9的神经网络的观点来看,网络的结构设置都存在着如下两个“纠结”:

1.      隐层中的节点中使用什么样的激活函数(基函数)?

2.      隐层中设置多少个节点(基函数的次数)?

在传统逼近论中,上述两个问题就没有好方法来解决(第一个问题针对具体问题可预先设定),是通过不断试错来看结果的好坏来决定的。这是因为,虽然有些基函数的性质很好,但是次数或阶数过高(比如多项式基或三角函数基),就会产生震荡,也容易产生过拟合,使得拟合函数的性态不好。因此,一般不会采用次数或结束太高的基函数。为此,人们发展了分段拟合方法,即将数据分为若干段,每段分别拟合,各段的拟合函数保证一定的光滑性,称为样条函数。在逼近论和计算机图形学领域,人们发展出了很多漂亮的样条的理论与方法。

对于参数类型的高维曲线曲面,还存在着参数化的问题,这时还存在另一个纠结,就是要设置多少个隐层(图10和图11)?

 

7.2.            使用简单元函数作为激活函数

为了克服上述两个纠结的问题,是否可以通过其他形式来生成“基函数”?注意到,对于任意一个非常值的一元函数,这里我们称为元函数,其沿着方向的平移函数以及沿着方向的伸缩函数都与原函数线性无关。也就是说,如果能有足够多的变换所生成的函数,其线性组合所张成的函数空间就能有充分的表达能力。那么这些函数(可能都线性无关)是否能构成逼近一般函数的“基函数”呢?

 

一个自然的想法就是,我们能否以这个作为激活函数,让网络自动地去学习这些激活函数的变换,或者说去学习一些“基函数”,来表达所需要的拟合函数呢?这就是图12所示的神经元。变量乘以一个伸缩,加上一个平移(称为偏置“bias”),即变量的仿射变换,成为神经元的输入;然后通过激活函数复合后成为该神经元的输出

图12. 一元(单变量)函数的神经元结构。

对于多变量的情形(多元函数),神经元的结构如图13所示。变量的线性组合,加上一个平移(称为偏置“bias”),即变量的仿射变换,成为神经元的输入;然后通过激活函数复合后成为该神经元的输出

图13. 多元(多变量)函数的神经元结构。

不失一般性,我们下面就直接以多元函数的形式来介绍一般神经网络的结构。对于向量值函数(是多维的),则分别将的各个维数分别看作一个多元函数处理而已,这些函数共享节点(基函数)即可。

 

7.3.            单隐层神经网络

一个多元函数的神经网络的结构如图14所示,有一个输入层,一个隐层及一个输出层。输入层除了变量外,还有一个常数节点1;隐层包含多个节点,每个节点的激活函数都是,隐层的输出就是输入层节点的线性组合加偏置(即仿射变换)代入到激活函数的复合函数;输出层是这些复合函数的组合

这个网络的所有权系数(输入层与隐层之间的权及偏置项)及(隐层与输出层之间的权,此层一般不用偏置项)作为这个神经网络的参数变量,需要通过极小化损失函数来求解的。这个过程称为“训练”或“学习”。

与前面所述的逼近论中的拟合函数类似,网络的隐层的节点数是需要通过不断调试和尝试来确定的。隐层的节点输出称为输入数据)的“特征”。

图14. 多元(多变量)函数的单隐层神经网络结构。

整个网络的学习过程本质上就是在学习所有的系数参数。最后得到的拟合函数为一些函数的线性组合表达。这些组合函数实质上就是表达函数的“基函数”!

从函数逼近论的角度,我们可以这样来理解神经网络:神经网络的学习过程本质上是在学习基函数!这些基函数是通过激活函数通过平移和伸缩(变量的仿射变换)来得到的!

当然,天下没有免费的午餐。以前函数逼近论无法解决的两个“纠结”这里仍然存在:

第一个纠结是如何选取基函数?这里使用激活函数,然后学习其变换来得到。

第二个纠结是选择多少个基函数?这里为隐层的神经元个数。

从这个观点来看,神经网络本质上就是传统的逼近论中的逼近函数的一种推广。它不是通过指定的理论完备的基函数来表达函数的,而是通过简单的基元函数(激活函数)的不断变换得到的“基函数”来表达函数的。实质上是二层复合函数。

此时,我们当然要问个问题:将函数(隐层与输出层之间的权,此层一般不用偏置项)作为这个神经网络的参数变量,需要通过极小化损失函数来求解的。这个过程称为“训练”或“学习”。

与前面所述的逼近论中的拟合函数类似,网络的隐层的节点数是需要通过不断调试和尝试来确定的。隐层的节点输出称为输入数据)的“特征”。

图14. 多元(多变量)函数的单隐层神经网络结构。

整个网络的学习过程本质上就是在学习所有的系数参数。最后得到的拟合函数为一些函数的线性组合表达。这些组合函数实质上就是表达函数的“基函数”!

从函数逼近论的角度,我们可以这样来理解神经网络:神经网络的学习过程本质上是在学习基函数!这些基函数是通过激活函数通过平移和伸缩(变量的仿射变换)来得到的!

当然,天下没有免费的午餐。以前函数逼近论无法解决的两个“纠结”这里仍然存在:

第一个纠结是如何选取基函数?这里使用激活函数,然后学习其变换来得到。

第二个纠结是选择多少个基函数?这里为隐层的神经元个数。

从这个观点来看,神经网络本质上就是传统的逼近论中的逼近函数的一种推广。它不是通过指定的理论完备的基函数来表达函数的,而是通过简单的基元函数(激活函数)的不断变换得到的“基函数”来表达函数的。实质上是二层复合函数。

此时,我们当然要问个问题:将函数经过充分多的平移和伸缩(包括它们的组合)所线性张成的函数空间,其表达能力有多强?这个函数空间是否在所有函数空间是稠密的?如果问题是正确的,那么就是说,对于任何一个给定的函数,总能找到函数的多次平移和缩放的函数,其线性组合能够逼近给定的这个函数;也就是说,图14中的神经网络只要隐层的节点数足够多,该网络所表达的函数就能逼近任意的函数。

幸运的是,上述猜想在很多情况下是成立的!有以下的万能逼近定理所保证。

 

7.4.            万能逼近定理

空间中的单位立方体,我们在这个定义域中来描述万能逼近定理。记上的连续函数空间,上的可测函数空间,上相对测度的可积函数空间(即)。

设给定一元激活函数,首先给出如下定义。

【定义7.1】称函数为压缩函数,如果单调不减,且满足

 .

【定义7.2】称函数为可分辨的,若对于有限测度,由

,

可得到

【定义7.3】记

为所有由激活函数变换及线性累加所构成的维函数空间(即具有个节点的单隐层神经网络所表达的维函数)。

 

【定理7.1】若是压缩函数,则中一致稠密,在中按如下距离下稠密:

.

【定理7.2】若是可分辨的,则中按连续函数距离下稠密。

【定理7.3】若是连续有界的非常值函数,则中稠密。

【定理7.4】若是无界的非常值函数,则中稠密。

 

上述定理这里就不详细解释,稍微有些实分析和泛函分析的基础就能看懂。用通俗的话来说,就是:对任意给定的一个为一些函数的线性组合表达。这些组合函数实质上就是表达函数的“基函数”!

从函数逼近论的角度,我们可以这样来理解神经网络:神经网络的学习过程本质上是在学习基函数!这些基函数是通过激活函数通过平移和伸缩(变量的仿射变换)来得到的!

当然,天下没有免费的午餐。以前函数逼近论无法解决的两个“纠结”这里仍然存在:

第一个纠结是如何选取基函数?这里使用激活函数,然后学习其变换来得到。

第二个纠结是选择多少个基函数?这里为隐层的神经元个数。

从这个观点来看,神经网络本质上就是传统的逼近论中的逼近函数的一种推广。它不是通过指定的理论完备的基函数来表达函数的,而是通过简单的基元函数(激活函数)的不断变换得到的“基函数”来表达函数的。实质上是二层复合函数。

此时,我们当然要问个问题:将函数经过充分多的平移和伸缩(包括它们的组合)所线性张成的函数空间,其表达能力有多强?这个函数空间是否在所有函数空间是稠密的?如果问题是正确的,那么就是说,对于任何一个给定的函数,总能找到函数的多次平移和缩放的函数,其线性组合能够逼近给定的这个函数;也就是说,图14中的神经网络只要隐层的节点数足够多,该网络所表达的函数就能逼近任意的函数。

幸运的是,上述猜想在很多情况下是成立的!有以下的万能逼近定理所保证。

 

7.4.            万能逼近定理

空间中的单位立方体,我们在这个定义域中来描述万能逼近定理。记上的连续函数空间,上的可测函数空间,上相对测度的可积函数空间(即)。

设给定一元激活函数,首先给出如下定义。

【定义7.1】称函数为压缩函数,如果单调不减,且满足

 .

【定义7.2】称函数为可分辨的,若对于有限测度,由

,

可得到

【定义7.3】记

为所有由激活函数变换及线性累加所构成的维函数空间(即具有个节点的单隐层神经网络所表达的维函数)。

 

【定理7.1】若是压缩函数,则中一致稠密,在中按如下距离下稠密:

.

【定理7.2】若是可分辨的,则中按连续函数距离下稠密。

【定理7.3】若是连续有界的非常值函数,则中稠密。

【定理7.4】若是无界的非常值函数,则中稠密。

 

上述定理这里就不详细解释,稍微有些实分析和泛函分析的基础就能看懂。用通俗的话来说,就是:对任意给定的一个中的函数,只要项数足够多,中就存在一个函数上的连续函数空间,上的可测函数空间,上相对测度的可积函数空间(即)。

设给定一元激活函数,首先给出如下定义。

【定义7.1】称函数为压缩函数,如果单调不减,且满足

 .

【定义7.2】称函数为可分辨的,若对于有限测度,由

,

可得到

【定义7.3】记

为所有由激活函数变换及线性累加所构成的维函数空间(即具有个节点的单隐层神经网络所表达的维函数)。

 

【定理7.1】若是压缩函数,则中一致稠密,在中按如下距离下稠密:

.

【定理7.2】若是可分辨的,则中按连续函数距离下稠密。

【定理7.3】若是连续有界的非常值函数,则中稠密。

【定理7.4】若是无界的非常值函数,则中稠密。

 

上述定理这里就不详细解释,稍微有些实分析和泛函分析的基础就能看懂。用通俗的话来说,就是:对任意给定的一个中的函数,只要项数足够多,中就存在一个函数,使得在一定精度下逼近。也就是说,图14所表达的单隐层的神经网络所表达的维函数能够逼近中的任意一个函数。

根据上述定理可知,函数只要满足一定条件即可作为一个合适的激活函数。但还是存在着一个巨大的“纠结”,就是隐层中的节点数量该取多大,仍是未知的。在实际中,这个是要不断通过测试和调试来决定的,这个过程称为“调参”。

定理7.1-7.4的详细证明可见以下论文。

[7-1] K. Hornik, et al. Multilayer feedforward networks are universal approximations. Neural Networks, 2: 359-366, 1989.

[7-2] G. Cybenko. Approximation by superpositions of a sigmoidal function. Math. Control Signals System, 2: 303-314, 1989.

[7-3] K. Hornik. Approximation capabilities of multilayer feedforward networks. Neural Networks, 4: 251-257, 1991.

 

7.5.            深度神经网络:多隐层神经网络

将上述的神经网络的隐层进一步推广到多层,即可得到多隐层的神经网络,即深度神经网络(深度的意思就是多层)。其网络结构如图15所示。

由于每相邻的两层的节点都是全部连接的,因此在机器学习领域,也叫做全连接神经网络或多层感知机(Multi-Layer Perceptron, MLP)。

图15只是显示了的函数的神经网络的结构。对于一般的的向量值函数,只要将最后输出层多几个节点即可,即,每个维度分量都是一个的函数,共享了前面的所有网络层结构。

每个隐层的输出 都可以看成输入数据在不同维数空间下的 “特征”。

注意不要在输出层使用激活函数。因为最后的输出就是那些基函数的线性组合表达即可。

从数学上看,深度神经网络就是一个多层复合函数。万有逼近定理仍然成立。

图15. 多元(多变量)函数的深度神经网络结构。

类似地,深度神经网络也能很强地表达中的任意的函数。在具体应用中,选用多少个隐层,每一隐层选用多少节点,这些都是需要根据损失函数的进行不断调试的。这个过程也称为“调参”。

 

八、   深入理解深度神经网络

 

8.1.            激活函数

相关文章
相关标签/搜索