简单讲神经网络的训练过程就是不断的修正参数的过程。这个过程可以分为:正向传播和反向传播。
正向传播是推断的过程,是根据输入,经过权重、激活函数计算出隐层,讲输入的特征向量从低级特征逐步提取为抽象特征,直到得到最终输出结果的过程。
反向传播是根据正向传播的输出结果和期望值计算出损失函数,再通过链式求导,最终从网络后端逐步修改权重使输出和期望值的差距变到最小的过程。
图片.png
图片.png
实例
图片.png第1步,随机初始化,都为0也可以
图片.png第2步,利用w,b计算隐层
图片.png第3步,计算输出,正向传播结束
图片.png第4步,反向传播,利用损失函数
图片.png第5步,反向传播,只计算W(2)的W 21,举例子
图片.png第6步,链式法则计算
图片.png第7步,链式1
图片.png第8步,链式2
图片.png第9步,链式3
图片.png第10步,链式最终得到
图片.png第11步,更新权重
图片.png第12步,同理,更新所有
迭代再迭代
反向传播的作用是将神经网络的输出误差反向传播到神经网络的输入端,并以此来更新神经网络中各个链接的权重的权重
当第一次反向传播完成后,网络的模型的参数得到更新,网络进行下一轮的正向传播过程,如此反复的迭代进行训练,从而不断缩小计算值与真实值之间的误差。
网友评论