CNN简介

CNN

卷积神经网络是含有卷积层的神经网络,而卷积层则得名于卷积运算。

Filter

在卷积层中,我们会用一个叫做filter的东西扫过一张图片。这些 filter 啊 它们的大小是,3 × 3 × Channel 的 Size。如果今天是彩色图片的话,那就是 RGB 三个 Channel,如果是黑白的图片的话,它的 Channel 就等於 1。一般而言,这个filter大小可以自己决定,我们这里用 3 × 3 3\times3 3×3的filter来举例。
CNN简介_第1张图片
上图显示了卷积运算的基本过程,用 3 × 3 3\times3 3×3的filter这样扫过图片,filter跟图片对应位置的数值直接相乘,所有的都乘完以后再相加
CNN简介_第2张图片

其中每次移动的步幅为stride,如果超出范围你就做 Padding,Padding填充的数值可能为0或者均值等(一般补0)

理解filter扫过的过程

那么我们该怎么理解这样一个卷积的过程呢,可以做如下理解。我们用filter依次扫一片对应大小的区域时,我们将这片区域称为Receptive Field。这说明,我们只在这个区域找我们感兴趣的东西,很感性的认识就是一张图片如果我们要对其进行识别,我们可能会将一个鸟的识别分解为对其鸟嘴,翅膀等特征的分解,那么对鸟嘴这一特征,它可能仅仅出现在一个小的区域,所以我们完全可以缩小我们寻找的范围这样。

那么鸟嘴这样一个特征并不是说他只出现在一个地方,它可能出现在这张图的上方而出现在另一张图的中间这样,这也就需要我们说对不同区域都要找一找鸟嘴这一特征,那不同区域的鸟嘴是否意味着我们要设另外的一组参数去找呢,这便是我们用filter扫整张图的原因了,我们实际上完成了在不用区域用同一组参数去做这样一个特征检测的过程,我们称之为Parameter Sharing权值共享

Pooling

Pooling 来自於另外一个观察

我们把一张比较大的图片做 Subsampling,举例来说你把偶数的 Column 都拿掉,奇数的 Row 都拿掉,图片变成為原来的1/4,但是不会影响裡面是什麼东西,把一张大的图片缩小,这是一隻鸟,这张小的图片看起来还是一隻鸟

那所以呢 有了Pooling 这样的设计,那 Pooling 是怎麼运作的呢?刚才说每一个 Filter 都产生一把数字,要做 Pooling 的时候,我们就把这些数字几个几个一组,比如说在这个例子裡面就是 2×2 个一组,每一组裡面选一个代表,在 Max Pooling 裡面,我们选的代表就是最大的那一个

the whole CNN

CNN简介_第3张图片

你可能感兴趣的