CNN(Convolutional neural network)卷积神经网络入门介绍&编码测试

CNN(Convolutional neural network)卷积神经网络入门介绍&编码测试

CNN神经网络

  • 产生背景:

从传统全连接的神经网络发展而来,在 CNN 出现之前,图像对于人工智能来说是一个难题,有2个原因:

  1. 图像需要处理的数据量太大,导致成本很高,效率很低
  2. 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高

https://easyai.tech/ai-definition/cnn/#zuoyong

  • 定义及介绍;

经典CNN由三部分组成:卷积层、池化层、全连接层

全连接层和前馈神经网络中的一致,而卷积和池化则是应用了图像处理相关的先验知识(平移不变性带来的权值共享,降维)之后对全连接做了一定改进的连接层。

卷积层:特征提取。

池化层:特征过滤,降维,去冗余,权衡计算性能。


  • 适用的场景或问题/与其他网络的差异

引入了很多图像处理的先验知识,天生适合做图像处理问题。

应用有:图像处理问题(图像分类、目标检测、目标分割、人脸识别、骨骼识别)

  • 经典网络:

LeNet:第一个成功的卷积神经网络应用

AlexNet:类似LeNet,但更深更大。使用了层叠的卷积层来抓取特征(通常是一个卷积层马上一个max pooling层)

ZF Net:增加了中间卷积层的尺寸,让第一层的stride和filter size更小。

GoogLeNet:减少parameters数量,最后一层用max pooling层代替了全连接层,更重要的是Inception-v4模块的使用。

VGGNet:只使用3x3 卷积层和2x2 pooling层从头到尾堆叠。

ResNet:引入了跨层连接和batch normalization。

DenseNet:将跨层连接从头进行到尾。


  • 优势
  1. 卷积层中的共享权值、卷积操作体现了图像处理的感受野和平移不变性的先验知识,降低了需要训练的参数。
  2. 池化可以说是卷积的近似,节省了计算的开销,通过一些池化策略能够使得特征图的主要特征更直接地暴露出来,也可以说是去冗余。


  • 不足与改进
  1. 池化在获得计算性能的提升时,会带来一定程度上特征的丢失,对一些需要临近特征来判别的概念,池化层的filter size设置很重要。
  2. 针对尺寸不变形(一个东西,放大缩小后的判别等价性),Inception策略让网络自己选择卷积核size来获得最好的性能。
  3. 一些概念的判断是根据一些small features和 big features组合所判断的,ResNet使用了跳层连接的方式,提高了各层抓取概念的可重用性。



编码测试

  • 输入编码格式与输出编码格式

X:输入是一张黑白的手写数字图片的像素张量,形状为28*28,数据类型为numpy.ndarray。

Y:输出是对应图片在十个类别的判别结果的one-hot张量,形状为10*10,数据类型为numpy.ndarray。

  • 网络结构(配图)


  • 所用的激活函数

如图所示,卷积1,2和dense1都用了RELU,在dense2(输出层)使用了softmax激活。


  • 伪代码
# load data 
# split the data 
# init sequential model
# add layer:Conv2D-1
# add layer:Conv2D-2
# add layer:MaxPooling2D
# add Flatten
# add layer:Dense1
# add Dropout
# add layer:Dense2
# complie
# training...
# test


  • Git链接

github.com/liuyixin-lou

  • 参考的网上资料的链接

github.com/keras-team/k

  • 更换参数或改变结构的相关测试
  1. 调参dropout_possibility

尝试网格调dropout_possibility这个参数,但是几次最好的结果都不太一样,应该是还受到了随机初始化时的影响,可以看出改进这个参数应该效果不是很明显。

另外,最好的dropout概率也都比较小,可能是问题比较简单所导致的。



  • 个人感悟
  1. 各种技巧都是应对概念判别的不变性所做的调整,可以从不变性和概念判别入门改进网络。


问题

  1. 跳层的出发点是我们判断概念有时是根据一些小fetures的组合,那么具体跳层是传的什么?过滤器还是特征图?应该是特征图。特征图会不会出现sclae不一致导致的无法做卷积?应该不会吧,有padding,可以保证特征图尺寸一致不变。
  2. 跳层的特征图如何做空间上的对应?会不会A处的特征和B处特征(和A隔得比较远)匹配上了?

参考/材料

quick start cnn:

zhuanlan.zhihu.com/p/32

zhihu.com/question/5266

what is polling?

zhihu.com/question/3668

发布于 2020-04-01 13:22