martin
机器学习笔记week5Andrew NG cost functionBPBackPropagation算法下图分别是逻辑回归和神经网络的cost function,可以看到,神经网络的代价函数比逻辑回归多了一层求和,原因是神经网络的输出层包含K个输出节点,如果要进行多分类的话需要确定哪一节点是1,从而将输出结果表达成one-hot的形式。
练习题1
BP算法的产生是源于神经网络的多层次结构所致。因为不同于逻辑回归只有一层一个节点,神经网络包含了多个数个节点,而不同层之间的节点通过不同的“线”所连接,而被我们把这些线统称为权重weight或者 θ ,正是由于众多纷杂的 θ 的训练比较复杂,所以采用BP算法来跟新权重。
跟逻辑回归一样,我们定义好了cost function函数后就要对其关于 θ 求导,来到达最优值。
关于上图中的一些方程我们可以用下图来化简下,可能更直观些:
我们把每一层的多个节点都用一个大圆圈来表示,这样,层与层之间就变成了一个链式结构,可以看到每一层的输入都是上一层的输出,彼此依赖。
上图是NG在视频中直接给给出的公式,并没有进行推导,所以看着有点蒙,这里给大家推导一下: 先明确下目标,我们的目标是:
min∂J(θ)∂θ 我们定义 θX=z ,所以上式可以写成 min∂J(θ)∂z∂z∂θ 而这里,我们就定义 σ=∂J(θ)∂z 作为每一层的 残差。 输出层 σ(L)=∂J(θ)∂z(L)=∂J(θ)∂a(L)∂a(L)∂z(L)=((1−y)1−a(L)−yaL)a(L)(1−a(L))=a(L)−y 隐含层 σ(L−1)=∂J(θ)∂z(L−1)=∂J(θ)∂a(L)∂a(L)∂z(L)∂z(L)∂a(L−1)∂a(L−1)∂z(L−1)=(a(L)−y)θ(L−1)a′=σ(L)θ(L−1)a′ 即 σ(L−1)=σ(L)θ(L−1)a′ 输入层 输入层不用进行反向传播。此时,我们已经将目标 min∂J(θ)∂θ=min∂J(θ)∂z∂z∂θ 中的前半部分写了出来,那么后半部分为:
∂z(L)∂θ(L−1)=a(L−1) 于是,我们的目标函数就是这样的: ∂J(θ)∂θ(L−1)=(a(L)−y)a(L−1)=σ(L)a(L−1) 然后稍微做下变动: ∂J(θ)∂θ(L)=(a(L+1)−y)a(L)=σ(L+1)a(L)于是就有了BP算法的整个过程:
练习