所有内容

slides地址

链接: https://pan.baidu.com/s/12zGt_kYd5Jj8jq5EygS35A 密码: hd57

batchnorm及其演变

1.普通batchnorm公式,请注意维度,后面会用到

2.test时batchnorm公式

均值和方差用train时候的不需要训练,其他不变

3.全连接层和卷积层的batchnorm

除了第二维其他都为1

4.layer normalization(arxiv, 2016)

左边的是batchnorm,两者对比发现μ和sigmoid维度改了,变成了对每个批次求均值

5.instance normalization(cvpr 2017)

是对卷积操作,不过更操作更细致

6 .group normlization(arxiv 2018)及可视化对比图

可以看到group是对layer norm 与 instance norm的折衷

7.Decorrelated Batch Normalization(arXiv 2018,业界良心4月份的论文都上了)

相比batchnorm能够让处理后的数据体现更好的相关联性

代码实现(占坑,只写一下前向传播)

Optimization

SGD:下降较慢,可能遇到鞍点,梯度接近0的时候几乎停滞,并且14年的论文提出高维的时候会有更多的鞍点。由于梯度也是小批量取样,所以梯度会引入噪声。

不是很理解为什么梯度取minibatches会有噪声

SGD改进型:SGD+Momentum(ICML 2013)

SGD方法的一个缺点是,其更新方向完全依赖于当前的batch,因而其更新十分不稳定。解决这一问题的一个简单的做法便是引入momentum。
momentum即动量,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,能够很好的解决鞍点和局部最小值的问题

杜客:CS231n课程笔记翻译:神经网络笔记3(下)​zhuanlan.zhihu.com

关于写法问题,吴恩达的写法推荐是

更易理解,通常的做法是拿掉(1-beta),但是之前的beta=beta/(1-beta),α也要随之改变

另外两种ppt里面的写法是等价的,区别在于第一种ρ为负,并且减少了一次乘法运算,速度几乎没有区别,第二种ρ为正

Nesterov+Momentum 的区别在于比 SGD+momentum 多减去了α*grad(ρ*vt)

帐号登录​blog.csdn.net

以上的都是人工设置学习率,总还是有些生硬,接下来介绍几种自适应学习率的方法。

ycszen:深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)​zhuanlan.zhihu.com

Adam是之前的结合

优化方法

神经网络的训练可以采用二阶优化方法吗(如Newton, Quasi Newton)?​www.zhihu.com

由于二阶优化计算量过大,deeplearning一般采用一阶优化,但对于浅层模型效果和精度都不错,一阶是梯度下降,二阶线性拟合和梯度都有

建议:
默认使用Adam, SGD+Momentum调节好学习率之后通常比Adam效果好一点。深度学习不建议二阶优化算法。

model ensembles(模型融合)

SGDR - 搜索结果 - 知乎​www.zhihu.com

Loshchilov and Hutter, “SGDR: Stochastic gradient descent with restarts”, arXiv 2016

提高单个模型的表现可以引入
1.正则化

2.dropout

3.数据加入噪声
4.数据增强,图片加上transform之类的操作

一个比较好的处理应该如下,训练加噪,测试去噪,中间加入examples的操作

最下面的Stochastic Depth Pytorch代码实现

吴明昊:Deep Networks with Stochastic Depth​zhuanlan.zhihu.com

Transfer Learning

从上往下,如果是小数据集,只改最顶端的Fc-1000,如果是大数据集,需要改动更多层,才能更具通用性。(一般weight都是来自imagenet),下图是对比。

cs231n 2018系列笔记(lecture7)相关推荐

  1. 系列笔记 | 深度学习连载(6):卷积神经网络基础

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 卷积神经网络其实早在80年代,就被神经网络泰斗Lecun 提出[LeNet-5, LeCun ...

  2. 系列笔记 | 深度学习连载(5):优化技巧(下)

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 深度学习中我们总结出 5 大技巧: 本节继续从第三个开始讲起. 3. Early stoppi ...

  3. 系列笔记 | 深度学习连载(4):优化技巧(上)

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 深度学习中我们总结出 5 大技巧: 1. Adaptive Learning Rate 我们先 ...

  4. 系列笔记 | 深度学习连载(2):梯度下降

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 我们回忆深度学习"三板斧": 1. 选择神经网络 2. 定义神经网络的好坏 ...

  5. 目标检测(降低误检测率及小目标检测系列笔记)

    深度学习中,为了提高模型的精度和泛化能力,往往着眼于两个方面:(1)使用更多的数据(2)使用更深更复杂的网络. ** 一.什么是负样本 ** 负样本是指不包含任务所要识别的目标的图像,也叫负图像(Ne ...

  6. Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

    2019独角兽企业重金招聘Python工程师标准>>> 感谢听D同学赞助的Demo. 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2\tools\project-cr ...

  7. Java系列笔记(1) - Java 类加载与初始化

    2019独角兽企业重金招聘Python工程师标准>>> 目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如 ...

  8. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  9. Java系列笔记(4) - JVM监控与调优【转】

    Java系列笔记(4) - JVM监控与调优[转] 目录 参数设置 收集器搭配 启动内存分配 监控工具和方法 调优方法 调优实例       光说不练假把式,学习Java GC机制的目的是为了实用,也 ...

最新文章

  1. 2021年大数据常用语言Scala(五):基础语法学习 字符串
  2. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)...
  3. LeetCode Algorithm 7. 整数反转
  4. leetcode 85. Maximal Rectangle | 85. 最大矩形(单调栈)
  5. 计算机应用管理试题,学习管理系统中计算机应用试卷试题及答案.docx
  6. C++11 std::shared_ptr的std::move()移动语义底层分析
  7. 链表的头结点和尾节点的用处
  8. 基于PaddleRec的用户点击率预测
  9. layui生产管理系统_ssm开发生产制造业MES系统源码
  10. 企业开发基础设施--序
  11. Linux高级命令及mysql数据安装
  12. 哀悼日很多网站都变成了灰色,这是怎么做到的?
  13. 详谈外部H5页面跳转微信一键关注微信公众号的方案
  14. 前端速成:双月Java之旅(week5)_day1
  15. Master HA彻底解密
  16. Java学习第一周(2.20~2.24)
  17. 弹性文件服务(Scalable File Service,SFS)
  18. 输油管道问题(分治法)
  19. `算法竞赛题解` LeetCode.6115 统计理想数组的数目
  20. golang bolt库操作手册

热门文章

  1. HP 孙振耀 九大感言(转)
  2. 计算机中丟失Slc.dll,调试符号不会加载slc.dll和sppc.dll
  3. python爬虫入门案例day10:珠宝图片
  4. 静态方法static,静态代码块
  5. 【C语言/C++学习】初识C语言(三)
  6. 微信公众号开发教程(一)
  7. MacBook苹果电脑在充电中无法指纹解锁解决办法
  8. 用python实现简版区块链-地址
  9. 告别电子小白,8个优选DS1302数字时钟方案大合辑
  10. 西方国家的饮食讲究简单、清淡、新鲜