【吴恩达机器学习】第10章 神经网络参数的反向传播算法

代价函数

像大部分机器学习一样,从代价函数开始讲起。

重点讲解,神经网络在分类问题中的应用。

神经网络层数
LLL来表示神经网络结果的总层数。

每层单元数
sls_lsl表示第lll层的单元数,但不包括偏置。

Binary classification
一个输出单元

Multi-class classification
k分类,含有k个输出单元

Cost function

  • Logistic regression:
    【吴恩达机器学习】第10章 神经网络参数的反向传播算法
  • Neural network
    不再只有一个输出单元,而是K个。
    【吴恩达机器学习】第10章 神经网络参数的反向传播算法

    Θ(l)\Theta^{(l)}Θ(l)表示第lll层T对应的参数,最后一层没有参数。

反向传播算法

【吴恩达机器学习】第10章 神经网络参数的反向传播算法
需要优化的参数
Θijl\Theta^{l}_{ij}Θijl

如何计算参数的偏导
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
每个单元的**误差
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
第4层的**误差
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
其它层的**误差
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
参数的偏导
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
Backpropagation algorithm
【吴恩达机器学习】第10章 神经网络参数的反向传播算法

理解反向传播

中间偏导
如果cost函数为:g(z)=ylog⁡hΘ(z)+(1−y)log⁡(1−hΘ(z))g(z)= y\log h_\Theta(z) + (1 - y) \log( 1 - h_\Theta(z))g(z)=yloghΘ(z)+(1y)log(1hΘ(z))
则对zzz求导后:
∂zg(z)=y−hΘ(z)\frac \partial z {g(z)} = y - h_\Theta(z) zg(z)=yhΘ(z)
【吴恩达机器学习】第10章 神经网络参数的反向传播算法

梯度检测

将计算的导师值与DVecDVecDVec比较
【吴恩达机器学习】第10章 神经网络参数的反向传播算法

随机初始化

对称权重问题
当两个参数初始化为0时,之后用梯度下降法,它们的更新保持一致。
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
随机初始化思想
初始化时,对参数进行随机化。

组合到一起

输入特征的维数
输出特征的维数

隐藏层数量
默认一层

每一层的隐藏层单元相同,效果会更好。
一般单元数也与输出层单元数相同,或者大几倍。

训练一个神经网络的过程
【吴恩达机器学习】第10章 神经网络参数的反向传播算法
【吴恩达机器学习】第10章 神经网络参数的反向传播算法