深度学习训练用激活损失函数和技巧
2023-7-21
| 2023-11-17
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password

1. 激活函数

1. ReLU

线性整流函数(Linear rectification function), 又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function), 通常指代以斜坡函数及其变种为代表的非线性函数.
notion image

2. Sigmoid

  • 缺点
    • sigmoid有一个梯度消失的问题, (变量值很大或很小)的时候, 梯度就快消失了(趋近于0).
notion image

3. Tanh

notion image

4. Logistic Regression (LR 逻辑回归)

  • sigmoid函数
  • LR 模型是用线性回归模型的结果逼近真实标记 ( ) 的对数几率 (log odds,logit). 所谓的几率表示事件发生的概率 与事件不发生的概率 之比
    • 那么对数几率就是对几率取自然对数的结果
 
  • 给定一组训练数据, 要求解上述的条件概率分布, 可以应用极大似然估计法 (Maximum Likelihood Estimation, MLE) 估计模型的参数. 极大似然估计, 即是对样本的似然函数 L 进行求参.
    • , 似然函数为:
      对数似然函数(求最大化):
    • 最后的优化问题(转化为最小化):
      针对上述最小化问题,采用 Newton method, quasi-Newton method (BFGS, L-BFGS), conjugate gradient 或者梯度下降法 (引入超参数 ) , SGD 等等求都可以.
      之后就是求解.

5. 多项逻辑回归模型(Multinomial Logistic Regression; softmax regression)

2. 损失函数

  • 损失函数的目的: 度量真实值和预测值之间的距离

2.1. 交叉熵(cross entropy)

2.1.1. cross entropy

  • categorial_crossentropy函数和sparse_categorial_crossentropy函数:
    • 相同之处在于它们的 都在 之间
    • 不同在于:
      • 如果 的结果是one-hot encoded, 就是用categorical_crossentropy. 例(三分类问题): .
      • 如果 的结果是整型, 使用sparse_categorical_crossentropy. 例(三分类问题): .

2.1.2. Binary cross entropy

  • 二元交叉熵是二分类问题中常用的一个Loss损失函数, 是用来评判一个二分类模型预测结果的好坏程度. 公式如下:
    • 其中, 是二元标签 0 或者 1, 是模型的预测值为标签 的概率
    • 之所以加负号是因为概率在, 取log之后是负的, 用负数表示信息不符合我们的认知逻辑,所以取负让结果为正.
    • 就是说模型预测值越接近于gt值, loss越小; 越远离gt值, loss越大.
      • 对于标签 为 1 的情况, 如果预测值 趋近于 1, 那么损失函数的值应当趋近于 0. 反之, 如果此时预测值 趋近于 0, 那么损失函数的值为 . 如下图所示.
        • notion image
      • 对于标签 为 0 的情况如下
        • notion image
       

2.2. Softmax (归一化指数函数)

notion image
将原本的输出映射到区间之间, 所有的值和为1
算是一种概率
好处:
  • 求导方便

3. 过拟合问题

当讨论到模型的过拟合问题时, 不妨对算法的期望泛化误差进行讨论。我们已经知道: 泛化误差可 以分解为 bias, variance, noise 之和
偏差 (bias) 衡量模型的期望预测与真实结果的偏离程度(模型的拟合能力);方差 (variance) 衡量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动 (数据变化对模型预测能力)所造成的影响(或者理解为在测试集上的表现)。噪声表达了在 当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度.
  • 过拟合: low bias, high variance
  • 欠拟合: high bias, low varience

3.1. 一般处理方法

  1. 减少特征的数量: 人工篮选特征、嵌入式选择
  1. 正则化:保持所有特征当时减小或者增大特征参数 , 使得所有变量对最终的预测只贡献一 点比例
  • 这里一般采用L1或L2正则化:(损失函数推导见拓展部分)

    4. Dropout

    • 以一定的概率随机地“临时丢弃”一部分神经元节点.
    • 优点, 解决过拟合的原因:
      • 训练时:
        • 减小网络的大小
        • 减少神经元之间复杂的共适应关系(co-adaptations), 这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在某个特定特征下才有效果的情况.
          • 人工神经网络的一个核心思想是分布式表征(Distributed Representation), 当我们表述一个概念的时候, 神经元和概念之间不是一对一对应映射(map)存储的,它们之间的关系是多对多。当一个节点发生故障的时候, 其他对应的节点能表达概念.
        • 每次迭代所得到的不同结构的神经网络, 比只在单个健全网络上进行特征学习, 其泛化能力来得更加健壮.
      • 测试时:
        • 将参与学习的节点和那些被隐藏的节点以概率p加权求和,综合计算得到网络的输出。(算是一种集成学习(Ensemble Learning))
    notion image
    • 训练阶段每个神经元以概率p被保留
    • 测试阶段每个神经元都激活, 权重W要乘以p, 输出pW
      • 因为输入将被dropout的神经元的值为, 训练时dropout之后的期望是, 在预测阶段总是激活, 所以为了保持相同的输出期望, 所以.

    5. 目标函数, 代价函数, 损失函数

    1. 代价函数:
        • 代价函数=损失函数, loss function越小, 标识模型对数据的拟合越好
    1. 目标函数:
        • 在代价函数的最优化经验风险的基础上加入优化结构风险策略(eg: L2正则化)的函数表达式. 不加结构风险策略时, 目标函数就与代价函数一致了.

    6. 损失函数的使用场景

    notion image

    7. k-fold交叉验证 Method of Stacking

    notion image
    1. (左半边) 训练时每个model都用k-fold cross validation训练得到k个模型,测试时每个model的k个模型预测测试集得到的结果取平均
    1. (右半边) 训练时使用level2 model训练 验证集的合集和训练集,测试时使用level2 model来预测
  • Deep Learning
  • 目标检测问题常用的模型数据结构与算法
    • Giscus
    目录