候选区域(region proposal)
语义分割 (semantic segmentation)
目标定位(object localization)
目标分割(Object Segmentation)
实际情况(ground truth)
卷积层(Convolutional Layer)
空间维度(spatial dimensions)
感受野/接受域(Receptive Field)
步幅(stride)
填充(padding)
空洞空间卷积池化金字塔/多孔空间金字塔池化 ASPP(Atrous Spatial Pyramid Pooling)
空间卷积池化金字塔/空间金字塔池化 SPP (Spatial Pyramid Pooling)
零填充(zero padding)
若步幅为 1,则零填充设置为:
ZeroPadding=(K-1)/2
其中K为过滤器尺寸
以上操作以后,输入与输出内容就总能保持一致的空间维度
计算任意给定卷积层的输出的大小的公式是
O=(W-K+2P)/S+1
其中 O 是输出尺寸,W是输入尺寸,K 是过滤器尺寸,P 是填充,S 是步幅。
卷积神经网络 CNN(Convolutional Neural Networks)
更为详细的 CNN 工作概述指的是你挑一张图像,让它历经一系列卷积层、非线性层、池化(下采样(downsampling))层和完全连接层,最终得到输出。
一个典型的 CNN 结构看起来是这样的:
输入→卷积→ReLU→卷积→ReLU→池化→ReLU→卷积→ReLU→池化→全连接
ReLU(修正线性单元)层
在每个卷积层之后,通常会立即应用一个非线性层(或激活层)。其目的是给一个在卷积层中刚经过线性计算操作(只是数组元素依次(element wise)相乘与求和)的系统引入非线性特征。过去,人们用的是像双曲正切和 S 型函数这样的非线性方程,但研究者发现 ReLU 层效果好得多,因为神经网络能够在准确度不发生明显改变的情况下把训练速度提高很多(由于计算效率增加)。它同样能帮助减轻梯度消失的问题——由于梯度以指数方式在层中消失,导致网络较底层的训练速度非常慢。ReLU 层对输入内容的所有值都应用了函数 f(x) = max(0, x)。用基本术语来说,这一层把所有的负激活(negative activation)都变为零。这一层会增加模型乃至整个神经网络的非线性特征,而且不会影响卷积层的感受野。
池化层(pooling layer)/下采样(downsampling)层
在几个 ReLU 层之后,程序员也许会选择用一个池化层(pooling layer)/下采样(downsampling)层。在这个类别中,也有几种可供选择的层,最受欢迎的就是最大池化( max-pooling)。它基本上采用了一个过滤器(通常是 2x2 的)和一个同样长度的步幅。然后把它应用到输入内容上,输出过滤器卷积计算的每个子区域中的最大数字。
池化层还有其他选择,比如平均池化(average pooling)和L2-norm 池化 。这一层背后的直观推理是:一旦我们知道了原始输入(这里会有一个高激活值)中一个特定的特征,它与其它特征的相对位置就比它的绝对位置更重要。可想而知,这一层大幅减小了输入卷的空间维度(长度和宽度改变了,但深度没变)。这到达了两个主要目的。第一个是权重参数的数目减少到了75%,因此降低了计算成本。第二是它可以控制过拟合(overfitting)。这个术语是指一个模型与训练样本太过匹配了,以至于用于验证和检测组时无法产生出好的结果。出现过拟合的表现是一个模型在训练集能达到 100% 或 99% 的准确度,而在测试数据上却只有50%。
Dropout 层
Dropout 层如今,Dropout 层在神经网络有了非常明确的功能。上一节,我们讨论了经过训练后的过拟合问题:训练之后,神经网络的权重与训练样本太过匹配以至于在处理新样本的时候表现平平。Dropout 的概念在本质上非常简单。Dropout 层将「丢弃(drop out)」该层中一个随机的激活参数集,即在前向通过(forward pass)中将这些激活参数集设置为 0。简单如斯。既然如此,这些简单而且似乎不必要且有些反常的过程的好处是什么?在某种程度上,这种机制强制网络变得更加冗余。这里的意思是:该网络将能够为特定的样本提供合适的分类或输出,即使一些激活参数被丢弃。此机制将保证神经网络不会对训练样本「过于匹配」,这将帮助缓解过拟合问题。另外,Dropout 层只能在训练中使用,而不能用于测试过程,这是很重要的一点。
全卷积神经网络 FCN(Fully Convolutional Networks for Semantic Segmentation)主要使用的三种技术:
卷积化(Convolutional)
上采样(Upsample)
跳跃结构(Skip Layer)
关于目标检测算法
目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):
(1)two-stage方法,如R-CNN系算法
其主要思路是先通过启发式方法/选择性搜索(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度高;
(2)one-stage方法,如Yolo和SSD
其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归,整个过程只需要一步,所以其优势是速度快,但是均匀的密集采样的一个重要缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡(参见Focal Loss),导致模型准确度稍低。
作者:机器之心
链接:https://www.zhihu.com/question/52668301/answer/131573702
来源:知乎