tensorflow笔记第五讲CNN

目录

  • 引入
  • 卷积
  • 感受野
  • 全零填充
  • tensorflow描述卷积层函数
    • tf.ketas.layers.conv2D
  • 批标准化
  • 池化Pooling
      • tf.keras.layers.MaxPool2D函数
  • 舍弃 Dropout
  • CNN总结
  • Cifar10数据集
  • 搭建卷积网络
  • 经典卷积网络
    • LeNet
    • LeNet核心代码
  • AlexNet
    • AlexNet核心代码
  • VGGNet 2014
  • InceptionNet 2014
    • InceptionNet核心实现
  • ResNet
    • 两个相加维度不同
    • 代码展示
  • 总结

引入

  • 全连接NN参数过多,待优化参数过多容易导致模型过拟合
    tensorflow笔记第五讲CNN_第1张图片

卷积

  • 输入特征图的额深度,卷积核的深度,输出特征图的深度
  • 卷积计算相当于图像特征提取的方法
    tensorflow笔记第五讲CNN_第2张图片

感受野

  • 感受野数值相同 说明特征提取能力一样,那么选取参数少的。
    tensorflow笔记第五讲CNN_第3张图片

全零填充

tensorflow笔记第五讲CNN_第4张图片

  • 零填充可以使得输入特征图和输出特征图的维度相等。
    tensorflow笔记第五讲CNN_第5张图片

tensorflow描述卷积层函数

tf.ketas.layers.conv2D

  • 图中的BN表示批处理操作,如果后面接批处理操作的话,就先不激活。
    tensorflow笔记第五讲CNN_第6张图片

批标准化

  • 神经网络对0附近的数据更为敏感,随着网络的增加,特征数据会偏离0均值的情况,标准化可以是数据拉回以0为均值,1为标准差,把偏移的特征数据重新拉回到0附近。

tensorflow笔记第五讲CNN_第7张图片

  • 批标准化,使得数值重新拉回到0附近,经过激活后的输出数值更加明显,提升了激活函数对输入数据的区分力。
  • 但是,这种简单的标准化使得特征数据完全满足标准正态分布,集中在激活函数中心的线性区域,使得激活函数丧失了非线性的特性。
  • 因此,在BN操作中为每个卷积核引入了两个可训练参数,在反向传播中也对该参数进行调整,这会优化特征数据分布的宽窄和偏移量,保证了网络的非线性表达力
    tensorflow笔记第五讲CNN_第8张图片
  • BN层在卷积层和激活层之间,代码在中间加
    tensorflow笔记第五讲CNN_第9张图片

池化Pooling

  • 最大值池化可提取图片纹理
  • 均值池化可保留背景特征
    tensorflow笔记第五讲CNN_第10张图片

tf.keras.layers.MaxPool2D函数

  • tf.keras.layers.AveragePooling2D
    tensorflow笔记第五讲CNN_第11张图片

舍弃 Dropout

  • 在神经网络训练时,将一部分神经元按照一定概率从神经网络中暂时舍弃。神经网络使用时,被舍弃的神经元回复链接
    tensorflow笔记第五讲CNN_第12张图片

CNN总结

  • 其实就是在神经网络之前,加上提取特征的步骤,而这里提取特征的步骤包括卷积、批标准化、激活、池化这几个步骤。
  • 所以 卷积就是特征提取器 就是CBAPD。C是卷积,B是批标准化,A是激活,P是池化,D是舍弃
    tensorflow笔记第五讲CNN_第13张图片tensorflow笔记第五讲CNN_第14张图片

Cifar10数据集

tensorflow笔记第五讲CNN_第15张图片

  • 打印查看数据tensorflow笔记第五讲CNN_第16张图片

搭建卷积网络

  • 按照CBAPD写好,然后调用函数
    tensorflow笔记第五讲CNN_第17张图片

经典卷积网络

tensorflow笔记第五讲CNN_第18张图片

LeNet

tensorflow笔记第五讲CNN_第19张图片

LeNet核心代码

tensorflow笔记第五讲CNN_第20张图片

AlexNet

tensorflow笔记第五讲CNN_第21张图片

AlexNet核心代码

tensorflow笔记第五讲CNN_第22张图片

VGGNet 2014

InceptionNet 2014

tensorflow笔记第五讲CNN_第23张图片

InceptionNet核心实现

tensorflow笔记第五讲CNN_第24张图片

  • 精简实现
    tensorflow笔记第五讲CNN_第25张图片

ResNet

  • 前面都是单纯堆叠网络层数来提高性能,但是随着网络层数越来越多,错误率反而升高了。所以,作者认为单纯堆叠网络层数会使得网络退化,后边的特征丢失了前边特征的原本模样。
    tensorflow笔记第五讲CNN_第26张图片
  • 为防止退化,作者提出了ResNet块,有效缓解了神经网络模型堆叠,
  • 将输入特征恒等映射X和经过卷积非线性之后的F(X)进行对应元素值相加
  • Inception和ResNet的叠加是不一样的
    tensorflow笔记第五讲CNN_第27张图片

两个相加维度不同

tensorflow笔记第五讲CNN_第28张图片

代码展示

tensorflow笔记第五讲CNN_第29张图片

总结

tensorflow笔记第五讲CNN_第30张图片

你可能感兴趣的:(机器学习算法,神经网络,卷积,网络,深度学习,人工智能)