cs231n 2018系列笔记(lecture6)

所有内容

文章材料地址链接: https://pan.baidu.com/s/1LES35hg8aUQv-E1CoLNX7A

密码: x5v3

参考https://zhuanlan.zhihu.com/p/34346816

slides

激活函数篇:

sigmoid
优点: 范围在【0,1】;和神经的激活方式很相似
缺点: x过大时梯度为0;
经sigmoid激活后不是以0为中心的,总是正数;
exp()函数需要很多的计算资源

 

tanh 
优点:范围在【0,1】;
以0为中心;
缺点:同上,x过大时扼杀梯度

 

relu 
优点:不存在梯度趋于0的饱和区域;
计算效率高;
实际应用中converge(融合)远比sigmoid/tanh快
比sigmoid更具有生物层面的合理性
缺点 不是以0为中心
x<0时没有梯度,反向传播不会更新,会dead

 

Leaky Relu f(x) = max(0.01x,x) 
优点:relu的所有优点 + x<0时也有梯度,will not “die”.

 

ELU 优点:
relu的所有优点
激活函数接近以0为均值
x<0的负饱和(梯度趋于0)状态与Leaky ReLU相比增加了一些对噪声的鲁棒性
缺点:
exp()计算消耗计算资源大

 

Maxout 
优点:非线性
Generalizes(推广) ReLU and Leaky ReLU 
Linear Regime! Does not saturate! Does not die!
缺点:
参数多

 

综上,给出实际应用中的建议:
使用relu,注意学习率;
Try out Leaky ReLU / Maxout / ELU;
Try out tanh but don’t expect much;
Don’t use sigmoid;

数据处理篇

看到了

@龚焱

 的回答,豁然开朗.

数据处理的效果如下

初始化-0中心化-标准化

初始化-pca去相关性-白化

最后一个写错了,应该是*np.sqrt(2/fan_in)

Batch Normalization

思想是为每个维度独立计算均值和方差。
实际使用通常放在全连接层和卷积层后面, 非线性激活层之前


优点

改善通过网络的梯度流动。
允许更高的学习率
减少对初始化的强烈依赖
以一种有趣的方式表现出正则化的形式,并略微表现出来
可能会减少对dropout的需求

 

需要注意的是,测试的时候使用的是train集的 mean/std

公式

反向传播我之前的推导

王小花:batchnorm反向传播的推导​zhuanlan.zhihu.com图标

训练过程的总体步骤

1.处理数据
2. 选择网络结构
3.训练,检查损失值是否合理,是否过拟合
4.调整学习率让loss下降,如果出现loss出现nan意味着学习率过高
5.交叉验证

超参数优化

需要优化的参数

网络结构
学习率, decay schedule(个人理解是随着时间学习率衰减的因子)
L2/dropout强度

下图是如何根据曲线调节学习率

 

下图是判断过拟合还是欠拟合

cross_validation策略

1.先随机选参数进行运行
2.多次运行,如果cost>3次都大于初始值,立即break,early_stopping思想

NN Debugings

1 增加数据量
2 给网络加更多的层
3 尝试NN的新方法
4 训练更久
5 改batchsize
6 尝试正则化
7 看是否过拟合或欠拟合
8 增加GPU加速运算

 

输入
1 网络结构(layers kernels stride kernel_size)
2 学习率,optimizer(momentum)
3 正则化系数(weight decay rate, dropout )
4 有无batchnorm
输出
1 损失曲线
2 梯度norms
3 acc/可视化输出(生成模型方面)
4 训练集 测试集对比

常用网络架构分类

最大的不同是对最后一部分的处理

如何通过loss曲线判断问题

一共有下面6种情况

下面几种曲线是需要单独拎出来看的

数据的shuffle与否, 训练集验证集的比例也很重要,训练的数值大小也有影响 在softmax之前用了非线性激活函数也有问题

dropout 可以减少过拟合
normalization可以
●訓練速度更快
●強大的初始化
** 注意修改是训练模式还是测试模式**

gp比bp的效果更快 更平滑

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值