深度学习上下文中的这些概念你不能不懂

作者:AITechStudy
来源:人工智能技术干货

在深度学习领域,大家都能经常听到超参数和模型参数的概念,但是还有长期变量、临时变量这些概念很多人并不知道是什么,甚至不少资深玩家对超参数和模型参数的认识也是模糊不清,超参数、模型参数、长期变量与临时变量都是深度学习上下文中的参数变量,掌握好这些概念对我们加深了解深度学习很有必要,也是我们炼丹必不可缺少的一环。下面就让我们一起来了解这些概念吧!

超参数

超参数是一类参数,它是在开始训练模型算法前进行定义好的配置,不需要模型进行训练学习更新,但它对是否能训练出良好的模型算法至关重要,不同的超参训练出来的算法差异也很大,常说的炼丹调参,其实就是在调整超参组合,那么超参数一般有哪些呢?

  • 初始学习率,用于梯度下降反向传播更新模型参数的学习率全局初始值
  • 学习率衰减系数或学习率变动规划,在训练过程中采用不同的学习率来更新权重参数
  • 正则化系数,比如weight decaly、L0、L1、L2正则化,通过为模型损失函数添加惩罚项使得学出的模型参数较小,减轻模型过拟合
  • dropout rate,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,减轻模型过拟合
  • 损失系数,可能在一次训练中有多个损失模块,那么不同模块的损失该如何划分配比,这也是需要我们考虑的,比如目标检测里,既有分类损失也有bbox回归损失,需要我们进行不同的损失配比设置
  • 优化器参数,不同的优化器选择,不同优化器的参数配置,对我们训练好模型算法也非常关键
  • 归一化方法,按照何种方式对输入数据进行归一化,避免数据分布多变令模型学习混乱
  • 数据增强方法控制,颜色空间扰动、随机裁剪、左右翻转、随机旋转等等,一般来说可以增加模型泛化能力
  • batch size批大小设定,不是越大的batchsize性能越好,这也依赖于训练的显存大小
  • 输入输出大小,不同的输入输出大小对算法性能也有影响,比如大的input size可能会带来更好的性能,输出的embedding size越大可能含有更多的语义信息
  • 模型的构造控制超参,比如定义ResNet有多少层,比如控制是否添加注意力机制SENet,甚至是模型深度和宽度,如MobileNet系列的Width multiplier,还有池化尺寸、池化方法
  • 模型参数的设定,比如卷积尺寸、卷积输入输出通道数、全连接层参数、权重初始化方法、避0最小值等等,这类会影响到参数量大小和计算量
  • 其他,比如多久进行一次模型评估,多久进行一次模型参数保存,训练信息输出,early stop的设定,epoch设定,等等

模型参数

模型参数是深度学习上下文中被训练和学习的变量,是模型被训练和需要学习的主体承载,其生存期为一整个训练过程,需要接受优化算法的迭代更新。在一次训练过程中,训练框架根据反向传播(backpropagation)算法计算出每一个模型参数当前的梯度,并用优化器(optimizer)根据梯度和学习率对参数进行迭代更新。最终我们得到最好模型性能就是由最优的一组模型参数决定的。

那么有哪些模型参数呢?

  • 各类卷积参数,其大小一般形如Cin x H x W x Cout大小
  • 偏置参数,与输出滤波器个数有关
  • 全连接参数,基本上与卷积参数类似,只是其核大小覆盖了整张特征图
  • BN参数,如moving_mean、moving_variance等
  • 激活层参数,比如PRELU的可学习参数
  • 其他,比如学习哪层特征图更重要的参数,还有希望可学习的参数设定

长期变量

长期变量指的是在整个训练上下文中持续存在,其生命周期存在于整个训练过程中,不会因为一个迭代的结束而被销毁的变量,这个可能与超参数有一定混淆和交织,因为超参数一般也有变量,比如动态调节的优化器参数,当然,所有的模型参数都是长期变量。

临时变量

临时变量指的是在一次迭代过程中使用的变量,其生命周期一般存在于一次迭代过程中,只供本轮迭代使用,当本轮迭代结束时其就被销毁,当新的迭代来临时其就会被建立,所以称其为临时变量。一般来说,输入数据、各层输出的特征图以及损失值等都是临时变量。

一般来说,超参数和模型参数是我们必须要掌握了解的,而长期变量和临时变量只是一个延伸,我们只需要了解其概念即可。

关于超参数、模型参数、长期变量和临时变量的概念你get到了吗?

来源:人工智能技术干货(AITechStudy)
原文链接:https://mp.weixin.qq.com/s/vn2pkNmdP0jzsFnzunI0TQ
声明:转载此文目的在于传递更多信息,版权归原作者所有。

最新文章