Deep learning学习记录(课程2)

标题:深度神经网络的改进:超参数调节(一些思想和策略)、正则化(提升泛化性能,应对过拟合)和最优化(加快训练速度,更好的收敛)

课程2的内容偏重于实践,也有好几个作业,程序看着和写的还是比较爽的感觉。总结一些理论上介绍的东西:

  1. 不同的初始化过程对结果影响很大,所以复杂神经网络的初始化也是很重要的环节,有一些方法(he/xavier)适用于不同的场景,总的来说不希望过大也不能过小,参数个数(层中神经元个数)应该和单个参数的大小成反比例(趋势,非数学公式)。
  2. 一般通过训练集和测试集的精度结果来分析需要从哪方面调优(bias/variance)。
  3. 应对过拟合:l2/dropout及实现。此外还有data augment(获取更多数据)、early stop等方法。early stop是一种简单粗暴的方法,但它不具备正交性(虽然看上去成本较低),可能会对后续的系统性分析和调参造成困难,不是特别推荐(可以尝试,用来对比)。
  4. 梯度检查的实现(保证反向传播的正确性,但不能和dropout一起工作)。
  5. 实践结果表明dropout的效果比较理想(实践中可以和l2一起工作)。
  6. 梯度爆炸和梯度消失的问题,可以通过好的初始化大大改善;local optima实际上在多维空间几乎不会遇到,但另外一个问题是鞍状点问题,下降非常的慢,这种情况下需要更好的方法。
  7. mini-batch是实践中常用的训练方法。momentum/rmsprops/adam是改进最优化性能的方法,目的就是为了加快训练速度,更好的收敛。其核心是引入了指数加权平均(之所以指数加权是因为实现上的资源消耗,性能很好,近似的效果也够用),momentum是合并了最近n次的向量,垂直方向的噪音被抵消剩下的就是冲量了(可能选择的参数是0.9)。rmsprops我个人的理解是对向量进行了收敛的处理(指数加权平均并且平方),使其更接近于45度(可能有偏差),所以这里的参数beta非常接近于1,可能是0.999。而adam结合了两者,取得了一个非常好的结果(虽然计算上麻烦了一些)。
  8. 可以引入一个超参数让学习速率缓慢降低。

关于超参数的调节方法:

  1. 随机比固定的选择更好!这样在单个维度上尝试的次数就会更多
  2. 有些参数的分布是要通过log来进行映射,而不是简单的区域里进行随机
  3. 资源有限时,采用panda法(手动调节,持续关注);资源比较充分时可以并行训练并比较,挑选出最好的,然后再进行尝试。

对z/a的正则化可以让其固定在一个均值/方差上,这样做的意义是下一层接收到的输入范围也会相对固定,从而可以获得一个比较稳定的结果(训练和最终的判别),还有一定的正则化效果(副作用)。需要注意正则化的实现,在训练阶段/测试阶段的差异。

softmax用于多结果的分类(相对于1 0 0 0的hardmax),有现成的函数供调用。

tensorflow框架介绍:简单理解,tensorflow的结构就像一个大的支持向量和矩阵的计算器,所有的操作和数据都被存储了。只有按下=(调用session.run)那一刻才开始真正的计算。数据/操作/session是它主要的概念。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值