李宏毅机器学习 之 卷积神经网络(六)

目录

一、为什么用卷积神经网络CNN?

1、small region

2、same patterns

3、下采样 subsampling

二、CNN架构

1、卷积层 Convolution

2、池化层 Max Pooling

3、全连接层 Fully connected

4、卷积层 Convolution 与 全连接层 Fully connected之间的关系

三、CNN学到了什么?

四、CNN的应用

1、Deep Dream

2、Deep Style


一、为什么用卷积神经网络CNN?

1、small region

当我们想要知道一个image里面有没有某一个pattern出现,其实是不需要看整张image,它只要看image的一小部分。

假设现在想看image中有没有鸟嘴的存在,那并不需要看整张图,其实我们只需要给neural看着一小红色方框的区域(鸟嘴),它其实就可以知道说,它是不是一个鸟嘴。对人来说也是一样,看这一小块区域这是鸟嘴,不需要去看整张图才知道这件事情。所以,每一个neural连接到每一个小块的区域就好了,不需要连接到整张完整的图。

2、same patterns

同样的pattern在image里面,可能会出现在image不同的部分,但是代表的是同样的含义,它们有同样的形状,可以用同样的neural,同样的参数就可以把patter侦测出来。

比如说,这下图里面有一张在左上角的鸟嘴,在这张图里面有一个在中央的鸟嘴,但是我们不需要去训练两个不同的detector,一个专门去侦测左上角的鸟嘴,一个去侦测中央有没有鸟嘴。如果这样做的话,这样就太冗了。这个neural侦测左上角的鸟嘴跟侦测中央有没有鸟嘴做的事情是一样的。我们并不需要两个neural去做两组参数,我们就要求这两个neural用同一组参数,就样就可以减少需要参数的量。

3、下采样 subsampling

下采样会缩小图像,主要为了使图像符合显示区域大小,生成对应的缩略图。

二、CNN架构

CNN主要由卷积层、池化层、全连接层组成。整体架构如下图所示:

1、卷积层 Convolution

卷积层最主要的是使用卷积核 filter 进行特征提取 Feature extraction,隐藏层最先提取的是低级特征(局部特征),再提取高级特征(全局特征)。卷积完成的图即为特征图Feature map。

特征图的计算公式:Featuremap\_size = \lfloor \frac{image\_size - kernel\_size + 2 * padding\_size}{stride} \rfloor +1

其中,image_size表示输入图像大小,kernel_size表示卷积核大小,padding_size表示填充的大小,stride表示每次走的步长。

彩色图片有3个通道RGB,黑白只有一个通道。

使用卷积核最主要的是可以局部感知和权值共享。        

2、池化层 Max Pooling

池化层是把奇数行偶数列去掉,会减小空间维度,减少特征,减少参数,可以控制过拟合。

较常用的池化的有最大池化和平均池化:

最大池化 max pooling:将输入的图像划分成若干区域,对每个区域输出最大值;

平均池化 average pooling:输出局部接受域中值的平均值。

3、全连接层 Fully connected

在全连接之前要先把池化层的输出进行平整化 flatten,拉伸到一个维度,把所有局部特征结合成全局特征,然后再进行每一类的计算。下图就是平整化 flatten做的事情。

之后在全连接层做完会输出分类结果。

4、卷积层 Convolution 与 全连接层 Fully connected之间的关系

卷积层 Convolution 与 全连接层 Fully connected之间唯一的区别就是权重,卷积层没有权重的参与,每个卷积核与相对应的特征做点乘运算。下图左边是做卷积,右边是全连接,把左边的6 * 6 的image做成一个vector,就是右边蓝色框中的数字,和全连接不同的是,卷积知识对其中一部分做运算,并且有的权重一样,当输入的是很高数量级的样本就可以大大缩小空间维度。相同颜色的箭头表示权重相同。

三、CNN学到了什么?

CNN学到的其实是图像中不同的特征,每个卷积核学到的都不一样的特征,有横条的,有左斜的,有右斜的,比如前面的卷积核可以学到如何辨别鸟嘴,随着卷积的层数变深,后面学到的特征可能就是如何辨别图像中是否有鸟,鸟的种类。

四、CNN的应用

CNN不只是在图像处理上应用,还可以在其他领域应用,如Deep Dream、Deep Style、围棋、 AlphaGo、 音识别 Speech Recognition、文本处理 Text等。

1、Deep Dream

通过调整某些参数,可以做到把原来的东西夸张化。

比如调整下面的参数,把正的调的更大,负数调的更小,就会出现下面右图的情况,会把石头看成其他动物。

 

2、Deep Style

输入一张image,输入另一张image,让machine去修改这张图,就可以出现另外一张图的风格 (类似于风格迁移),比如输入左图就可以得到右图。

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值