小白日常学习---BP算法

BP算法详细总结
神经网络

个人学习之后的理解,随手笔记。

这里可以用一个简单的小游戏来解释该网络,猜物品游戏,先给对方一个大致的范围,比如苹果,给定食物的范围,然后对方去猜(这就可以理解为正向传播),答错之后继续给提示(反向传播),这样有来有往直到猜到答案,就构成一个简单的BP网络。

在style transfer中就是,将input feature map 与output进行损失值的最小化匹配,也就是看结果是否相似,不同时就根据现在结果原路返回继续进行参数调整,直到结果相同。
下面就根据学习的进行一些汇总理解。
一个简单的神经网络学习模型可以用下图进行表示,
在这里插入图片描述
输入部接收外来的输入样本X,由训练部进行网络的权系数W调整,然后由输出部输出结果。在这个过程中,期望的输出信号可以作为教师信号输入,由该教师信号与实际输出进行比较,产生的误差去控制修改权系数W。

在风格迁移中有loss损失函数,假设对于content loss,这里就可以理解为output 与content input进行比较,对于产生的误差经过不断更新优化对应的权重值,促使误差最小化,使得output逼近最终的效果,在content上与输入相近。

在修改权重系数时有一个权重变化率n, n的取值一般在0到1之间,n取值太大则会影响w的稳定;取值也不能太小,太小则会使W的求取过程收敛速度太慢。

BP算法用于前馈多层网络的学习算法,(为了解决多层前向神经网络的权系数优化而提出来的),前馈多层网络的结构一般如图1—12所示
在这里插入图片描述
它含有输人层、输出层以及处于输入输出层之间的中间层。中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层。在隐层中的神经元也称隐单元。 隐层虽然和外界不连接.但是,它们的状态则影响输入输出之间的关系。这也是说,改变隐层的权系数,可以改变整个多层神经网络的性能。

设有一个m层的神经网络,并在输入层有样本X;设第k层的i神经元的输入总和表示为Ui k ,输出Xi k ;从第k—1层的第j个神经元到第k层的第i个神经元的权系数为Wij 各个神经元的激发函数为f,则各个变量的关系可用下面有关数学式表示:
在这里插入图片描述
反向传播算法分二步进行,即正向传播和反向传播。这两个过程的工作简述如下。

1.正向传播

输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。(torch7中的定义层)

function NewClass:updateOutput(input)
end

2.反向传播

反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以使误差信号趋向最小。

function NewClass:updateGradInput(input, gradOutput)
end

那么BP算法的实质就是使网络输出误差Ltotal值达到最小,BP算法具体就是采用“最速下降法”使总误差函数尽量达到最小。

.最速下降法,即梯度下降算法,使权值调整量与误差的梯度下降成正比。也就是说调整后权值使下次迭代计算的误差沿各权值的梯度方向是下降的,那么输出总误差是趋于减少的。此法可使网络输出误差达到局部极小,但是不能保证达到全局最小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章