| 是什么 | 解决了什么问题 | 主要设计理念 |
---|---|---|---|
CNN | CNN 是神经网络的一种,主要用于图像/视频分类或者自然语言处理。 它通过卷积操作来降低参数个数和计算成本,使得模型能够处理数据量很大的复杂问题(图像分类和文本识别)。
构建深度卷积的模式:
| CNN 主要用来解决数据量很大的图片问题。 传统的DNN, 随着输入数据的增大,要计算的参数也会同样增大,计算成本特别高。 而CNN的参数: 卷积层,取决于特征检测器filter的个数和大小。 全连接层,正常参数量 对于很大很大的图片,我们也可以用一定数量的filter来捕获足够的特征进行图片判断 |
参数是由卷积核的个数和大小决定。每个卷积核负责一部分的特征检测,都会遍历整张图,找到其中的重要特征。 比如下图的filter主要是用来寻找垂直边缘 经过这个filter后的图片,很明显可以将边缘和非边缘区分出来
多核卷积 单个卷积核应用于图片时,提取图片特定的特征,不同的卷积核提取不同的特征。如两个大小均为3 × 3 × 3 3\times3\times33×3×3 的卷积核分别提取图片的垂直边缘和水平边缘。
|
Padding | 在进行卷积运算前为图片加padding,用0值包围角落和边缘的像素,使得通过filter的卷积运算后,图片大小不变,也不会丢失角落和边沿的信息。
| 图片大小随着卷积变小 边缘信息容易丢失
图片卷积操作后大小会变小。 而且边缘和角落的像素和信息只参与一次卷积操作,可能会丢失有用的信息。(卷积过程中,当滑动的窗口落在图片外面时,就不再执行操作,丢弃边缘数值信息) | 用0值对多出来的边缘空格进行填充
|
Pooling 池化 | 对前一层得到的特征图进行池化减小 加快训练速度 让特征检测更加有鲁棒性 |
平均池化与最大池化唯一不同的是其选取的是小区域内的均值来代表该区域内的值。
| |
Resnet | 在传播过程中,增加第i层的激活值A到第i+2层的激活函数之前的链接。 所以
| 对于中间的激活函数来说,有助于能够达到更深的网络,解决梯度消失和爆炸的问题 梯度消失:越深的网络可以学到更复杂的特征,但是也有梯度消失的风险:网络很深的时候,反向传播的时候,从最后一层到前面一层,每次都需要乘以权重,因为层数非常深,会导致前几层的gradient(损失函数相对于W的导数)变得很小,样就会让梯度下降得非常慢
|
|
Transfer Learning | 站在巨人的肩膀上 在数据集很小的情况下,使用别人预训练好的模型和参数,只修改最后一层。来支持新的学习任务 |