一、传统机器学习

1.回归问题主要是 逻辑回归:LOSS函数(如最大似然函数)+梯度下降/牛顿法

2.分类问题主要是 核函数+SVM:利用核函数,实现解决二分类问题。核函数的选择上:“高维用线性,不行换特征;低维试线性,不行换高斯”

3.聚类问题:划分法K-Means,基于密度Meanshift、DBSCAN

4.还有一些图形处理的基本 trick和人工特征工程:HOG、边缘检测(Sobel、拉普拉斯)

二、深度学习框架—MLP

../_images/mlp.svg

输入x1—-f激活函数(wx+b)—–隐藏h1——-输出o1 wh+b【最后一次可能不加激活函数】

1.softmax

原理:交叉熵、最大似然估计

实现:获取一个向量并将其映射为概率
2.Trick-权重衰减、正则化(解决过拟合)
希望找到一个简单的函数(与函数fx=0越接近越好),所以加入惩罚函数(一般为L2正则)
 

3.Trick-Dropout(解决过拟合)

 ../_images/dropout2.svg

将某些节点值置0

4.各类优化器

1.随机梯度下降、小批量随机梯度下降

2.动量法:不仅考虑当前点梯度,也考虑之前的所有梯度。Nesterov:先按之前梯度走一步

3.Adagrad【适合稀疏特征、样本特征有无区别明显】:一个参数的累积梯度r越大,学习率就越小,自适应学习率。RMSprop:指数加权移动平均的Adagrad 

4.Adam:RMSprop+动量法

../_images/mlp.svg

输入x1—-f激活函数(wx+b)—–隐藏h1——-输出o1 wh+b【最后一次可能不加激活函数】

1.softmax

原理:交叉熵、最大似然估计

实现:获取一个向量并将其映射为概率
2.Trick-权重衰减、正则化(解决过拟合)
希望找到一个简单的函数(与函数fx=0越接近越好),所以加入惩罚函数(一般为L2正则)
 

3.Trick-Dropout(解决过拟合)

 ../_images/dropout2.svg

将某些节点值置0

4.各类优化器

1.随机梯度下降、小批量随机梯度下降

2.动量法:不仅考虑当前点梯度,也考虑之前的所有梯度。Nesterov:先按之前梯度走一步

3.Adagrad【适合稀疏特征、样本特征有无区别明显】:一个参数的累积梯度r越大,学习率就越小,自适应学习率。RMSprop:指数加权移动平均的Adagrad 

4.Adam:RMSprop+动量法

../_images/mlp.svg

输入x1—-f激活函数(wx+b)—–隐藏h1——-输出o1 wh+b【最后一次可能不加激活函数】

1.softmax

原理:交叉熵、最大似然估计

实现:获取一个向量并将其映射为概率
2.Trick-权重衰减、正则化(解决过拟合)
希望找到一个简单的函数(与函数fx=0越接近越好),所以加入惩罚函数(一般为L2正则)
 

3.Trick-Dropout(解决过拟合)

 ../_images/dropout2.svg

将某些节点值置0

4.各类优化器

1.随机梯度下降、小批量随机梯度下降

2.动量法:不仅考虑当前点梯度,也考虑之前的所有梯度。Nesterov:先按之前梯度走一步

3.Adagrad【适合稀疏特征、样本特征有无区别明显】:一个参数的累积梯度r越大,学习率就越小,自适应学习率。RMSprop:指数加权移动平均的Adagrad 

4.Adam:RMSprop+动量法

三、深度学习框架—CNN

1.卷积层(Conv2d)

(batch*)N层的n*n的图像   *    M个padding为p、stride为s的(N层)f*f卷积核   ==M{(n+2p-f)/s+1}*{(n+2p-f)/s+1}的图像
【n*n*N】*【f*f*M】(p.s)==[o*o*M](o=(n+2p-f)/s+1)

2.池化层(MaxPool2d)

不改变层数

3.现代常见CNN模型

1.LeNet(LeNet-5)

卷积编码器:由两个卷积层组成;全连接层密集块:由三个全连接层组成。

../_images/lenet.svg

2.AlexNet

改进:

①比LeNet5要深得多, AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。

② 其次,AlexNet使用ReLU而不是sigmoid作为其激活函数。【函数简单、计算快;对初始值要求低】../_images/alexnet.svg

3.VGG

改进:VGG-11使用可复用的卷积块构造网络。不同的VGG模型可通过每个块中卷积层数量和输出通道数量的差异来定义。

../_images/vgg.svg

4.NiN

改进:使用1×1卷积层来替代全连接层、完全取消了全连接层;最后放一个全局平均汇聚层。../_images/nin.svg

5.GoogLeNet

改进:使用了四条并行路径的Inception块../_images/inception.svg../_images/inception-full.svg

6.ResNet和DenseNet【数值相加改增加层数的直接连接】

改进:①加入残差块,可以训练的更深②加入使用BatchNormalization层

../_images/resnet18.svg在这里插入图片描述

3.现代常见CNN模型

1.LeNet(LeNet-5)

卷积编码器:由两个卷积层组成;全连接层密集块:由三个全连接层组成。

../_images/lenet.svg

2.AlexNet

改进:

①比LeNet5要深得多, AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。

② 其次,AlexNet使用ReLU而不是sigmoid作为其激活函数。【函数简单、计算快;对初始值要求低】../_images/alexnet.svg

3.VGG

改进:VGG-11使用可复用的卷积块构造网络。不同的VGG模型可通过每个块中卷积层数量和输出通道数量的差异来定义。

../_images/vgg.svg

4.NiN

改进:使用1×1卷积层来替代全连接层、完全取消了全连接层;最后放一个全局平均汇聚层。../_images/nin.svg

5.GoogLeNet

改进:使用了四条并行路径的Inception块../_images/inception.svg../_images/inception-full.svg

6.ResNet和DenseNet【数值相加改增加层数的直接连接】

改进:①加入残差块,可以训练的更深②加入使用BatchNormalization层

../_images/resnet18.svg在这里插入图片描述

四、深度学习框架—RNN

五、深度学习框架—Transformer

六、深度学习的Trick

1.Normalization

1.局部响应归一化(Local Response Normalization)

原理:通道上同一像素点的Normalization(后被证明作用不大)

2.Batch Norm
作用在卷积层【通道维】、全连接层输出上【特征维】,激活函数之前
卷积层、全连接层的输入上
深度学习中的BN,LN,IN,GN总结
分类: 未分类

0 条评论

发表评论

邮箱地址不会被公开。