反向传播过程SL我们对任意神经元上的误差作出如下定义:8z注1:这个误差8完全是一个人为的定义,求误差8的目的,是以此为中介,求损失函数对参数w和b的偏导数。我们也可以定义误差为损失函数对神经元输出信号的偏导。注2:虽然这个误差是一个人为的定义,但是这个思路在机器学习领域一直都有可靠且广泛的应用,例如:XGB和LGB的残差也是用了类似的将损失函数对超参数求偏导的方法。那么,对于神经网络的最后一层(第L层),可以求得整个神经网络的第组误差:0o(2)Oal"aLaLaLaL0(-)8oz0QaozoaloaozaL进行向量化,并记为公式BPI:S()=①α()其中:右式用到了哈达玛积,Oa表示将两个同样结构的矩阵的相同位置上的数值相乘
反向传播过程 • 注1: 这个误差δ完全是一个人为的定义,求误差δ的目的,是以此为中介,求损失函数 对参数w和b的偏导数。我们也可以定义误差为损失函数对神经元输出信号的偏导。 • 注2 : 虽然这个误差是一个人为的定义,但是这个思路在机器学习领域一直都有可靠 且广泛的应用, 例如:XGB和LGB的残差也是用了类似的将损失函数对超参数求偏导的方法。 δi = (l) δL δzi 我们对任意神经元上的误差δ作出如下定义: (l) 那么,对于神经网络的最后一层(第L层),可以求得整个神经网络的第组误差: 进行向量化,并记为公式 BPl: 其中: 右式用到了哈达玛积, 表示将两个同样结构的矩阵的相同位置上的数值相乘。 ∂L ∂a (l) δ (l)= ⊙ σ′( z ) (l) δi = (l) = ∂L ∂zi (l) ∂L ∂ai (l) ∂ai (l) ∂zi (l) = ∂L ∂ai (l) ∂σ( zi ) (l) ∂zi (l) = ∂L ∂ai (l) σ′( zi ) (l)
反向传播过程接着,为了能够把误差层层向前传导,我们需要找到两个相邻层误差之间的关系,对于任意两层1层和1-1层的神经网络:kz(0da(l-1)da(l-1)alalal(-1)(-1az(-1)az(aa(-1)aa(-1)azazLazal[8(w.910'(z(-1)(-1)lo(z(-1) =二进行向量化,并记为公式BP2:(-I)=[(w()T.S()Iα(z(-I))其中:右式的第二项和第三项之间用到了哈达玛积,表示将两个同样结构的矩阵的相同位置上的数值相乘
反向传播过程 接着,为了能够把误差层层向前传导,我们需要找到两个相邻层误差之间的关系, 对于任意两层1层和1-1层的神经网络: 进行向量化,并记为公式BP2: 其中:右式的第 二项和第三项之间用到了哈达玛积,表示将两个同样结构的矩阵的相同位置上的 数值相乘。 ⊙σ′( zi ) (l-1) δ = [(w(l) ) T · δ(l) ] (l-1)
反向传播过程获取了各层各神经元的误差后,我们就能够利用误差作为中介,对模型参数W和b进行选代求解。先求解W的偏导数:02002,0_(-1)Calala[Ziw a]8050(-1()aweCaweazaw.awij再求解b的偏导数:aLaLazaza[2,wdablab,az(ab,0ab()
反向传播过程 先求解w的偏导数: 再求解b的偏导数: 获取了各层各神经元的误差δ后,我们就能够利用误差δ作为中介,对模型参数 w和b进行选代求解