人工神经网络(后向传播算法下)

这一节我们针对神经网络的一般情况推导了后向传播算法
在下一节中
我们将开始介绍神经网络后向传播算法应用中的一系列的问题

在上一讲中
我们基于一个简单的神经网络
讲解了如何用后向传播算法更新神经网络的参数
完成神经网络的训练
这一讲我们将后向传播算法推广到更一般的神经网络中
也就是说我们不限制神经网络的层数以及每一层的神经元个数
乃推倒后向传播算法
如图所示
假设神经网络有l层
我们不限制每一层神经元的个数
那么神经网络的图可以用更简单的矩阵来表示
首先输入x它对应着第零层的输入
我们用a括号零来表示
那么第一层的输出z括号一
它等于的是欧米伽括号一乘以a括号零加上b括号一
这就相当于第一层的omega和b作用
在第零层的a上
我们得到了第一层的z
接下来a括号一它等于f z括号一
这个fi是连接两层之间的非线性函数
同样的道理
z括号二等于欧米伽括号二乘以a括号一加上b括号二
再接下来a括号二等于y z一括号二
这样一层一层的下去
到第l层的时候
z括号l等于欧米伽括号l乘以a括号l减一
加上b括号l最后的输出y等于a括号l等于y z括号l
根据这张图和这样的公式
我们进行一些说明
第一网络总共有l层
第2z括号k a括号k b括号k为向量
我们可以用z i括号k ai括号k bi括号k表示其第i个分量
第三输出外可以是向量
用yi表示第i个分量
当然输出的y也可以是一个数
那么它也可以看作一维的向量
假设对于一个输入的向量大x其标签为大y
则我们设置目标函数minimize e等于1/2小y减大y模的平方
其中小y和大y都是向量目标函数
设为两者差的模的平方
和上一讲一样
在推导后向传播算法的时候
我们需要先推导e对枢纽变量的偏导数
然后再基于这些枢纽变量推导对所有omega和b的偏导数
这里我们设置枢纽变量德尔塔i括号m就是dm层的第i个德尔塔分量
它等于的是e对ji括号m的偏导数
我们还是按照上一讲的思路
从后往前推
首先看最后一层及第l层
德尔塔i括号l等于e对z i括号l的偏导数
它等于e对yi的偏导数乘以yi对zi和号l的偏导数
根据计算
我们可以得到德尔塔i括号l等于小的yi减掉大的yi乘以f一撇
z i括号l
接下来我们看如何通过dm加一层推导dm层
德尔塔i括号m等于e对z i括号m的偏导数
经过一些化简
我们可以得到如下的递推公式
德尔塔接括号m加一乘以偏z j
括号m加一偏z i
括号m
为了推倒第二项
偏z j括号m加一偏z i括号m
我们在这里详细地画出dm乘的向量z和dm加一乘向量z之间的关系
根据上面这个关系
我们能够相对容易地得出偏jj括号m加一偏z i括号m等于偏z j
括号m加一偏a i括号m乘以偏ai
括号m偏z i括号m将会等于欧米伽j i
括号m加一φ一撇z i括号m代入上面的式子
我们可以获得最终的递推公式
德尔塔i括号m等于j
所有加起来
最后乘以f一撇zi
括号m这个递推公式可以由德尔塔i括号l逐层向前递推
德尔塔i括号m其中m等于l减1-2
一直到一
我们获得每一层的德尔塔i括号l过后
容易求得偏e偏欧米伽j i括号m
它将等于德尔塔g括号乘以a i括号m减一
同时偏e偏bi括号等于德尔塔i括号m
在这里我们讲到了如何利用后向传播算法
对一般情况下的人工神经网络求解偏导数
这里我们只是简略地讲解了其过程
请同学们对照视频慢慢的逐步的推导每一步
相信通过同学们自己的推导
一定能够有所收获
最后归纳总结
一般情况下的后向传播算法的流程和上一讲基本上是一样的
唯一不同的是目标函数变成了模的形式
第一步对神经网络每一层的各个神经元随机选取相应的omega和b的值
第二步前项计算对于输入的训练数据计算并保留每一层的输出值
直到计算出最后一层的输出小y为止
第三步设置目标函数e例如e等于1/2小y减大y模的平方
用后向传播算法对每一个omega和b计算偏移偏欧米伽和偏移偏b
第四利用如下迭代公式更新omega和b的值
n加一部的欧米伽等于第n步的欧米伽
减掉阿尔法一对omega的偏导
在第n部的omega和dn部的b上的值
n加一部的b等于n步的b减掉阿尔法e对b的偏导
在第n部的欧米伽和第n部的b上的值
第五步回到二不断循环
直到所有的一对omega和e对b的偏导的绝对值都很小为止
退出循环
这一节我们针对神经网络的一般情况推导了后向传播算法
在下一节中
我们将开始介绍神经网络后向传播算法应用中的一系列的问题
本讲就到这里
谢谢同学们

发表评论

邮箱地址不会被公开。 必填项已用*标注