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实现手势识别
==============一大早上的就焦虑不知道干嘛。。。怀疑自己在做的事情,不知道到底该怎么按部就班的学习。愁。