机器学习笔记week5(Andrew NG)
martin
cost function
下图分别是逻辑回归和神经网络的cost function,可以看到,神经网络的代价函数比逻辑回归多了一层求和,原因是神经网络的输出层包含K个输出节点,如果要进行多分类的话需要确定哪一节点是1,从而将输出结果表达成one-hot的形式。
练习题1
BP(BackPropagation)算法
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算法的整个过程:
练习