机器学习笔记week5(Andrew NG)
机器学习笔记week5(Andrew NG)
martin
cost function
下图分别是逻辑回归和神经网络的cost function,可以看到,神经网络的代价函数比逻辑回归多了一层求和,原因是神经网络的输出层包含K个输出节点,如果要进行多分类的话需要确定哪一节点是1,从而将输出结果表达成one-hot的形式。
练习题1
BP(BackPropagation)算法
BP算法的产生是源于神经网络的多层次结构所致。因为不同于逻辑回归只有一层一个节点,神经网络包含了多个数个节点,而不同层之间的节点通过不同的“线”所连接,而被我们把这些线统称为权重weight或者
跟逻辑回归一样,我们定义好了cost function函数后就要对其关于
关于上图中的一些方程我们可以用下图来化简下,可能更直观些:
我们把每一层的多个节点都用一个大圆圈来表示,这样,层与层之间就变成了一个链式结构,可以看到每一层的输入都是上一层的输出,彼此依赖。
上图是NG在视频中直接给给出的公式,并没有进行推导,所以看着有点蒙,这里给大家推导一下:
先明确下目标,我们的目标是:
我们定义
而这里,我们就定义
-
输出层
σ(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′ -
输入层
输入层不用进行反向传播。
此时,我们已经将目标
于是,我们的目标函数就是这样的:
然后稍微做下变动:
于是就有了BP算法的整个过程:
练习