ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DataWhale八月组队学习-李宏毅深度学习Task05-网络设计的技巧

2021-08-25 20:34:13  阅读:183  来源: 互联网

标签:输出 卷积 李宏毅 DataWhale channels pattern CNN Task05 图片


一、 为什么使用CNN处理图片

  • 在图片中有一些比整张图片要小的pattern(比如鸟的图片中鸟的喙就是一个小的pattern),识别这些pattern并不需要看整张图片。
  • 这些小的pattern会出现在图片的不同位置,例如鸟图片中鸟的喙可能出现在左上角也可能出现在中间。
  • 对图片进行降采样(池化)不会改变图片的特征,因此神经网络处理图片所需的参数就会更少。

二、 卷积 v.s. 全连接

  可以将卷积网络看作一种特殊的的全连接网络,每一个卷积核卷积后得到的feature map可以看做一个隐藏层的输出,feature map中的每一个数可以看做这个隐藏层的一个神经元。在这个特殊的全连接网络中隐藏层的每个神经元只会接收上一层的部分输入,而且隐藏层的神经元对应的权重是共享的,在反向传播过程中只需要按照一般的过程进行反向传播,然后再将对应的共享参数取均值即可。具体的过程如下图所示:

 

 

卷积 v.s. 全连接

三、 卷积网络中的channel(通道)

  对于输入样本中 channels 的含义。一般的RGB图片,channels 数量是 3 (红、绿、蓝);而monochrome(单色)图片,channels 数量是 1 。
  举个例子,如下图,假设现有一个为 6×6×3 的图片样本,使用 3×3×3 的卷积核(filter)进行卷积操作。此时输入图片的 channels 为 3 ,而卷积核中的 in_channels 与 需要进行卷积操作的数据的 channels 一致(这里就是图片样本,为3),注意每个卷积核的channels(也就是in_channels)一定是与图片的channels一致,因为图片的每一个channel都会分别于卷积核中对应的channel进行卷积操作。

 

 

 

RGB图片的卷积

  接下来,进行卷积操作,卷积核中的27个数字与分别与样本对应相乘后,再进行求和,得到第一个结果。依次进行,最终得到4×4的结果。

 

 

 

RGB图片的卷积

  上面步骤完成后,由于只有一个卷积核,所以最终得到的结果为 4×4×1 , out_channels 为 1 。在实际应用中,都会使用多个卷积核。这里如果再加一个卷积核,就会得到 4×4×2 的结果,因此卷积核的数量也就是out_channels,即该卷积层输出的feature map的channel数。

 

 

 

  多卷积核

  总结一下,上面提到的 channels 可以分为三种:
  (1)最初输入的图片样本的 channels ,取决于图片类型,比如RGB;
  (2)卷积操作完成后输出的 out_channels ,取决于卷积核的数量。此时的 out_channels 也会作为下一次卷积时的卷积核的 in_channels;
  (3)卷积核中的 in_channels ,刚刚(2)中已经说了,就是上一次卷积的 out_channels ,如果是第一次做卷积,就是(1)中样本图片channels。

四、卷积网络学到了什么(可视化)

  以下图网络结构为例:

 

 

 

  网络结构

4.1 卷积核学到了什么

  定义第k个卷积核的激活度:

 

 

 

卷积核的激活度

  每个卷积核负责侦测图像中的一种pattern,激活度越高说明图像中出现越多的这种pattern。在训练模型完成以后,将激活度看做因变量,图像看做自变量,通过极大化激活度而得到的图像即是该卷积核所侦测的pattern,也就实现了一个可视化的过程。具体过程如下所示:

 

 

 

可视化

  这里列出12个卷积核求解得到的结果,可以看到每个卷积核都会侦测一种pattern。

4.2 全连接隐藏层神经元学到了什么

 

 

 

全连接隐藏层

  将神经元的输出看做因变量做同样的最优化过程得到结果,从上图中可以看出与卷积核只侦测小的pattern不同,全连接隐藏层的神经元会看到整张图像的特征。

4.3 输出层神经元学到了什么

 

 

 

输出层

  上图为使用CNN对手写体数字识别数据集训练出来的网络结构的输出层可视化的结果,可以看到得到的结果并非类似数字的图像,可见机器和人识别图像的方式是不一样的。将输出层节点的值进行L1正则化然后再看求解得到的结果就可以隐约看出数字的特征了:

 

 

 

正则化

五、卷积网络应用

5.1 Deep Dream

  Deep Dream不修改参数,而是修改输入图像,生成一些奇特的图像。

 

 

 

Deep Dream效果

5.2 Deep Style

 

 

 

Deep Style效果

  其实现的大体原理如下:

 

 

 

Deep Style

  保留左边图片卷积核的输出值,输出值代表了图片的内容;保留右边图片卷积核之间的相关性(corelation),相关性代表了图片的风格,然后进行最优化(maximum),最终就会得到右图风格的左图,效果如下:

 

 

 

效果

5.3 下围棋(Alpha Go)

  使用神经网络来预测下一步棋的位置时,网络的输入是当前的棋盘的状态(shape:19 * 19,黑子:1,白字:-1,空:0),输出下一步的位置。
  解决这个问题既可以使用全连接网络,也可以使用CNN,但是CNN效果更好,这是因为下围棋的问题符合一中介绍的选择CNN的理由:

  • 通过围棋的特点可以知道,只需要侦测棋盘上一些小的pattern就可以进行识别。
  • 这些小的pattern可能存在于棋盘的不同位置(指可能存在于棋盘的左上角或中间等位置)。
    :由于棋盘不同于图片,图片进行降采样以后仍然可以识别特征而围棋棋盘不可以,所以Alpha Go所使用的的CNN架构中没有池化层。)

5.4 语音辨识

 

  卷积核只在Frequency方向上移动,这是因为在时间上移动卷积核意义不大,比如同样说“你好”,男女的声音很可能只是在Frequency上有差别。

5.5 文本识别

 

  同样的卷积核只横向移动,这是因为每个词向量的不同维度之间是独立的。因此在CNN的实际应用中要根据实际情况选择卷积核的移动方式。

 

标签:输出,卷积,李宏毅,DataWhale,channels,pattern,CNN,Task05,图片
来源: https://www.cnblogs.com/MurasameLory-chenyulong/p/15186790.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有