卷积神经网络基础整理

卷积神经网络基础整理碎碎


卷积神经网络与全连接神经网络的区别:全连接神经网络没两层之间的所有节点都相连接;卷积神经网络相邻的两层之间只有部分节点相连。全连接神经网络将全连接层中的所有节点组成一列,而卷积神经网络将圈基层的节点组成一个三位网络矩阵。


为什么要引入卷积神经网络:因为在全连接神经网络中,随着图片的增大,输入层的节点增多,参数数量增大。易产生过拟合的问题。
对于一张28*28*1的图片,全连接层假设其节点有500个,则参数的个数:28*28*500+500=392500个参数。


卷积网络的组成

  1. 输入层:一般代表一张图片的像素矩阵。一个卷积神经网络从输入层开始将上一层额度三维矩阵转化为下一层的三维矩阵。
  2. 卷积层:其每一个输入只是上一层神经网络中的一小块,通常大小为3*3或者5*5,一般来说通过卷积层梳理过的节点矩阵会变得更深。
  3. 池化层:不改变其深度,单缩小矩阵,可以理解为将其从一张分辨率较高的图片转化为分辨率较低的图片。从而使矩阵中的点数变小,所以后面全连接层中的节点不会特别多…
  4. 全连接层
  5. softmax层:分类

卷积层:

过滤器(filter)有的叫做内核(kernel)
作用:将一个子节点矩阵转化为一个单位节点矩阵(长和宽都为1,但是深度不限),包括输入矩阵的大小和输出单位节点矩阵的深度。
过滤器在移动过程中需要考虑的因素

  • 是否全零填充:加入了全零填充避免了尺寸的变化
  • 移动的步长:过滤器向前移动时每次前进的格数
输出与输入的关系
  • 全零填充:输入的长度与步长的比值
    out=instride o u t = ⌈ i n s t r i d e ⌉
  • 不适用全零填充:
    out=infilter+1stride o u t = ⌈ i n − f i l t e r + 1 s t r i d e ⌉
    在卷积神经网络中,在一个卷积层使用的过滤器中的参数都是一样的,使图像上的距离不受位置的影响,所以参数的个数大幅度减少。=》卷积层中参数的个数与图片的大小没有关系,于过滤器的尺寸有关。
    conv=tf.nn.conv2d(input,filter_weight,strides=[1,1,1,1],padding='SAME')
    
    tf.nn.conv2d是一个用来实现圈基层前向传播算法的函数。
    • 第一个参数是当前层的节点矩阵,**该矩阵式一个四维矩阵**,后面三个维度对应的是一个节点矩阵,第一个维度对应的是输入的batch;
    • 第二个参数对应的是卷积层的权重
    • 第三个参数是不同维度上的步长,一个长度为4的数组,第一位和第四位默认为1;
    • 第四个参数为填充方法;VALID为不使用全零填充,SAME为使用全零填充

池化层

1)最大池化层:tf.nn.max_pool
2)平均池化层:tf.nn.avg_pool

你可能感兴趣的:(机器学习)