Task 6 李宏毅机器学习——卷积神经网络

CNN(卷积神经网络)常被用在影像处理上,可以简化网络的架构

输入是一张用像素表示出来的图片

使用CNN处理图像识别的原因

1.一个特征对于整个图像来说可能很小,因此只要看图片的一部分即可

2.同样的特征可能出现在图片的不同部分,因为他们想实现的功能都相同,因此可以使用相同的参数,尽管是识别在不同位置上的特征(pattern)

3.对图片进行下采样(subsample)不会改变辨识的对象,而能使图片变小,可减少使用的参数

CNN的整体架构

input--convolution--max pooling--convolution--max pooling (可重复数次,重复几次需事先决定)--flatten--将flatten的输出扔到fully connected feedforward network中--最终得到影像辨识的结果

1、2特点可用convolution来解决

第3个特点可以用max pooling来解决

Convolution 卷积层

假设有一个6*6像素的filter,和一个3*3的filter,filter里的参数是由机器学习出来的,不是人为设定的

先将filter放在左上角,计算出filter中的9个值和image左上角9个值的内积,图中filter在左上角时计算出的结果是3

将filter挪动一定的距离,挪动的距离是自己设的,距离叫stride

convolution后变成4*4的矩阵,做的工作就是侦测有没有某一个pattern(filter1要找的pattern就是左上到右下三个格子都是1的这种)

都使用filter1就可以侦测出来,不用使用多个filter,如特点2所述。

用filter2重复上述步骤,红色和蓝色合起来就是feature map

彩色的图像由RGB组成,是由多个矩阵堆叠组成,3原色表示一个像素(一个像素由由3个值组成)

Convolution 与 fully connected 的区别

Convolution 就是 fully connected 拿掉一些weight的结果

一共有36个input,只有其中9个连接到了filter1,filter只有9个weight,因为要侦测一个pattern只要看其中9个就够了,不用看全部的36个

Filter1和filter2有shared weight,因此需要的参数就更少

Max pooling

由filter1 得到一个4*4的矩阵,分成4个部分,

由filter2 得到一个4*4的矩阵,分成4个部分,

每个部分可采用取最大值、取平均等方法,将每一部分用一个数表示

上图,留下每个部分的最大值

做完一次conv+一次max  pooling将将原来的6*6的图像,变成了新的比较小的2*2的图像

Keras实操

参数解释

Flatten 就是feature map拉直以后扔到 fully connected feedforward netword 进行训练

如歌分析理解第二次的conv+max polling

1、取出第k个filter 经过第二次conv后输出的一个11*11的矩阵

      其中的每一个元素就用a上标k,下标ij表示

2、定义一个值,第k个filter有多被activate(现在的输入和第K个filter有多匹配)

每个filter考虑的都是图上一个小小的范围,如果图上所有部分都出现斜条纹,如第三个filter ,那第三个filter的degree of  the activation最大

flatten后,每个neuron的工作是看整张图,侦测的是比较大的pattern

现在的neuron network训练出来的东西可能和人类认知不一样

让图更像数字

对x做出限制,告诉机器有些x能使y很大,但不是数字

假设图像中的每个像素都用xij来表示,我们希望在找一个x可以使yi最大的同时,同时要使Σ|xij|最小(这能使空白区域尽可能多,与尝试相同)

Deep style

输入一张图,使机器去修改这张图,使这张图有另一张图的风格

做法的精神:

将原来的图像丢给cnn,得到cnn的filter的output,cnn的filter的output代表这张图中有什么内容,再将要模仿风格的照片(如:呐喊)也丢到cnn中得到filter的output,得到filter的output,但并不是要关注output的绝对值,而是关注filter之间的correlation,这代表了这张图的风格,

用同一个cnn找一个图片,这个图片的内容像左边的图片,风格像右边的图片(风格像指的是输出的filter之间的correlation),

即找一张图能maximize左边的content和右边的style

什么时候使用cnn

当具有开头所说的3个特性的时候,使用cnn效果更好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值