各个激活函数的优缺点算法
Sigmod编程
优势微信
缺点网络
Tanhapp
优势ide
缺点函数
Relu性能
优势学习
缺点优化
Leakly ReLu
优势
缺点
ELU
优势
缺点
如何选择激活函数?
Relu-当心设置learning
rate(由于x>0的状况下,导数均为1),最好是设置一个比较小的值。
如何初始化CNN?(理论)
不要所有把超参数设置为0(单层网络能够)
如何初始化CNN?(实践)
Xavier-tanh(不太适合relu)
Fan_out输出通道数
如何分析初始化参数结果好坏?
查看初始化后各层的激活值分布
比较好的初始化结果
均值为0,方差为0.02
什么叫梯度消失,梯度爆炸
当网络层数过多时,前面层因为求导过程乘积运算,出现weight与bias变得异常大与异常小的状况
左下角的内容清楚的说明了梯度爆炸和梯度消失的场景
BN是什么,为何能提升收敛速度
批归一化是什么?
如上图所示,BN步骤主要分为4步:
为何能提升收敛速度?
Tips
BN(实践)
各个优化器的优缺点
优化器分两种
固定学习率的优化算法
SGD随机梯度降低
优势
缺点
Momentum动量
优势
缺点
自适应学习率的优化算法
Adagrad
优势
缺点
RMSProp
优势
缺点
Adam(结合了动量和RMSProp,通用方案)
梯度裁剪
介绍一下残差网络
为何残差网络会有效果?
□ 先验证实《深层网络效果会比浅层网络好》
效率不影响,层数增长,能够低成本高效率的学到更多非线性的特征。
解决梯度弥漫问题
解决模型退化问题
Q:既然说中间层是没必要要的,那么为何不直接把这些层去掉呢?可事实上,ResNet的结果比浅层网络的结果好的多,这应该怎么解释呢?
加入中间层主要是为了说明会产生退化的效果。 ResNet效果好是由于解决了退化问题,,梯度爆炸/梯度弥散,调节了网络结构,简化了反向传播求导运算的流程。这和砍掉深一点的层是不同的思想
风格转换的原理
风格特征
内容特征
- 简化模型
- 正则化(包含dropout)
- 数据加强
- 集成学习
- 早停
- 减小特征数或使用较少的特征组合
- 增长特征数或者使用较多的特征组合
- 减少正则权重
- 增长模型复杂度
- 使用boosting集成学习
如何提升学习算法性能的指导方针
->低可拟合误差
->低方差
->清晰的正交化方案
数据预处理通常步骤有哪些?
如何用指标和方案去评判一个优秀的模型?
1. 合理设计模型2. 权值剪枝(编程稀疏矩阵)
3. 权值量化(聚类)
4. 二值化(BWN,XNorNet)
5. 霍夫曼编码
6. 奇异值分解(projection层)
7. 1x1卷积的恰当使用减小通道量
8. 卷积分解为deepwise Conv和pointwise
Conv可大幅度减少计算量和参数量1/(Dk^2)9. Group Conv(可节省1/g计算量)
10. Channel Shuffle
11. 蒸馏法
12. 低秩分解
13. 模型裁剪
神经网路中的超参数主要包括1. 学习率 η,
2. 正则化参数 λ,
3. 神经网络的层数 L
4. 每个隐层中神经元的个数 j
5. 学习的回合数Epoch
6. 小批量数据 minibatch 的大小
由神经网络的机理进行选择
7. 输出神经元的编码方式
8. 代价函数的选择
9. 权重初始化的方法
10. 神经元激活函数的种类
11 . 宽泛策略的核心在于简化和监控
12. 参加训练模型数据的规模
如文章你已看懂,点个「喜欢」便可。如若错误以及不清晰的地方,随时提出。欢迎扫一扫上面二维码加入个人我的微信号进行技术交流。