基本卷积神经网络
AlexNet
AlexNet网络结构相对简单,使用了8层卷积卷积神经网络,前5层是卷积层,剩下的3层是全连接层,具体如下所示
但局限性限制了其训练速度,需要进行一定程度的改进。采用修正线性单元(ReLU)的深度卷积神经网络训练时间比等价的tanh单元要快几倍。而时间开销是进行模型训练过程中很重要的考量因素之一。同时,ReLU有效防止了过拟合现象的出现。由于ReLU激活函数的高效性与实用性,使得它在深度学习框架中占有重要地位。
Dropout操作会将概率小于0.5的每个隐层神经元的输出设为0,即去掉了一些神经节点,达到防止过拟合。那些“失活的”神经元不再进行前向传播并且不参与反向传播。这个技术减少了复杂的神经元之间的相互影响。相关情况如下所示。
VGG-16
vgg16总共有16层,13个卷积层和3个全连接层,第一次经过64个卷积核的两次卷积后,采用一次pooling,第二次经过两次128个卷积核卷积后,再采用pooling,再重复两次三个512个卷积核卷积后,再pooling,最后经过三次全连接。
VGG16网络
224x224x3的彩色图表示3通道的长和宽都为224的图像数据,也是网络的输入层白色部分为卷积层,红色部分为池化层(使用最大池化),蓝色部分为全连接层,其中卷积层和全连接层的激活函数都使用relu
YOLO的网络结构
其网络结构能分为三部分。
第一部分:图片的输入
第二部分:基础网络。使用的是 Darkjnet-53 without FC layer。
第三部分:yolo v3的三个分支。y1(13x13x255),y2(26x26x255),y3(52x52x255)。
Y1从上面结点获取。是最高层的,最抽象的特征。适合比较大的目标检测;
Y2是在Y1的基础上做一个上采样+一个低层的一个特征进行连接(concat)。
适合中等的目标检测;
Y3是在Y2的基础上做一个上采样+一个更低层的一个特征进行连接(concat)。适合小 目标的检测。
三个尺度的输出皆是奇数,使得网格会有个中心位置。
通道数255:{[80(coco数据集共有80类)+[X+Y+W+H+Confiderce]}×3(anchor) = 255
滑动窗口法
滑动窗口算法是在给定特定窗口大小的数组或字符串上执行要求的操作。
该技术可以将一部分问题中的嵌套循环转变为一个单循环,因此它可以减少时间复杂度。
简而言之,滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。其实这里就可以看出来滑动窗口主要应用在数组和字符串上。
如下图所示,设定滑动窗口(window)大小为 3,当滑动窗口每次划过数组时,计算当前滑动窗口中元素的和,得到结果 res。
可以用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,可以通过旧有的计算结果对搜索空间进行剪枝,这样便减少了重复计算,降低了时间复杂度。往往类似于“ 请找到满足 xx 的最 x 的区间(子串、子数组)的 xx ”这类问题都可以使用该方法进行解决。
需要注意的是,滑动窗口算法更多的是一种思想,而非某种数据结构的使用。