深度学习思维导图

在线可以打开看,里面的链接都是我的笔记:ProcessOn版本

主要是深度学习的基本概念部分:
基本概念
模型
全连接层
反向传播
其他层的反向传播
POOL层的反向传播
BN层的反向传播
权重梯度
每一层的残差都由后一层的残差乘以两层之间的权重矩阵,再乘以当前层的激活函数的导数得到。
权重梯度由前面的激活值和后面的残差乘积得到的
梯度消失与梯度爆炸
神经网络vs递归神经网络vs玻尔兹曼机vs限制玻尔兹曼机
Restricted Boltzmann Machine
深度置信网络
卷积层
计算感受野
可视化卷积输出
画模型图
不同的卷积
正常卷积
1*1卷积
转置卷积
空洞卷积
分组卷积
深度可分卷积
激活函数
sigmoid
tanh
relu
Leaky ReLU
PReLU
为什么在饱和区就不更新了
输入数据方差很小集中在0附近会出现什么问题
池化层
maxpoll
average poll
全局平均池化
金字塔池化SPP
ROI POOl
ROI Align
归一化层
BN
目标函数
Loss
回归loss
平均绝对误差(MAE)
L1范数
均方误差(MSE)
L2 范数
smooth L1-loss
分类loss
softmax loss
L-softmax
A-softmax
二分类损失
为什么log和softmax函数合在一起
large margin softmax loss
center loss
Focal loss
KL散度
hinge_loss
正则化项
求解
最优化算法
SGD
在面对一个很长很窄的碗时会比较慢
SGD with momentum
Adam
其他的技巧
归一化
输入归一化
提高收敛速度
很窄的碗用SGD会很难搜索
层归一化
BN
多GPU的时候BN怎么用
参数怎么算 Channels * 2 (gamma + beta)
为什么用两个参数还原
测试的时候均值和方差怎么算
测试的时候gamma和beta怎么得到
BN和dropout能同时用吗
把Dropout放在所有BN层的后面就可以了
高斯Dropout Uout
GN
初始化
为什么不用0或者随机初始化?
Xavier初始化
是怎么保证输入输出方差一致的
用pretrain
用BN
正则化
输入上
加噪声-降噪编码器
数据增扩
mixup
模型上
dropout
BN
Batch Normalization 与Dropout 的冲突
L1/L2正则化
为什么L1会使权重稀疏
子主题
输出上
标签上
soft target软标签
label smooth
Penalizing low entropy基本上要求输出Logits不要像One Hot,而是尽量的均匀分布,这样可以防止网络过于自信。
训练上
早停
样本不平衡
数据重采样
适合大数据分布不均衡
OHEM/focal loss
调整不同loss的权重
热图的作用Class Activation Map
可视化
关注区域
训练技巧
warm up
控制学习率
cosine
观察loss和准确率的变化
sgd收敛速度会慢一些,但是最终收敛后的结果,一般都比较好。
预训练模型
args.weight_decay
评价指标
分类问题
混淆矩阵
TP/FP/TN/FN
Accuracy
(TP + TN) / Total
PR曲线
用的指标
precision
TP / (TP + FP) 预测的positive
recall
TP / (TP + FN) 真正的positive
作用
选取合适的置信度阈值
可以用F1-score
选取合适的模型
用PR曲线下面的面积
用于正负样本不均衡的情况
不用FN
ROC曲线
用的指标
True Positive Rate
False Positive Rate
作用
选取合适的置信度阈值
越左上角越好
选取合适的模型
用ROC曲线下面的面积AUC
目标检测
IOU
GIou
单个类别用AP
mAP
设定Iou就是分类问题了

你可能感兴趣的:(深度学习)