摘 要: 近年来,人工智能在学术界和工业界都取得了极大的成功,这正是由于深度神经网络在最近十年内的飞速发展。神经网络模型的目标就是最优化,对一个复杂的问题中作出最优决策。几乎所有的神经网络模型都可以建模为一个优化问题。本文就求解神经网络模型过程中涉及的优化算法进行总结,并对《最优化方法》课程教学内容进行了探索。通过将神经网络模型及其优化算法与《最优化方法》课程教学融合,使学生熟悉并掌握其原理和优化求解方法,具备更强的核心竞争力。
关键词: 人工智能; 最优化方法; 神经网络
孙杰宝; 杨畅; 吴勃英 科技风 2022-01-24
一、概述
随着人工智能的不断发展和在社会各个领域应用的不断深入,人们逐渐切实领略到其改变人类生活方式的潜力。实际中,存在很多对人类来说较为容易,但却难以通过数学公式表达的问题,如语音识别、人脸识别。人往往能够通过经验轻松地处理这些问题。由于深度神经网络能够从大量的样本中提取内在的语义特征、学习经验并做出决策,其在处理这类的任务方面有着出色的表现。神经网络模型是目前人工智能中表现最为优秀的算法之一。
优化算法需要大量的数值计算,通常情况下是指通过迭代过程更新解的估计值来解决数学问题的算法。最优化方法[1]在这个训练学习的过程中起着重要的作用,是求解模型的关键。作为人工智能实现模块的核心工具之一,学习并掌握一定的优化算法的重要性也日趋显著。教育的变革不应当仅仅局限于教学方法探索方面,更应该紧跟国家发展的战略与方向,与时俱进提出新的教学理念,紧跟科学发展更新教学内容,从而精准地定位培养目标。社会发展是课程改革和教育发展的原动力。对当代教育来说更应该培养学生在掌握专业知识的同时,具备将所学知识应用到我国发展中所面临的实际问题的能力。因此,最优化方法的课程内容如何与当前社会实际应用相匹配、如何体现本课程特色、如何满足当前社会与行业的人才需求等问题一直是教学工作中需要关注和思考的问题。
二、课程教学改革的必要性
在 21 世纪,在物联网技术高速发展的同时,如何培养同时具备理论分析和实践应用的创新性人才是极为重要的。这也是最优化方法课程改革不可避免要面对的问题。
随着互联网与计算机硬件的不断发展,近 20 年来,各行各业都积累了大量的数据。人类对数据的采集、存储、传输及处理能力飞速提升。因此,亟须有效的数据分析算法来合理利用这些数据。机器学习[2]恰巧满足了处理海量数据的迫切需求。实际上,科学研究的模式方法由传统的“理论+实践”到如今的“理论+实验+计算”,以至近年来流行的“数据科学”,机器学习扮演着越来越重要的角色。数据科学的核心是通过对数据进行分析从而获取有价值的信息,数据分析是以“计算”为依托的。现如今,在多媒体、图形学以及网络通信、软件工程,甚至芯片设计、体系结构等计算机学科的分支领域中,机器学习的身影无处不在。此外,机器学习已经成为推动计算机视觉、自然语言处理等计算机应用技术领域向前发展最重要的动力源泉。
人工智能的目标就是最优化,在一个复杂的环境中做出最优决策,几乎所有的人工智能问题都可以建模为一个优化问题。最优化理论可以判定人工智能目标函数的最大值、最小值是否存在,并且可以寻找到满足最优目标的数值。机器学习算法在人工智能领域中扮演着至关重要的角色,是人工智能中的核心技术,将其引入最优化课程中,在拓宽学生知识面的同时还能够让学生掌握最先进的科学技术,从而提高学生在就业中的竞争力。在本科生、研究生教学中,引导学生思考、探索最前沿的科学问题是一项重要的任务。数值优化算法是机器学习求解的基本策略,所以将其相融合是一个很自然的想法。这恰恰为学生创新能力的培养提供了素材。鉴于此,将人工智能中的神经网络模型引入《最优化方法》课程是非常有必要的。
如何将最优化方法中被广泛应用的一些工具性算法与其严谨又抽象的数学理论相结合,是广大数学教育工作者坚持不懈的目标。这种结合一方面可以使得学生接受严格数学理论的熏陶,培养严谨的数学思维,同时又能够熟练掌握相应的计算方法,为后续课程的学习与科学研究奠定基础[4-6]。当前的最优化方法课程教学内容主要包括传统的凸优化算法的基本概念、基本理论、基本方法和基本算法,其重点是理论基础和基本技术,尚未包含人工智能的相关内容。因此,有必要从求解神经网络模型的角度对最优化方法课程教学内容进行更新探索。
三、神经网络中的优化教学内容探索
神经网络模型是目前最具代表性的人工智能算法。人工智能的目标就是最优化: 在复杂环境与多体交互中做出最优决策。几乎所有的人工智能问题最后都会归结为一个优化问题的求解,因而最优化理论与方法是人工智能必备的基础知识。深度学习[3]优化算法与纯优化算法最大的区别在于目标不同。纯优化是找到优化问题的最优解,比如能量最小点,但是深度学习其实只是借用了纯优化的手段,最终的目的是让模型的泛化误差最小。深度学习优化算法有很多,例如: SGD( 随机梯度下降法) 、动量方法、Adagrad 自适应学习率调整方法、Adam、Nadam 等。下面首先介绍神经网络模型,再介绍求解神经网络模型过程中经常使用的优化算法: 梯度下降法。
( 一) 神经网络[2]
神经网络模型: 假设有训练样本集 xi ,yi ( ) :
上图所示为一个神经元,其输出 hW,b ( x) = f WT ( )x = f ∑3 i= 1Wixi ( ) +b ,其中 Wi 和 b 为待训练的系数,f: R→R 为给定的“激活函数”。训练神经元就是将给定的数据集 xi ,yi ( ) 代入上述神经元模型中,通过给定的损失函数关于其中的系数 Wi 和 b 进行泛函最小化求解。神经网络的结构如下图所示:
这里的蓝色圆圈表示输入,“+1”代表偏置节点,即截距。上图中最左边一列为输入层,最右边一列为输出层 ( 本文上例中输出层为单一节点) 。中间的部分称为隐藏层,这是由于中间的隐藏层是通过输入层与损失函数数据计算得来的,其具体的值并不能直接观察得到。下面本文给出一些记号。nl 为神经网络的层数( 上例中 nl = 3) ,Ll 表示网络的第 l 层( L1 为输入层,Lnl 为输出层) ,待训练的网络参数记为 W,b。在 上 例 中 ( ) W,b = W( 1) ,b( 1) ,W( 2) ,b( 2) ( ) ,其 中 W( l) ij ,l = 1,2,( W( 1) ∈ R3×3 , W( 2) ∈R1×3 ) 为第 l 层中第 j 个神经元与第 l+1 层第 i 个神经元联结的参数,即上图中连线的权重; b( l) i 是第 l+1 层中第 i 个神经元的偏置。上例神经网络结构的前向传播为: a( 2) 1 = f W( 1) 11 x1+W( 1) 12 x2+W( 1) 13 x3+b( 1) 1 ( ) a( 2) 2 = f W( 1) 21 x1+W( 1) 22 x2+W( 1) 23 x3+b( 1) 2 ( ) a( 2) 3 = f W( 1) 31 x1+W( 1) 32 x2+W( 1) 33 x3+b( 1) 3 ( ) hW,b( x) = a( 3) 1 = f W( 2) 11 a( 2) 1 +W( 2) 12 a( 2) 2 +W( 2) 13 a( 2) 3 +b( 2) 1 ( ) 其中 a( l) i 表示 l 层第 i 个神经元的激活值,且 a( l) i = xi, l = 1。使用 z ( l) i 表示第 l 层第 i 个单元的输入加权和,即: z ( 2) i =∑n j= 1W( 1) ij xj +b( 1) i 则上述神经网络计算过程可重新表示为: z ( 2) = W( 1) x+b( 1) a( 2) = f z ( 1) ( ) z ( 3) = W( 2) a( 2) +b( 2) hW,b( x) = a( 3) = f z ( 3) ( )
( 二) 反向传播与梯度下降法[2]
这部分,本文介绍如何通过反向传播与梯度下降法求解神经网络的参数( W,b) 。首先,设样本集为: x( 1) ,y ( 1) ( ) ,…,x( m) ,y ( m) ( ){ } 其为 m 个样例构成的集合,x 为神经网络的输入,y 为期望的输出值。对于单个( x,y) ,本文研究的损失函数为: J( ) W,b; x,y = 1 2 ‖hW,b( x) -y‖2 对于包含 m 个样例的数据集,整体的损失函数为: J( W,b) = 1 m ∑ m i= 1 J W,b; x( i) ,y ( i) ( ) [ ] + λ 2 ∑ nl -1 l= 1 ∑ s l i= 1 ∑ s l -1 j= 1 W( l) ji ( ) 2 = 1 m ∑ m i= 1 1 2 ‖hW,b( x( i) ) -y ( i) ‖2 ( )[ ] + λ 2 ∑ nl -1 l= 1 ∑ s l i= 1 ∑ s l -1 j= 1 W( l) ji ( ) 2 为了防止过拟合,增加上式中的正则化项( 第二项) 来降低权重的值。针对上述损失函数,梯度下降法为按照下列公式更新参数 W 和 b: W( l) ij =W( l) ij -α W( l) ij J( W,b) b( l) i = b( l) i -α b( l) i J( W,b) 这里 α 是学习速率。关于初始化,将参数 W( l) ij 和 b( l) i 初始化为趋近于零的随机值( 如正态分布 N( 0,ε2 ) 生成的随机值,可以设置 ε 为 0.01) 。梯度下降法中一个重要的步骤为计算关于 W 和 b 的偏导数。由于神经网络结构的特殊性,可以使用反向传播来计算针对单个样本的偏导数W( l) ij J( ) W,b; x,y 和 b( l) i J( ) W,b; x,y ,进而得到整体损失函数 J( W,b) 的偏导数: W( l) ij J( W,b) = 1 m ∑ m i= 1 W( l) ij J( W,b; x( i) ,y ( i) ) [ ] +λW( l) ij b( l) i J( W,b) = 1 m ∑ m i= 1 b( l) i J( W,b; x( i) ,y ( i) ) [ ]
反向传播的主要思路为给定样本( x,y) ,首先进行“前向传播”得到神经网络中所有的激活值以及神经网络最后的输出值 hW,b ( x) 。然后,对每层的每个节点计算残差 δ ( l) i ,其表示此节点对最终神经网络的输出值的残差的影响。对于残差,首先可直接算出神经网络输出与实际真实值之间的差,并记其为 δ ( nl ) i 。然后依次从后往前,可以计算出中间隐藏单元的残差。具体的细节为: ( 1) 根据前向传导公式,依次得到 L2,L3,…,Lnl 层的激活值。 ( 2) 对输出层( 第 nl 层) 的每个输出单元 i,残差计算公式为: δ ( nl ) i = z ( nl ) i 1 2 ‖y-hW,b( x) ‖2 = - yi-a( nl ) i ( ) ·f' z ( nl ) i ( ) ( 3) 对 l = nl-1,nl-2,nl-3,…,2 层第 i 个节点,残差的计算公式为: δ ( l) i = ∑ s l +1 j= 1 W( l) ji δ ( l+1) j ( ) ·f' z ( l) i ( ) ( 4) 计算 W( l) ij J( ) W,b; x,y 与 b( l) i J( ) W,b; x,y ,具体公式为: W( l) ij J( ) W,b; x,y = a( l) j δ ( l+1) i b( l) i J( ) W,b; x,y = δ ( l+1)
上述的计算过程可以表示为矩阵运算的形式。本文使用符号“·”来表示向量阿达玛乘积( 若 a = b·c,则 ai = bici ) 。具体的反向传导矩阵运算步骤为: ( 1) 根据前向传导公式,依次得到 L2,L3,…,Lnl 层的激活值。 ( 2) 对输出层( 第 nl 层) ,残差计算公式为: δ ( nl ) = - y-a( nl ) ( ) ·f' z ( nl ) ( ) ( 3) 对 l = nl - 1,nl - 2,nl - 3,…,2 层,残差的计算公式为: δ ( l) = W( l) ( ) T δ ( l+1) ( ) ·f' z ( l) ( ) ( 4) 计算所需的偏导数,具体公式为: #W( l) J( ) W,b; x,y = δ ( l+1) a( l) ( ) T #b( l) J( ) W,b; x,y = δ ( l+1) 下面,梯度下降法中的一次迭代过程可以总结为: ( 1) 对所有的 l,令 ΔW( l) : = 0,Δb( l) : = 0。 ( 2) 对 i = 1…m, ①反向传播算法计算#W( l) J( W,b; x,y) 和#b( l) J( W,b; x,y) ; ②计算 ΔW( l) : =ΔW( l) +#W( l) J( ) W,b; x,y ; ③计算 Δb( l) : =Δb( l) +#b( l) J( ) W,b; x,y 。 ( 3) 更新权重 W 和 b: W( l) = W( l) -α 1 m ΔW( l) ( ) +λW( l) [ ] b( l) = b( l) -α 1 m Δb( l) [ ] 通过梯度下降法迭代过程,减小代价函数 J( W,b) ,得到最优的参数 W 和 b。
结论
“人工智能”不仅是一项科学技术,更是一种可以认识当下万事万物的思维方式。本文基于应用这样的认知逻辑到实际问题中,从教育的角度出发,将人工智能中的神经网络算法求解融入最优化方法课程内容当中。希望把握国家发展战略与教育变革发展方向,探索实现教育变革的路径,使得学校教育紧跟时代发展的步调与方向。此外,当前机器学习取得的一系列优秀成果使得其被广泛应用到各行各业,机器已经开始取代一些器械重复性的工作。在此趋势之下,学生对于神经网络原理与最优化方法的学习与掌握将极大地提高其在就业市场的核心竞争力。《最优化方法》改革建议: 在向同学们讲解一般的优化方法的同时,也介绍一些神经网络优化中出现的问题及一般的解决办法。同时将神经网络优化中的实际问题提炼出来交给学生去做,让学生通过查阅文献、交流讨论、编程实现来解决实际问题并对其中的问题做相应的理论分析。这不仅能够使得教学内容与时俱进,提高学生对最优化方法的理解,同时也能锻炼学生查阅资料、合作与动手能力。
论文指导 >
SCI期刊推荐 >
论文常见问题 >
SCI常见问题 >