百度验证网站有什么用,邢台做网站,深圳购物网站,压铸东莞网站建设1、call 方法 是一个特殊的方法#xff0c;它允许类的实例表现得像函数一样。也就是说#xff0c;你可以使用圆括号 () 来调用一个实例#xff0c;就像调用普通函数一样。 当你调用 model(input_data) 时#xff0c;实际上是调用了模型的 __ call __ 方法#xff0c;其会自…1、call 方法 是一个特殊的方法它允许类的实例表现得像函数一样。也就是说你可以使用圆括号 () 来调用一个实例就像调用普通函数一样。 当你调用 model(input_data) 时实际上是调用了模型的 __ call __ 方法其会自动调用 forward() 方法完成前向传播的计算。而不需要显示地手动调用 model.forward(input_data)。 2、什么是卷积神经网络 卷积神经网络是一种带有卷积结构的深度神经网络卷积结构可以减少深层网络占用的内存量其三个关键的操作其一是局部感受野其二是权值共享其三是 pooling 层有效的减少了网络的参数个数缓解了模型的过拟合问题。 3、卷积神经网络注意事项 数据驱动的模型一般依赖于数据集的大小CNN 和其他经验模型一样能够适用于任意大小的数据集但用于训练的数据集应该足够大 能够覆盖问题域中所有已知可能出现的问题。 4、正交初始化Orthogonal Initialization 是一种用于神经网络权重初始化的方法旨在使权重矩阵具有正交性。正交矩阵的行或列是彼此正交并且单位化的这种初始化方式有助于维持梯度的规模防止在深度神经网络训练过程中发生梯度爆炸或消失。 正交初始化的具体实现步骤 生成随机矩阵首先从均值为0、方差为1的高斯分布中随机生成一个矩阵。 奇异值分解SVD对生成的随机矩阵进行奇异值分解SVD得到两个正交矩阵U和V以及一个对角矩阵Σ。 选择正交矩阵从U和V中选择一个作为初始化后的权重矩阵。通常选择形状与目标权重矩阵匹配的那个。 正太分布、均匀分布和正交分布都叫随机初始化 5、零值初始化 在零值初始化中所有权重 W 和偏置 b 都被设置为零 W0,b0 零值初始化的问题 对称性问题 如果所有权重都初始化为零那么在训练过程中所有神经元的输出和梯度更新都会相同。这导致模型无法有效学习因为所有的隐含单元都计算相同的函数这种情况称为对称性问题Symmetry Breaking Problem。 例如对于一个简单的神经网络如果所有权重都初始化为零那么每个神经元的输入和输出在每一层都会相同梯度更新也会相同从而无法打破对称性。 梯度消失问题 由于所有初始值都为零梯度在反向传播过程中也会非常小这可能导致梯度消失问题使得模型难以收敛。 6、如何选择激活函数 1任选其一若网络层数不多 2ReLU若网络层数较多 不宜选择sigmoid、tanh因为它们的导数都小于1sigmoid的导数更是在[0, 1/4]之间。 根据微积分链式法则随着网络层数增加导数或偏导将指数级变小。 所以网络层数较多的激活函数其导数不宜小于1也不能大于1大于1将导致梯度爆炸导数为1最好而relu正好满足这个要求。 7、全局平均池化 常用于卷积神经网络的末端以替代传统的全连接层减少模型的参数量简化网络结构提高计算效率 8、正则化为啥能够防止过拟合 首先模型越复杂越容易过拟合即我们想要拟合的是一般规律但是模型却会把一些噪声也拟合进来。 其次权重参数可以决定模型复杂度当很多参数接近0影响变小甚至为0时模型的很多项将失效可以借助多项式理解复杂度自然降低。 最后正则化项可以让很多权重参数为0比如L2正则化项它是由权重参数的平方求和再求平方根所以为了让损失函数最小受到正则化项的惩罚权重参数就会尽量小。 8.1 L1正则化 形式为参数的绝对值求和再乘以一个正则化超参数 目的是使冗余的参数置零只保留权重大的前N个参数。所以也叫做特征选择。 8.2 L2正则化 L2正则化权重衰减 —— 过拟合参数趋近于0 L2正则化L2范数通常表示为||W||2指权值向量 W 中各个元素的平方和然后求平方根。 特点又叫权重衰减。即抑制模型中产生过拟合的参数使其趋近于0而不等于0影响变小。 特点倾向于让所有参数的权值尽可能小。 8.3 dropout正则化 对于使用了 Dropout 的神经网络在反向传播时只会对参与正向传播的神经元的权重参数进行更新被丢弃的神经元的权重参数不会更新。以下是具体的原因和过程 Dropout 的工作原理 在训练过程中Dropout 随机地丢弃即置零一部分神经元的输出。这意味着在每次前向传播时有一部分神经元的输出被置为零这些神经元在当前的前向传播中不参与计算。 反向传播的链式法则 反向传播是基于链式法则进行的。链式法则表明每个权重参数的梯度是通过其对应的神经元的输出和下游神经元的梯度计算得到的。如果一个神经元的输出在前向传播中被置为零那么在反向传播时这个神经元的梯度也会被置为零因为它的输出对最终的损失函数没有贡献。 权重参数的更新 在反向传播时每个权重参数的更新量是根据其梯度计算得到的。如果一个神经元的梯度为零那么其对应的权重参数的更新量也为零即这个权重参数不会被更新。 在卷积层中的应用 在 CNN 中卷积层的输出是一个多维的特征图feature map。Dropout 在卷积层中的应用通常有两种形式标准 Dropout 和 Spatial Dropout。 标准 Dropout 工作原理 标准 Dropout 会在特征图的每个元素上独立地应用 Dropout。也就是说每个特征图中的每个像素点都有一定的概率被置为零。 例如假设有一个特征图的形状为 (N,C,H,W)其中 N 是批量大小C 是通道数H 和 W 是特征图的高度和宽度。标准 Dropout 会在每个元素上独立地应用 Dropout每个元素被丢弃的概率为 p。 实现 在 PyTorch 中可以使用 nn.Dropout 来实现标准 Dropout。 self.dropout nn.Dropout(p0.5) Spatial Dropout 工作原理 Spatial Dropout 与标准 Dropout 不同它是在特征图的整个通道上应用 Dropout。也就是说整个通道的特征图要么全部保留要么全部丢弃。 例如假设有一个特征图的形状为 (N,C,H,W)Spatial Dropout 会在每个通道上独立地应用 Dropout每个通道被丢弃的概率为 p。 这种方法可以更好地保留特征图的空间结构因为整个通道的特征图要么全部保留要么全部丢弃不会破坏特征图的空间相关性。 实现 在 PyTorch 中可以使用 nn.Dropout2d 来实现 Spatial Dropout。 self.dropout nn.Dropout2d(p0.5) 参考 https://blog.csdn.net/shinuone/article/details/127289512 https://blog.csdn.net/jiaoyangwm/article/details/80011656