TensorFlow学习 max-pooling和average-pooling之间的异同(待总结)

池化操作时在卷积神经网络中经常采用过的一个基本操作,一般在卷积层后面都会接一个池化操作,但是近些年比较主流的ImageNet上的分类算法模型都是使用的max-pooling,很少使用average-pooling,这对我们平时设计模型时确实有比较重要的参考作用,但是原因在哪里呢?

通常来讲,max-pooling的效果更好,虽然max-pooling和average-pooling都对数据做了下采样,但是max-pooling感觉更像是做了特征选择,选出了分类辨识度更好的特征,提供了非线性,根据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成的估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说,average-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。average-pooling更强调对整体特征信息进行一层下采样,在减少参数维度的贡献上更大一点,更多的体现在信息的完整传递这个维度上,在一个很大很有代表性的模型中,比如说DenseNet中的模块之间的连接大多采用average-pooling,在减少维度的同时,更有利信息传递到下一个模块进行特征提取。

但是average-pooling在全局平均池化操作中应用也比较广,在ResNet和Inception结构中最后一层都使用了平均池化。有的时候在模型接近分类器的末端使用全局平均池化还可以代替Flatten操作,使输入数据变成一位向量。


max-pooling和average-pooling的使用性能对于我们设计卷积网络还是很有用的,虽然池化操作对于整体精度提升效果也不大,但是在减参,控制过拟合以及提高模型性能,节约计算力上的作用还是很明显的,所以池化操作时卷积设计上不可缺少的一个操作。

### 山东大学深度学习期末考试复习指南 #### 名词解释 针对山东大学2022-2023学年的深度学习课程,以下是几个重要的概念解析: - **梯度衰减** 梯度衰减是指在网络训练过程中,随着层数的增加,反向传播时梯度逐渐变小的现象。这可能导致深层网络难以训练[^3]。 - **分布式假设** 分布式表示假设备用较少数量的节点能够表达复杂的数据分布。这一原则广泛应用于神经网络的设计中,尤其是在处理高维稀疏数据时非常有用。 - **梯度消失** 当激活函数导数接近于零时,在反向传播算法中产生的权重更新会变得极小甚至停滞不前,这就是所谓的梯度消失问题。此现象严重阻碍了深网的有效训练。 - **随机梯度下降法 (SGD)** 随机梯度下降是一种优化方法,它每次迭代只使用单一样本或一小批样本来进行参数调整,从而加快收敛速度并有助于跳出局部最优解。 #### 简答题要点总结 - **损失函数及其应用实例** 损失函数用于衡量模型预测值与真实标签之间的差异程度;均方误差(MSE)交叉熵(Cross Entropy Loss)是最常见的两类损失函数形式之一。 - **池化操作原理及特点** 池化层通常位于卷积层之后执行下采样工作,其目的是减少空间维度的同时保留重要信息。最大池化(Max Pooling)选取窗口内的最大值作为代表,而平均池化(Average Pooling)则是取算术平均值。 - **Batch Normalization机制概述** Batch Normalization旨在解决内部协变量转移问题,通过对每一批次的小批量数据标准化处理来加速训练进程,并允许更高的初始学习率设置以及减轻对初始化条件敏感性的依赖。 - **CNN vs RNN架构对比分析** 卷积神经网络擅长捕捉图像类二维结构化数据的空间关系模式识别任务;相比之下,循环神经网络更适合处理序列型时间序列数据分析场景下的长期依赖建模需求。 - **阶跃函数vs Sigmoid函数异同探讨** 尽管两者都是非线性变换工具,但是Sigmoid具有连续可微性质利于BP算法实施,而且输出范围介于(0,1),适合概率估计场合;相反地,阶跃函数仅能提供离散二元判定结果。 - **LSTM单元组成要素阐述** LSTM(Long Short-Term Memory)记忆细胞内含遗忘门(Forgot Gate)、输入门(Input Gate) 输出门(Output Gate),它们共同协作控制状态传递流程,有效克服传统RNN存在的长时间跨度关联丢失难题。 #### 计算题示例解答 对于给定的目标函数 \( f(a,b,c)=5(a+b c)\): 当设定具体数值\( a=7 \), \( b=5\), \( c=3\) 后,则有: \[f(7,5,3)=5\times(7+5*3)=5*(7+15)=5*22=110.\] 为了求得各变量对应的偏导数,按照链式法则分别计算如下所示: ```python import sympy as sp # 定义符号变量 a, b, c = sp.symbols('a b c') # 构造目标函数表达式 func_expression = 5 * (a + b*c) # 对各个自变量求偏导 partial_derivative_a = func_expression.diff(a) partial_derivative_b = func_expression.diff(b) partial_derivative_c = func_expression.diff(c) print(f"∂f/∂a={partial_derivative_a}") print(f"∂f/∂b={partial_derivative_b}") print(f"∂f/∂c={partial_derivative_c}") ``` 运行上述Python脚本将会得到相应的偏导数表达式分别为 `∂f/∂a=5`, `∂f/∂b=5*c` , `∂f/∂c=5*b`.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值