第八章神经网络8.3卷积、池化、激活

一、神经网络中卷积层的堆叠(卷积层)

在这里插入图片描述
为什么选择使用3个3x3的卷积层而不是使用1个7x7的卷积层呢?
(1)3个串联的3x3的卷积层,拥有比1个7x7的卷积层更少的参数,参数量是后者的(3x3x3 ) /(7x7) = 55%

(2)3个3x3的卷积层比1个7x7的卷积层拥有更多的非线性变换,前者可以使用3次ReLU激活函数,而后者只能使用一次,这样使得CNN对特征的学习能力更强。

二、池化层

目的:减少卷积层之间的连接,从而降低运算的复杂程度。
分类:最大池化、平均池化、随机池化

三、激活函数activation(激活层)

1.Sigmoid函数:
Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。公式如下:
在这里插入图片描述
在这里插入图片描述
优点:
单调连续,输出范围有限,优化稳定,可以用作输出层,求导容易
缺点:
软饱和性易造成梯度消失,导致训练出问题
输出不是以0为中心

2.Tanh函数
Tanh是双曲函数中的一个,Tanh()为双曲正切。在数学中,双曲正切“Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。公式如下
在这里插入图片描述
在这里插入图片描述
3.ReLU函数
Relu激活函数(The Rectified Linear Unit),用于隐层神经元输出。公式如下:
在这里插入图片描述
在这里插入图片描述

四、代码实现

from tensorflow.keras import Sequential,layers
import tensorflow as tf
network = Sequential([ # 网络容器
    layers.Conv2D(6,kernel_size=3,strides=1), # 第一个卷积层, 6 个3x3 卷积核
    layers.MaxPooling2D(pool_size=2,strides=2), # 高宽各减半的池化层
    layers.ReLU(), # 激活函数
    layers.Conv2D(16,kernel_size=3,strides=1), # 第二个卷积层, 16 个3x3 卷积核
    layers.MaxPooling2D(pool_size=2,strides=2), # 高宽各减半的池化层
    layers.ReLU(), # 激活函数
    layers.Flatten(), # 打平层,方便全连接层处理
    layers.Dense(120, activation='relu'), # 全连接层,120 个节点
    layers.Dense(84, activation='relu'), # 全连接层,84 节点
    layers.Dense(10) # 全连接层,10 个节点
    ])
# build 一次网络模型,给输入X 的形状,其中4 为随意给的batchsz
network.build(input_shape=(4, 28, 28, 1))
# 统计网络信息
network.summary()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值