【李宏毅】CNN

Convolutional Neural Network

CNN常常被用在图像处理(image processing)上

Why CNN for image?

当我们用一般的fully connected neural network来做图像处理的时候,往往我们会需要太多的参数,举例来说:

我们有一张100 x 100 的彩色图片(RGB),把它拉成一个vector的时候,它就有100 x 100 x 3(RGB)的pixel(每个pixel需要有三个value来描述它(RGB))

input vector:100 x 100 x 3 = 30000维

hidden layer(假设有 1000 个neuron),则第一个hidden layer的参数就有30000 x 1000(太多)

【李宏毅】CNN_第1张图片

CNN把一些不需要的参数拿掉,可以简化neural network的架构,比一般DNN简单。

1. some patterns are much smaller than the whole image.

大部分的pattern比整张图像要小,只要看一部分的图像就可以确定这件事情。

比如一只鸟,侦测有没有鸟嘴的存在,仅需要看鸟嘴的部分。

【李宏毅】CNN_第2张图片

2. The same patterns appear in different regions

同一个特征出现在图片的不同地方可以使用同一组参数进行侦测,无需重新设计。

【李宏毅】CNN_第3张图片

3. Subsampling the pixels will not change the object

【李宏毅】CNN_第4张图片

The Whole CNN:

【李宏毅】CNN_第5张图片

怎么根据图像的性质来使用CNN的:

【李宏毅】CNN_第6张图片

CNN的各个部分:

1. Convolution

黑白图:

有一个 6 x 6 的黑白的image,0代表无墨水,1代表有墨水。我们有很多个3 x 3 的filter,每个filter相当于fully connected neural network中的一个neuron,每个filter都侦测一个pattern, pattern比整个image小。

【李宏毅】CNN_第7张图片

每个filter和image对应的部分做内积,filter每次挪动的距离叫做步长,自己设定,由此image的维度由6 x 6变成4 x 4, 同时验证了property2,同一个pattern出现在image不同的地方我们可以用同一个filter来侦测。

【李宏毅】CNN_第8张图片           【李宏毅】CNN_第9张图片

彩色图:

【李宏毅】CNN_第10张图片

convolution是fully connected 把一些weight拿掉:

【李宏毅】CNN_第11张图片                 【李宏毅】CNN_第12张图片

2. max pooling

选择每个框里面最大的(最小的等)。4 x 4 变成 2 x 2

【李宏毅】CNN_第13张图片                     【李宏毅】CNN_第14张图片

【李宏毅】CNN_第15张图片

通过一次convolution和max pooling就可以得到一个较小的image。

【李宏毅】CNN_第16张图片            【李宏毅】CNN_第17张图片

3. Flatten

把image拉直放到fully connected neural network里

【李宏毅】CNN_第18张图片

围棋也可以用CNN,可以达到更好的效果,因为它有图像的一下特点,没有用到max pooling(因为围棋的特性)。

【李宏毅】CNN_第19张图片         【李宏毅】CNN_第20张图片

 

参考文章:

https://medium.com/@RaghavPrabhu/understanding-of-convolutional-neural-network-cnn-deep-learning-99760835f148

对于彩色图像:n x n x 3(RGB)

对于灰度图像:n x n x 1

CNN模型用来训练和测试,每个输入图像经过一系列的卷积层(有filter(kernals)),池化层(pooling),全连接层并且应用softmax function来分类一个对象(用介于0-1之间的概率值)。

 

参考文章:https://blog.csdn.net/v_july_v/article/details/51812459

激活函数:sigmoid:实际梯度下降中,sigmoid容易饱和、造成终止梯度传递,且没有0中心化。

ReLU:优点是收敛快,求梯度简单

参考文章:https://blog.csdn.net/ruiyiin/article/details/77113973

 

你可能感兴趣的:(【李宏毅】CNN)