【Ng 深度学习课程总结】02. 改善深层神经网络 ——超参数调试、正则化以及优化

week1. 深度学习的实用层面

课程

  • 数据集的划分:从小数据集到大数据时代;
  • 偏差和方差:如何衡量;如何应对;
  • 正则化项
    • logistic regression;
    • 神经网络中;
    • 计算代价函数和梯度;
    • 为什么正则化项可以减少过拟合;
  • dropout
    • 作用;
    • 反向随机失活;
    • dropout缺点;
    • 正向传播和反向传播时都需要用;
  • 其它正则化方法:
    • 数据增强;
    • early stopping;
  • 正则化输入
    • 零均值化;
    • 归一化方差;
    • 训练集和测试集应使用相同的平均值和方差进行归一化,均值和方差是由训练集计算得来的。
    • 为什么对数据集归一化的直观解释;
  • 梯度消失和梯度爆炸
  • 权重初始化
    • 三种方式;
    • n越大时,希望w越小,1/n;
    • 和tanh函数结合效果较好;
  • 梯度检验:
    • 对每一个参数分量进行偏导数计算;
    • 使用双边误差;
    • 如果进行了正则化,包括正则化项;
    • 不能与dropout同时使用;

编程作业

参数初始化

  • 使用0来初始化参数:导致神经网络无法打破对称性,不管网络结构又多少层,最终都得到和logistic regression相似的结果;
  • 使用较大的随机数来初始化参数:减慢了优化速度;
  • 使用抑梯度异常来初始化参数:随机初始化有助于打破对称,使不同的神经单元学习到不同的参数;

正则化模型

  • 不使用正则化;
  • 使用L2正则化:
    • λ \lambda 是可以用训练集调整的超参数。L2正则化会使决策边界更加平滑,如果 λ \lambda 过大,会导致模型过度平滑,模型偏差过高。
    • 对成本计算和反向传播过程有影响;
  • 使用dropout,随机结点删除;
    • 每次迭代随机去掉一些结点;
    • 前向传播和反向传播去掉同样的结点;

梯度校验

  • 所有的参数都要计算,如果有正则化项,包括正则化项;
  • 首先计算近似梯度,然后计算误差。

week2 . 优化算法

课程

  • mini-batch 梯度下降;
  • batch vs. mini-batch;
  • 指数加权平均;
  • 动量梯度下降法;
  • momentum;
  • RMS;
  • Adam 优化算法;
  • 学习率衰减;
  • 局部最优问题;

编程作业

  • 分割数据集:
    • 把训练集打乱;
    • 切分;
  • 优化梯度下降算法:
    • 不使用任何优化算法;
    • mini-batch梯度下降法;
    • 使用具有动量的梯度下降算法;
    • 使用Adam算法:
      • 要求的内存相对较小;
      • 微调超参数的情况下也能运行的很好。

==========================================这两天心思有点乱,不知道在想些什么。又担心找不到工作,又怀疑自己是不是还是应该转开发。

week3. 改善深层神经网络

课程

  • 超参数调试处理;
  • 给超参数选择合适的标尺;
  • 超参数调试实践:
    • pandas;
    • caviar;
  • 激活值的归一化:
    • 拟合进神经网络;
    • 更新参数;
    • 起作用的原因;
    • 在测试数据上使用batch norm;
  • softmax回归;

编程作业

  • tensorflow入门:
    • 创建Tensorflow变量(此时,尚未直接计算)
    • 实现Tensorflow变量之间的操作定义
    • 初始化Tensorflow变量
    • 创建Session
    • 运行Session,此时,之前编写操作都会在这一步运行。
  • 使用tensorflow实现手势识别
    ==============一大早上的就焦虑不知道干嘛。。。怀疑自己在做的事情,不知道到底该怎么按部就班的学习。愁。

猜你喜欢

转载自blog.csdn.net/iCode_girl/article/details/89600418