dropout和正则化的区别和详解
时间: 2024-04-22 21:26:33 浏览: 138
dropout和dropblock都是防止过拟合的方法,但是具体实现和效果略有不同。dropout是将一部分神经元按照一定概率随机去掉,不参与当前的正向传播和反向传播,从而减少神经元之间的相互依赖,让网络更具有泛化性。而dropblock是在特征层级上随机去掉一定区域的特征,相当于对特征进行粗粒度的屏蔽,从而增加了特征之间的独立性,减少过拟合。相比之下,dropblock更适用于高分辨率图像的任务,而dropout更适用于较小的网络和自然语言处理任务。
相关问题
在实验中,将数据进行正则化在输入到batch normalization。ST-GCN模型由九层时空图卷积组成。前三层输出64通道数,中间三层输出128通道,最后三层输出256层通道数。一共有9个时间卷积核,在每一个ST-GCN使用残差链接,使用dropout进行特征正则化处理,将一半的神经元进行dropout处理。第4、7层的时间卷积层设置为poling层。最后将输出的256个通道数的输出进行全局pooling,并由softmax进行分类。是由SGD进行优化
### ST-GCN 模型架构详解
#### 正则化与 Batch Normalization 的应用
ST-GCN(Spatio-Temporal Graph Convolutional Network)是一种针对时空数据建模的深度学习框架,广泛应用于动作识别等领域。为了提高模型稳定性并减少过拟合现象,Batch Normalization 被引入每一层卷积操作之后[^3]。具体而言,BN 层通过标准化激活函数前的输入值来加速收敛过程,并缓解梯度消失或爆炸问题。
此外,Dropout 技术也被采用作为一种显式的正则化手段。通常情况下,在全连接层之前会加入一定比例的 Dropout 来随机丢弃部分神经元,从而增强泛化能力[^4]。
#### 各层通道数的设计原理
关于通道数设置方面,一般遵循从小到大逐渐增加的原则。例如初始几层可能设定为64个滤波器,随后逐步提升至128甚至更高如256等数值。这种渐增模式有助于先提取低级局部特征再过渡向更高级别的抽象表达形式。这样的设计可以有效捕捉不同尺度下的空间与时序关联特性。
#### 时间卷积核数量
对于时间维度上的处理,则主要依赖一维卷积运算完成。这些卷积核负责沿着时间轴滑动扫描节点间相互作用规律。其大小往往依据实验效果调整优化得出最佳参数组合。
#### Residual Connection 实现方式
残差连接允许较深网络仍能保持良好性能表现的关键因素之一就是它解决了深层网络训练过程中可能出现的退化解难题。在实际编码实现当中可以通过简单加法操作将未经变换或者仅经过线性投影转换过的原始输入叠加回最终输出端口处达成目标。
#### Pooling Layer 配置详情
池化层主要用于降低特征地图的空间分辨率进而达到降维目的同时保留最重要信息成分不丢失过多细节内容。按照惯例会在特定层次比如第四七两阶段安排相应操作步骤执行最大值选取策略(Max-Pooling)。
#### 全局平均池化(Global Average Pooling) 及 Softmax 分类环节说明
当所有先前预处理完毕后进入最后决策判断时刻时,全局平均池化将会把整个序列压缩成固定长度表示向量供后续SoftMax分类器利用计算各类别概率分布情况以便做出最有可能的选择结果.
#### 优化方法(SGD Optimizer Usage)
至于求解算法选择上,默认推荐使用带momentum项的标准随机梯度下降法(Stochastic Gradient Descent with Momentum),因为它具备较快收敛速度又能较好避开局部极小点陷阱的优势特点.
```python
import torch.nn as nn
class Model(nn.Module):
def __init__(self):
super(Model,self).__init__()
self.st_gcn_networks = nn.Sequential(
st_gcn(in_channels=3,out_channels=64,kernel_size=(9,1)),
...
st_gcn(in_channels=128,out_channels=256,kernel_size=(9,1))
)
self.fc = nn.Linear(256,num_class)
def forward(self,x):
out = self.st_gcn_networks(x)
out = F.avg_pool2d(out,(1,T)) # Global average pooling over time dimension T.
out = out.view(N,-1)
predict_score = self.fc(out)
return predict_score
```
阅读全文
相关推荐
















