神经网络的思想起源神经元的原理神经网络结构正向传播算法怎样用于实际问题反向传播算法概述算法的历史神经网络训练时的优化目标函数几个重要的复合函数求导公式算法的推导算法的总结工程实现问题人类的大脑由大约800亿个神经元组成这些神经元由突触与其他神经元相互连接,交换电信号和化学信号大脑通过神经元之间的协作完成各种功能神经元之间的连接关系是通过进化、生长发育和后天刺激形成的人工神经网络受动物神经系统的启发,是一种仿生的方法。但只是简单的模仿是感知器模型、logistic回归的进一步发展神经元的原理1x2x3x4x5xbxwfiii51b12345,,,,xxxxx12345,,,,Twxfb输入值连接权重偏置项输出值为什么需要激活函数?向量和矩阵形式11expfxxsigmoid函数定义域值域单调性导数神经网络结构多层前馈型神经网络,也称为多层感知器模型MLP是一个分层结构,每一层有多个神经元输入层隐含层输出层123,,xxx1234,,,yyyy12,zz1111(1)11112213312111(1)21122223323111(1)31132233334111(1)411422433411exp11exp11exp11expywxwxwxbywxwxwxbywxwxwxbywxwxwxb12222(2)111122133144122222(2)211222233244211exp11expzwywywywybzwywywywyb1uWxbxullllllf神经网络每一层完成的变换权重矩阵的每一行为本层神经元与上一层所有神经元的连接权重激活函数分别作用于每个神经元的输出值,即向量的每个分量,且使用了相同的函数111111111111........................llllllllllllslllllsssssswwxbuwwxbu内积加偏置1...lllsxxf激活函数正向传播算法nm神经网络实现的是向量到向量的映射yxh1uWxbxullllllf网络的每一层完成的变换对于前面例子中的网络2112zWWxbbff1122yWxbzWybff完整的正向传播算法1xx1uWxbllllxullf设置输入值循环,对于2,...,lm结束循环输出xm神经网络本质上是一个多层复合函数通过调整权重和偏置项实现不同的映射权重和偏置项的值通过训练得到怎样用于实际问题分类问题-输入值为特征向量或原始数据,输出值为one-hot编码回归问题-输出值为回归函数值对于分类问题,分类结果为输出层神经元的最大值对于回归问题,直接是输出层的值2828输入层有784个神经元输出层有10个神经元隐含层的神经元数量根据需要设定0123456789分类问题-手写数字图像识别回归问题-预测人脸关键点神经网络直接为输入图像预测出关键点的坐标(x,y)反向传播算法简介解决神经网络参数求导问题源自微积分中多元函数求导的链式法则与梯度下降法配合,完成网络的训练DavidE.Rumelhart,GeoffreyE.Hinton,andRonaldJ.Williams.Learninginternalrepresentationsbyback-propagatingerrors.Nature,323(99):533-536,1986.1111(1)11112213312111(1)21122223323111(1)31132233334111(1)411422433411exp11exp11exp11expywxwxwxbywxwxwxbywxwxwxbywxwxwxb12222(2)111122133144122222(2)211222233244211exp11expzwywywywybzwywywywyb以下面的3层网络为例:输入层隐含层输出层隐含层完成的变换:输出层完成的变换:激活函数选用sigmoid:11expfxx写成矩阵和向量形式为:2112zWWxbbff1122yWxbzWybff1uWxbxullllllf神经网络每一层完成的变换为:权重矩阵的每一行为本层神经元与上一层所有神经元的连接权重激活函数分别作用于每个神经元的输出值,即向量的每个分量,且使用了相同的函数111111111111........................llllllllllllslllllsssssswwxbuwwxbu内积加偏置1...lllsxxf激活函数211xy2miiiLWhm神经网络的权重和偏置参数通过训练得到训练的目标是最小化训练样本的预测误差以均方误差为例(也叫欧氏距离):真实标签值神经网络的预测值二范数的平方可以写成对单个样本损失的均值:2111xy2miiiLWhm单个样本的损失1ttWtWWLW所有参数如果对所有参数的梯度值已经计算出来,则可以用梯度下降法更新:现在的问题是目标函数是一个复合函数,每层都有权重矩阵与偏置向量,如何计算损失函数对它们的导数值?221121WWxbby2ff2221111xc....22nnLxcxc111x...xcnnnLxcxLLxcx欧氏距离损失函数的梯度值多元函数求导的链式法则,,,,,fuxyvxywxyffufvfwxuxvxwxffufvfwyuyvywy上一层中所有和本变量有关的变量都要考虑问题1yWxyf?yWff1111nnkllillmmklljkkijkijkijiijiwxwxyfffffxwywywywy1111111111....................................nnnnmmnmmmfffffxxwwyyyxxfffffxxwwyyyTWyxff2111211121222221...........................nnmmmnnm结论:问题2yWxyf?yxff11y111...njkkmmmjkjiimijjjijijiiwxyffffTxyWff结论:2111211121222221...........................nnmmmnnm问题3yxgiiygx?yxffiiiiyffxyx'xyxffg结论:yf问题4uWxyug?yxffyfTT'xuyWWufffg结论:问题5:yxg12,,...,,1,...,iinygxxximyf?yxff111......mimijijjjmfyyyyffxyxxxfyT11111111111.......................................mnmmmnmmnnnyyyyfffxxxxxyyfyfyyfyxyyxxxxTxyyxff结论:雅克比矩阵111122221212.....................nnmmmnyyyxxxyyyxxxyyyxxx21211211先从最外层算起计算某一层时需要依靠它外面贴近的那一层1uWxbxullllllfT1WuxlllLLbullLL正向传播时的变换公式:计算权重和偏置的梯度:这一项对于权重矩阵和偏置向量的梯度是共用的''uxuxyulllllLLff输出层:T1'WxyuxllllLf'bxyulllLf权重和偏置的梯度可以直接求出:11111uWxbWublllllllf隐含层正向传播时的变换:1T1''uxuuWullllllLLfLf'Tu11'xyuWulllllllllflnLfln定义误差项:根据后一层的梯度计算本层的梯度:终点递推公式反向传播算法'xyulllnnnfT11'WullllfT1wxlllLbllL计算误差项:输出层:隐含层:计算梯度值:权重:偏置:梯度下降更新:WbWWbbllllllLL复合函数求导梯度下降法神经网络的训练算法可以总结为梯度下降法有几种不同的实现单样本模式批量模式除梯度下降法以外,还可以采用二阶技术,如牛顿法随机梯度下降法工程实现问题激活函数值,导数值,在正向传播的时候已经计算出来,存储备用编程语言中的向量和矩阵按行存储,因此计算公式有所变化1uxWbllllT11'WullllfT1WxllL