0%

我们可以采用目标分类加定位的方法来检测图像中的单一目标,而当图像中含有多个目标时,我们就需要构建一个目标检测算法,使得图像中的所有目标同时被圈出来

滑动窗口(sliding window)是目标检测使用的常用思想

阅读全文 »

过滤器的大小除了常见的$3*3,5*5$等之外,在实际应用中我们也会见到$1*1$的过滤器。对于单通道的图像来说,$1*1$的过滤器没有意义,因为卷积计算后只是单纯的将图像中的信息成倍的放大或缩小而已,但对于多通道的图像,$1*1$卷积就有了独特的意义

对于一个$6*6*32$的输入,当我们用$1*1*32$的过滤器去卷积,就可以把卷积过程看作是同一位置上的$32$个数字作为同一神经元的输入,乘上$32$个权重后再应用非线性函数ReLU进行激活处理得到结果。我们通过把输入矩阵分割成不同神经单元的输入向量的方式,为神经网络添加了非线性函数,所以$1*1$卷积也被称作Network in Network

阅读全文 »

因为梯度消失和梯度爆炸问题的存在,非常深的神经网络是很难以训练的,但残差网络(ResNets)的出现打破了这一困境。实验表明,残差网络甚至可以构建到1000层以上
残差网络的组成基础是跳远连接(skip connection)构成的残差块(residual block)

这是一个两层的神经网络,$l$层经过两层激活后得到$l+2$层

阅读全文 »

LeNet-5

LeNet-5可以识别手写体数字,针对灰度图像训练,所以$n_c^{[0]}=1$

该模型成文于1998年,所以池化层采用了当时常用的平均池化,同时采用的非线性函数也非如今常用的ReLU($f(x)=max(0,x)$),而是Sigmoid和Tanh函数

阅读全文 »

CNN的基础为卷积层,但为了提升网络的效率和准确度,CNN中也经常包含池化层(Pooling Layer)和全连接层(Fully Connected Layer)

常见的池化层有两种:最大池化(Max Pooling)和平均池化(Average Pooling)

阅读全文 »

在卷积神经网络(Convolution Neural Network)中,有多种参数表示法,在这里介绍常用的一种

当$l$代表CNN的其中一层,$f^{[l]},p^{[l]},s^{[l]}$分别表示$l$层中过滤器的大小,padding参数及步幅

对于$l$层,它的输入维度应为:

其中$[l-1]$表示$l$层的输入应为$l-1$层的输出,$n_h,n_w,n_c$分别代表输入的长,宽和通道数

阅读全文 »

在了解了卷积计算的原理后,我们很自然的就会面对一个问题:源图像经过卷积操作后得到的输出图像通常变小了
我们设输入图像的大小为$n*n$​,过滤器的大小为$f*f$,那我们得到的输出矩阵的大小将为

同时因为矩阵边缘的信息参与卷积的次数较少,会导致边缘信息的丢失。为了解决这一问题,我们要在卷积计算中引入填充方法(padding)

阅读全文 »

卷积(convolution)是CNN中的重要概念,虽然其计算方式很容易理解,但是表示的实际含义并不直观
在此借边缘检测的例子来解释卷积的含义:

对于左侧的图片来说,它的垂直边缘和水平边缘分别为右图所示

阅读全文 »