李宏毅机器学习笔记p21:CNN

文章目录

  • 前言
  • 一、CNN与图像处理
  • 二、CNN架构
    • convolution(卷积层)
      • 一些词语概念的理解
    • maxpooling(池化层)
    • flatten
  • 三、分析CNN学习
    • 1.分析filter
    • 2.分析全连接层
    • 3.分析output
    • 让图片更像数字
  • Deep Dream
  • Deep Style
  • 总结


前言

前面都对深度学习的框架做了学习,现在学习最重要的CNN。

一、CNN与图像处理

CNN常用于影像处理。
实际上在影像处理上,我们希望一层层layer看到的东西是越来越深入的。

在影像处理上,CNN比一般的training neural network的优势:CNN简化了neural network的架构,减少使用的参数。

可以将原来fully connect layer中一些参数拿掉的原因:
1.每一个neural只需要连接到图片的一小块地方。(convolution)
2.同样的pattern但在image的不同位置,这时候,我们不需要用两组参数去侦察。(convolution)
3.对于一个图像做subsampling 并不会影响理解,但可以减少参数(max pooling)

二、CNN架构

input image ——【 convolution (layer)<——> Max Pooling 】(repeat)——flatten——fully connected feedforword network —— output

convolution(卷积层)

例子:
1.convolution layer里面,有一组filter。利用3* 3的filter(和neuron相似)去侦察6* 6里面的一部分。(解决上文1)
2.将这个filter在6* 6input表面移动(移动距离为stride,这里假设为1),每次做内积,于是得到了4* 4的结果。(解决上文2)
3.由于有n个filter 于是得到了n个4*4的image

一些词语概念的理解

对featrue map,卷积核(kernel),卷积核个数,过滤器,filter,channel的理解
feather map:三维数据就有三个feather map

重点:不管输入图像的深度为多少,经过一个卷积核(filter),最后都通过下面的公式变成一个深度为1的特征图
李宏毅机器学习笔记p21:CNN_第1张图片

参考链接 https://blog.csdn.net/xys430381_1/article/details/82529397

maxpooling(池化层)

根据上文结束的convolution 然后我们可以得到44的matrix。然后继续划分成四个方块,取平均或者最大,就可以继续缩小image(成22)。

flatten

将feature map拉直,为丢入fully connected feedforward做准备。

三、分析CNN学习

1.分析filter

定义:Degree of the activation of teh k-th filter,即第k个Degree有多少active,这个程度通过filter output里所有值的element 的summation得知。
想知道第k个filter作用:运用gradient descent 找出一张图片取使得active degree最大。
通过minist得到每一个filter的工作就是detain某一张pattern。类似纹路的图片。
李宏毅机器学习笔记p21:CNN_第2张图片

2.分析全连接层

也是用gradient ascent 方法针对某几个 neural output 找到一张imageX,结果如下图
李宏毅机器学习笔记p21:CNN_第3张图片

3.分析output

也是用gradient ascent 方法针对 全部 output(output就是10维,每一维度就对应一个digit) 找到一张imageX,结果如下图
李宏毅机器学习笔记p21:CNN_第4张图片

让图片更像数字

有些图像虽然可以让结果很符合,但却不符合数字的假设。
解决方法:加上constraint。比如希望找到的image 大部分都是无颜色,小部分才有颜色,加上这个constraint,结果如下

李宏毅机器学习笔记p21:CNN_第5张图片

Deep Dream

让负值变得更负,正的变成更正。
在这里插入图片描述
相当于放大图片特征。

Deep Style

input一张图,得到另一种风格——风格迁移。
李宏毅机器学习笔记p21:CNN_第6张图片
input 左边的图和右边的图,filter能够体现两张图的精髓。只要输入的图片有左边的content 有右边的style 就可以得到最后那一张图。

总结

学习完CNN之后,算是深度学习入门了?对深度学习的框架也清晰了很多,接下来应该通过代码学习,进一步了解深度学习的代码,继续扩展C深度学习的知识面。

你可能感兴趣的:(机器学习,笔记,机器学习,cnn,计算机视觉)