神经网络笔记 - 反向传播(BackPropagation)

xiaoxiao2021-02-28  96

神经网络的数学描述:

wljk 表示 l1 层的第 k 个神经元到l层的第 j 个神经元输入的权重. blj表示 l 层的第j个神经元的偏移 alj 表示 l 层的第j个神经元的输出 所以:

alj=σ(kwljkal1k+blj) 也可以用更简洁的描述: al=σ(wlal1+bl) 令: zl=zlj=wlal1+bl zl 可以视为第 l 层神经元的带权重和偏移的输入.

代价函数(Cost Function)

代价函数的定义如下: C=12nx||y(x)aL(x)||2 这里: n 是训练样本的个数, y(x)是期望的输出, L 是神经网络的总层数, aL=aL(x)是神经网络当输入样本为 x 时的输出.

Hadamard 积

Hadmard积的定义如下:

反向传播的基本概念

定义错误δlj: δlj=Czlj 则: δLj=kCaLkaLkzLj 因为 aLk 是第 L 层的第k个神经元, 只有当 j=k 时, 跟 zLj 有关, 所以 aLkzLj=0,if   kj 于是: δLj=CaLjaLjzLj 所以, 反向传播公式一(BP1): δLj=CaLjσ(zLj)

继续来推导反向传播公式二 (BP2):

δlj=Czlj 于是: δlj=kCzl+1kzl+1kzlj 继续推导: δlj=kzl+1kzlkδl+1k 因为: zl+1k=jwl+1jalj+bl+1j=jwl+1jσ(zlk)+bl+1j 所以: zl+1kzlk=wl+1kσ(zlk) 因此: δlj=kwl+1kjδl+1kσ(zlk) 这就是反向传播公式二BP2, 也可以简写为: δl=(wl+1)Tδj+1σ(zl) 于是, 如果我们已知 δl , 可以计算 δl1 .

神经网络的学习过程最终需要调整 w b, 所以我们需要计算 Cwljk Cblj 。 这就是反向传播公式三和四(BP3 and BP4) 待续

Reference

http://neuralnetworksanddeeplearning.com/ 强烈推荐机器学习 - 周志华 清华大学出版社https://en.wikipedia.org/wiki/Hadamard_product_(matrices)
转载请注明原文地址: https://www.6miu.com/read-75123.html

最新回复(0)