tensorflow2.0卷积神经网络实战笔记

卷积神经网络

本文参考《TensorFlow2深度学习》

背景知识

1、深度学习的深度是指网络的层数较深,一般有5层以上。1~4层神经网络称为浅层神经网络。浅层神经网络不能很好的提取数据的高层特征,表达能力一般,很快被1990年代新提出的支持向量机(SVM)所超越。2006年,Hinton大佬提出了一种逐层预训练的算法,可以有效的初始化DBN网络,从而使得训练大规模、深层数(上百万的参数量)的神经网络成为可能。深度学习的概念被首次提出。深度学习和神经网络本质上指代基本一致,深度学习更侧重于深层次的神经网络的相关研究。
2、全连接网络搭建

from tensorflow import keras
from tensorflow.keras import layers,Sequential,losses,optimizers,datasets
#创建4层全连接网络
model=keras.Sequential([
    layers.Dense(256,activation='relu'),
    layers.Dense(256,activation='relu'),
    layers.Dense(256,activation='relu'),
    layers.Dense(10)
])
#build模型,并打印模型信息
model.build(input_shape=(4,784))
model.summary()

这是一个简单的4层全连接神经网络,模型各层参数分别为200960,65792,65792,2570,总参数量为335K,约占内存1.34MB。实际上,网络的训练过程还需要缓存计算图模型、梯度信息、输入和中间计算结果等等。由此可见,全连接层较高的内存占有量严重限制了神经网络朝着更深层数的发展。
Dense层的连接方式是全连接层参数量大、计算代价高的根本原因。
3、局部相关性
考虑输入节点对输出节点的重要性分布,输出节点只与最重要的一部分节点相连。在现实生活中存在着大量以位置、距离为重要性分布衡量标准的数据。如2D图片数据,假设与当前像素点欧氏距离<=k/√2的重要性较高。基于距离重要性分布假设称为局部相关性,他只关注和自己距离较近的部分节点,而忽略距离较远的节点。在这种思想下,输出节点j只与以j为中心的局部区域(感受野)相连接(k×k)。
4、权值共享
对于每个输出节点0j,均使用相同的权值矩阵W,无论输出节点的数量是多少,网络层的参数是k×k。在计算某个位置的输出像素时,将W与对应感受野内部的像素相乘累加,作为该位置的像素输出值。这种局部连接、共享权重的网络,就是卷积神经网络。
5、卷积
离散卷积运算:权值相乘累加
卷积的卷是指翻转平移操作,积是积分运算,1D连续卷积定义为:
在这里插入图片描述
离散卷积将卷积变成累加运算:
在这里插入图片描述
2D卷积定义为:
在这里插入图片描述
在深度学习中,权值函数g(m,n)称为卷积核(Kernel)。
2D离散卷积运算流程:每次通过移动卷积核窗口与图片对应位置处的像素相乘累加,得到此位置的输出值。
在这里插入图片描述

卷积神经网络

卷积神经网络通过充分利用局部相关性和权值共享的思想,大大减少了网络的参数量,从而提高训练效率,更容易实现超大规模的深度网络。
1、单通道输入,单卷积核合

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值