深度学习笔记复习整理md版(更新中)
之前学习吴恩达深度学习视频的时候,笔记都做于笔记本上。借此秋招复习之际,将之更于博客中,并附加一些之后所学的知识。
一、归一化输入与BatchNormalization
1、归一化输入
加速网络学习收敛、往往是输入层。
- Z-Score(0均值、1方差)归一化步骤:
①、零均值化:
②、归一化方差:
线性(最大最小)归一化公式:
这种归一化方法比较适用在数值比较集中的情况。
这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。
实际使用中可以用经验常量值来替代max和min。
非线性归一化:
经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。
该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线,比如log(V, 2)还是log(V, 10)等。
补:
概率模型(决策树)不需要归一化,因为他们不关心变量的值,而是关心变量的分布和变量之间的条件概率。
像SVM、线性回归之类的最优化问题需要归一化。归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。
2、batchnorm:
作用于传统神经网络:是对
作用与卷积神经网络: 是同一batch里所有图片的,由不同filter产生的特征,进行归一化。
二、链式求导法则
三、激活函数整理
sigmoid:
公式:
导数:
(z等于0时,等于1/4)
用途:常用于二分类
缺点: sigmoid激活函数的缺点,是当z值较大或较小时,导数的梯度值会很小,减缓学习,甚至出现梯度消失。
tanh:
公式:
导数:
(z等于0时,等于1)
用途: tanh几乎在所有场合,相对sigmoid更为优越。一个例外是输出层,由于值域的问题,希望输出介于0到1之间,则只能使用sigmoid激活函数。
缺点:同sigmoid激活函数,当z值较大或较小时,导数的梯度值会很小,减缓学习,甚至梯度消失。
ReLU:
AlexNet
公式:
导数:
z为负时,导数为0;z为正时,导数为1。
(z等于0时,可设为0或1)
用途:隐层的激活函数不知道用什么时,一般用ReLu,退而求其次再用tanh。
缺点:ReLU的缺点是,当z小于等于0时,导数为0,梯度消失。
Leaky ReLU:
公式:
其中,0.01是可调的参数。
导数:
z为负时,导数为0.01(可调);z为正时,导数为1。
用途:解决了ReLU函数在输入为负的情况下产生的梯度消失问题。
Softmax:
用于多分类情况,是Logistic回归的一般形式。
给出属于各类的概率。
与其他激活函数不同的是,此处需要接收向量。
三、梯度消失与梯度爆炸
三、损失函数整理
1、分类损失
个人理解:分类问题本质也是回归,回归出属于各类的概率,只不过值域固定在0到1之间。
0-1损失函数:
公式:
对数损失函数:交叉熵:
focal loss:
合页损失函数:
图中有0-1损失、感知机损失(虚线)、合页损失三种。
1)0-1损失
当样本被正确分类时,损失为0;当样本被错误分类时,损失为1。
2)感知机损失函数
当样本被正确分类时,损失为0;当样本被错误分类时,损失为-y(wx+b)。
3)合页损失函数
当样本被正确分类且函数间隔大于1时,合页损失才是0,否则损失是1-y(wx+b)。
相比之下,合页损失函数不仅要正确分类,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。
2、回归损失
绝对损失函数->L1范数损失函数(LAE)->平均绝对误差(MAE):
个人理解:
绝对损失函数是指单个样本的预测错误程度,用绝对值来衡量。
L1范数损失函数,也称最小绝对值误差/偏差,则是将所有样本的损失累加。
公式:
平均绝对误差,则是对所有样本的损失求平均值。在上式上乘上1/n。
平方损失函数->L2范数损失函数(LSE)->均方误差(MSE):
个人理解:
平方损失函数是指单个样本的预测错误程度,用平方来衡量。
L2范数损失函数,也称最小平方误差,则是将所有样本的损失累加。
公式:
此处与L2范数并不完全相同,L2范数在相加后还需要开根号。
均方误差,则是对所有样本的损失求和后,再求平均值。在上式上乘上1/n。
Huber loss:
在个人的倒立摆项目中有使用过。会引入超参数δ(delta)。
公式如下:
Huber loss结合了MAE和MSE的优点,
Smooth L1:
用于Faster-RCNN。
公式如下:
SmoothL1 loss其实可以看做Huber loss的特殊情况,δ(delta)取1时。
三、梯度消失与梯度爆炸
四、卷积类型(包括池化)
1、一维卷积
实习期间,在复现FaF论文过程中有使用到。
2、二维卷积
实际上,深度学习中的卷积更应该称为互相关(cross-correlation)操作。
真正意义上的卷积,还需要对卷积核做一步顺时间的旋转操作。
卷积公式:
f,即卷积核大小,一般为奇数,卷积核才会有中点。
p,即padding
主要目的:
3、三维卷积
实现期间,在复现FaF论文过程中有使用到。
4、1x1卷积
5、Depthwise卷积、PointWise卷积
出现在论文MobileNet当中。
3、空洞卷积及感受野问题
Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes。从字面上就很好理解,是在标准的 convolution map 里注入空洞,以此来增加 reception field。
相比原来的正常convolution,dilated convolution 多了一个超参数,称之为 dilation rate,指的是kernel的间隔数量(e.g. 正常的 convolution 是 dilatation rate 1)。
4、上采样
分为三种:双线性插值、转置卷积、反池化
在神经网络中,扩大特征图的方法,即upsample/上采样的方法
1)unpooling:恢复max的位置,其余部分补零
2)deconvolution(反卷积):先对input补零,再conv。只有该方法需要学习。
3)插值方法,双线性插值等;
5、下采样(主要为池化)
pooling没有激活函数