Loading

ML From Hung Yi Lee --- CNN #9

CNN (卷积神经网络)

为什么卷积神经网络可以用于图片

  • 最初使用全连接神经网络,每一层使用前文的模块化思想,获得不同的图片信息,然后逐步深入,最后识别出来。
  • 不同的神经元区块化侦测元素
  • 相同的事物,不同的位置,使用相同的参数
  • 图片的放缩对图片对识别效果并无太大影响

Convolution

  • 使用一个filter侦测不同的pattern,每次使用内积然后记录下来,告诉哪些pattern出现了,如上述的3表明有对角线出现了,这就是一个模式发现的过程,使用不同的filter发现不同的pattern然后记录下来。内积越大,表明越是相关。
  • 对于彩色的问题,rgb是三色的,使用三个不同的filter分别取发现pattern

  • 使用非全连接的方式,比如上述第一个连接方式,就是连接1,2,3, 7,8,9,13,14,15,这样就实现了convolution,换下一个就是加步长

Max Pooling

  • 池化
  • 取区域的最大值,然后就得到了尺寸较小的图片

  • 最后输入到一个全连接空间中输出。
  • 输出类别

在Keras实现

  • 使用25个filter,每个filter是3x3的大小;
  • 输入的为一张灰白的大小为28乘28的图片,然后获取filter之后的feature map
  • 然后使用池化,
  • 然后看是否继续convolution然后池化??
  • 最后得到一个tensor输入到一个全连接神经网络中输出判断。

  • 使用池化层缩小图形尺寸
  • fliter是多少,就会出现多少个子图,
  • 每次的convolution会把整个feature map 作为一个整体然后使用filter对feature map进行操作,这时候的filter的数量就代表着后续的feature map的数量,但是如果遇到下一层的convulsions还是会使用一个filter对所有的feature map组成的三维空间进行filter
  • 总结来就一句话,filter并不一定是对平面feature map 操作,而是面向空间的。

CNN到底学到了什么呢?

  • filter,不同的filter学到的就是不同角度的线条,是什么角度的线条

  • flatten阶段,让所有的neuron全部最大,可视化图片后发现不同神经元兴奋效果不同

  • 针对output,可以看到CNN学到的东西并不都是完完全全的我们认为的数字,而是说很不一样的图像。

  • 加上l1正则话后惩罚学习多的东西,留下最有价值的部分

可以去学习一下

posted @ 2021-03-31 23:02  MushRain  阅读(60)  评论(0编辑  收藏  举报