本节目录:

  1. 代价函数
  2. 反向传播算法
  3. 把矩阵展开成向量
  4. 梯度检验
  5. 随机初始化

1 代价函数
假设神经网络的训练样本有????个,每个包含一组输入????和一组输出信号????,????表示神经网
络层数,????????表示每层的 neuron 个数(????????表示输出层神经元个数),????????代表最后一层中处理单元
的个数。
将神经网络的分类定义为两种情况:二类分类和多类分类,
二类分类:???????? = 0, ???? = 0 ???????? 1表示哪一类;
????类分类:???????? = ????, ???????? = 1表示分到第 i 类;(???? > 2)。
机器学习笔记六之神经网络的学习
在神经网络中,有很多输出变量,
机器学习笔记六之神经网络的学习
训练集中的因变量也是同样维度的一个向量,因此我们的代价函数为:
机器学习笔记六之神经网络的学习
机器学习笔记六之神经网络的学习
通过代价函数观察算法预测的结果与真实情况的误差有多大。
对于每一行特征,我们都会给出K个预测,基本上,我们可以利用循环,对每一行特征都预测K个不同结果,然后利用循环在K个预测中选择可能性最高的一个,将其与y中的实际数据进行比较。
正则化的那一项只是排除了每一层????0后,每一层的???? 矩阵的和。最里层的循环????循环所
有的行(由???????? +1 层的**单元数决定),循环????则循环所有的列,由该层(????????层)的**单
元数所决定。即:ℎ????(????)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行
regularization 的 bias 项处理所有参数的平方和。
2 反向传播算法
在计算神经网络预测结果的时候我们采用了一种正向传播方法,我们从第一层开始正向一层一层进行计算,直到最后一层的ℎ????(????)。
为了计算代价函数的偏导数
机器学习笔记六之神经网络的学习,我们需要采用一种反向传播算法,也就是首先计算最后一层的误差,然后再一层一层反向求出各层的误差,直到倒数第二层。 以一个例子来说明反向传播算法。
机器学习笔记六之神经网络的学习
机器学习笔记六之神经网络的学习
机器学习笔记六之神经网络的学习
机器学习笔记六之神经网络的学习
如果我们考虑正则化处理,并且我们的训练集是一个特征矩阵而非向量。在上面的特殊
情况中,我们需要计算每一层的误差单元来计算代价函数的偏导数。在更为一般的情况中,
我们同样需要计算每一层的误差单元,但是我们需要为整个训练集计算误差单元,此时的误
差单元也是一个矩阵,我们用????????????(????)来表示这个误差矩阵。第 ???? 层的第 ???? 个**单元受到第 ????
个参数影响而导致的误差。
机器学习笔记六之神经网络的学习
3 反向传播算法的理解
为了更好地理解反向传播算法,我们先来研究一下前向传播的原理:
机器学习笔记六之神经网络的学习
机器学习笔记六之神经网络的学习
机器学习笔记六之神经网络的学习
对于每一个输出单元
机器学习笔记六之神经网络的学习
忽略正则部分只考虑代价函数:
机器学习笔记六之神经网络的学习

  • 把参数从矩阵展开成向量
    机器学习笔记六之神经网络的学习
    5 梯度检验
    有时神经网络使用梯度下降时,可能会存在一些不易察觉的错误,虽然代价是不断减小的,但最终的结果可能并不是最优的。为了避免这种情况,我们采取一种叫做梯度的数值检验,通过估计梯度值来检验我们计算的导数值是否符合要求。
    对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点然后
    计算两个点的平均值用以估计梯度。即对于某个特定的 ????,我们计算出在 ????-???? 处和 ????+???? 的
    代价值(????是一个非常小的值,通常选取 0.001),然后求两个代价的平均,用以估计在 ????
    处的代价值。
    机器学习笔记六之神经网络的学习
    机器学习笔记六之神经网络的学习
    6 随机初始化
    机器学习笔记六之神经网络的学习
    7 小结:
    使用神经网络时的步骤:

  • 网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。

  • 第一层的单元数即我们训练集的特征数量。

  • 最后一层的单元数是我们训练集结果的类的数量。

  • 如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。

    我们真正要决定的是隐藏层的层数和每个中间层的单元数。

    训练神经网络:

  1. 参数的随机初始化
  2. 利用正向传播方法计算所有的ℎ????(????)
  3. 编写计算代价函数 ???? 的代码
  4. 利用反向传播方法计算所有偏导数
  5. 利用数值检验方法检验这些偏导数
  6. 使用优化算法来最小化代价函数

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
  • 2021-07-17
  • 2021-07-28
  • 2021-10-25
  • 2021-08-13
  • 2021-05-03
猜你喜欢
  • 2021-10-15
  • 2021-08-22
  • 2021-04-15
  • 2021-10-18
  • 2021-08-09
  • 2021-09-06
  • 2021-04-28
相关资源
相似解决方案