机器学习第六堂课20210408

卷积神经网络

传统监督学习过程:y = h(x)

图像作为输入的神经网络:

减少参数量:1神经元局部的连接,关注图像局部特征2空间上参数共享,保持图形特征的空间信息;

相关运算:

2维相关运算:h = filter2(f,I)

h(x,y) = F& I(x,y)

卷积运算:同一个神经元作用于图像所有的局部区域。

以滑动窗口的方式对图像区域和卷积核进行 元素级相乘并相加。

图像区域(已知)* 卷积核(未知) = 特征图

卷积核和特征提取:基于卷积核提取的特征鲁棒性更好。

 卷积神经网络的组成:输入层、卷积层(由卷积核和卷积运算组成)、非线性激活函数、池化层Poolinng和全连接层。

每个神经元是一个卷积核,输出一个2维响应图。

神经网络的结构是:

      输入层 + 隐藏层 + 激活函数 + 输出层

   卷积神经网络的组成:

      输入层 + 卷积层 + 激活函数 + 池化层 + 全连接层

      INPUT + CONV + RELU + POOL + FC

卷积层主要参数:

1、Height/Weight:卷积核的空间维度;

2、Depth:通道数;

3、上一层的数量。

4、Stride滑动窗口每次滑动的步幅。例如:Stride = 2 。

5、Padding填充的数值,一般Padding = 0 。

输出的空间维度是多大的?

池化层:作用是缩小输出图像的大小。

最大池化(Max Pooling)

多个卷积层的叠加。

不同的卷积层可以学到不同程度的特征。

分类任务中的卷积神经网络:特征提取部分(通用于多种任务) + 分类

卷积神经网络的复兴:

1、1989年LeCun提出了现代CNN的雏形LeNet

2、2012年Hinton

CNN的发展史LeNet、Alexnet 、VGG、GoogleNet、ResNet(残差网络)。

残差网络之前,卷积层的层数不超过20层。

残差网络使得深层卷积网络成为可能。

深度学习框架:

pytorch:由facebook提出,在计算机视觉的顶会上面应用很多。

tensorflow:Google提出。

(0)数据划分:Train + Validation + Test

(1)数据预处理-数据归一化

(2)参数初始化:初始为f服从(0,1)的高斯分布,加载预训练模型。100万的数据集训练出来的效果很好,但是自己收集到1000-2000个数据集,这时,可以把100万里面的数据拿到自己的数据集里面来。

迁移学习:关于参数的初始化,可以用一个大的模型进行自己模型的初始化。

(3)学习率,是一个超参数。

梯度下降法

学习率需要人为设定,因为是一个超参,设定方式:

1、前期观察损失函数变化趋势选择大致合适的学习率;

2、对比不同学习率得到的损失函数收敛值

固定学习率的问题:考虑二元函数,无论选择多大的学习率,手链都很慢!

自适应优化器(参数更新):现在深度学习框架里面有提供。

1、Momentum:避免梯度急剧下降。

2、RMSprop

3、Adam

Mini-Batch梯度下降法

 (4)模型正则化策略-Dropout

训练过程中随机将某些神经元设置为0,避免过拟合。

 防止过拟合的其他策略:训练提前终止。

参考链接:https://zhuanlan.zhihu.com/p/161738585

 https://www.pianshen.com/article/39961694615/

https://blog.csdn.net/u012328159/article/details/80311892

雪儿言
原文地址:https://www.cnblogs.com/weixq351/p/14631066.html