机器学习笔记week5(Andrew NG)

来源:互联网 发布:unity3d 数据库 编辑:程序博客网 时间:2024/06/03 16:18

机器学习笔记week5(Andrew NG)

martin

  • 机器学习笔记week5Andrew NG
    • cost function
    • BPBackPropagation算法


cost function

下图分别是逻辑回归神经网络cost function,可以看到,神经网络的代价函数比逻辑回归多了一层求和,原因是神经网络的输出层包含K个输出节点,如果要进行多分类的话需要确定哪一节点是1,从而将输出结果表达成one-hot的形式。

此处输入图片的描述 此处输入图片的描述

此处输入图片的描述

练习题1

此处输入图片的描述

BP(BackPropagation)算法

BP算法的产生是源于神经网络的多层次结构所致。因为不同于逻辑回归只有一层一个节点,神经网络包含了多个数个节点,而不同层之间的节点通过不同的“线”所连接,而被我们把这些线统称为权重weight或者θ,正是由于众多纷杂的θ的训练比较复杂,所以采用BP算法来跟新权重。

此处输入图片的描述

跟逻辑回归一样,我们定义好了cost function函数后就要对其关于θ求导,来到达最优值。

此处输入图片的描述

关于上图中的一些方程我们可以用下图来化简下,可能更直观些:

此处输入图片的描述

我们把每一层的多个节点都用一个大圆圈来表示,这样,层与层之间就变成了一个链式结构,可以看到每一层的输入都是上一层的输出,彼此依赖。

此处输入图片的描述

上图是NG在视频中直接给给出的公式,并没有进行推导,所以看着有点蒙,这里给大家推导一下:
先明确下目标,我们的目标是:

minJ(θ)θ

我们定义θX=z,所以上式可以写成
minJ(θ)zzθ

而这里,我们就定义σ=J(θ)z作为每一层的残差

  • 输出层
    σ(L)=J(θ)z(L)=J(θ)a(L)a(L)z(L)=((1y)1a(L)yaL)a(L)(1a(L))=a(L)y
  • 隐含层
    σ(L1)=J(θ)z(L1)=J(θ)a(L)a(L)z(L)z(L)a(L1)a(L1)z(L1)=(a(L)y)θ(L1)a=σ(L)θ(L1)a

    σ(L1)=σ(L)θ(L1)a
  • 输入层
    输入层不用进行反向传播。

此时,我们已经将目标minJ(θ)θ=minJ(θ)zzθ中的前半部分写了出来,那么后半部分为:

z(L)θ(L1)=a(L1)

于是,我们的目标函数就是这样的:
J(θ)θ(L1)=(a(L)y)a(L1)=σ(L)a(L1)

然后稍微做下变动:
J(θ)θ(L)=(a(L+1)y)a(L)=σ(L+1)a(L)

于是就有了BP算法的整个过程:

此处输入图片的描述

练习

此处输入图片的描述

原创粉丝点击