深度神经网络训练参数优化概论


前言

一、深度学习之向量化与矩阵化

线性回归向量化的实现

公式:

z = W T X + b {z = W^T X + b} z=WTX+b

z = w 1 ∗ x 1 + w 2 ∗ x 2 + . . . + b ( 神经元 ) {z = w_1*x_1 +w_2*x_2 + ... + b(神经元)} z=w1x1+w2x2+...+b(神经元)

1、非向量化代码实现


for i in rang(n):
    z += w[i] * x[j];

z += b;

2、向量化的代码实现


w_t = w.T;
z = np.dot(w_t, x) + b;

在这里插入图片描述

二、深度神经网络之L2正则化

为了让模型更“规则” 或 “平滑”从而得到更稳定,泛化能力更强的模型

作用是降低更过拟合问题

拟合与代价函数

  • 拟合: 模拟,合成为一条线
  • 损失函数: L(i)(w, b) = 1/2(y^(i) - y(i))2
  • 代价函数:J(w, b) = 1/m(w, b)
  • 结果越小, 拟合效果越好

一条直线上的误差
在这里插入图片描述

三、深度神经网络之Dropout

  1. L2正则化虽然可以有效降低过拟合,但也有局限性
  2. 当神经网络特别复杂时,仍然会出现过拟合
  3. 一种新的正则化提了出来, 就是Dropout

1、 Dropout如何工作

  1. 在神经网络的每一层随机让一下神经元失效

2、经典 Dropout 示例:训练 vs 推理

在这里插入图片描述

四、深度神经网络之数据归一化处理

输入数据归一化的好处

  1. 加快收敛速度: 归一化使不同特征大小相似
  2. 避免梯度消失: 归一化可以防止输入范围过大或过小
  3. 提高模型的稳定性和泛化性
  4. 简化特征空间的映射关系

在这里插入图片描述

五、深度神经网络之初始化权重参数

1、 0 初始化

  1. 将所有的权重初始化为0
  2. 这种方式会带来严重问题,看个具体的例子
  3. 当w=0时,wx+b=b,反向传播时梯度消失
  4. 因此, 也无法有效训练模型

2、随机初始化

  1. 使用均匀分布或正态分布的随机数初始化
  2. 当随机数没有选好,也会出现梯度消失

3、Xavier初始化

  1. 专门针对sigmoid/tanh激活函数的初始化方法
  2. 可以使每一层输入与输出方差尽量保持一致
  3. 有效防止梯度消失或爆炸
  4. sigmoid/tanh很少使用,所以这种方法用的不多

4、He初始化

  1. He是由何凯明团队发明的
  2. 它是专门针对ReLU激活函数的初始化方法
  3. 公式: 2 n {\sqrt{\frac{2}{n}}} n2

六、深度神经网络之全批量梯度下降、随机梯度下降和小批量梯度下降(mini-batch size)

使用整个数据集计算梯度, 之后在更新模型参数

随机梯度下降与小批量梯度下降

1、随机梯度下降

随机梯度下降也称SGD,每次使用一个样本进行梯度更新

随机梯度降的优缺点

  1. 每次使用一个样本更新一次参数,计算量小
  2. 它可以更快地进行参数调整,有可能加速训练过程
  3. 无法充分利用GPU硬件
  4. 收敛不稳定,容易出现较大的抖动
2、 小批量梯度下降

将数据集分成多个小批次, 每个批次都更新一个模型参数

小批量的优点

  • 学习的更快:梯度下降的速度比全批量梯度下降的速度快
  • 收敛稳定:它比随机梯度下降收敛的更稳定
  • 利用GPU硬件更充分

小批量的缺点

  • 引入了新的超参数: mini-batch size
  • 如果超参数设置不好, 会引起梯度下降的剧烈震荡

七、深度神经网络之梯度参数调优

  • 动量梯度下降: 提出了参考历史梯度来平滑梯度震荡
  • RMSProp: 提粗了通过历史梯度的倒数控制学习率控制震荡
  • Adam: 动量梯度下降 + RMSProp 的结合

八、深度神经网络之参数优化(BatchNormaliztion)

  1. 输入数据归一化, 可以加速收敛
  2. Batch normatch是对隐藏层的数据归一化

1、Batch Normaliztion的作用

  1. 与输入数据归一化类似, 可以加速训练的收敛
  2. 同事提升模型的稳定性
  3. 在使用小批量梯度下降时使用
  4. 用在神经网络的隐藏层

总结

AI、ML、LLM和AIGC算法应用及其探索项目地址:https://chensongpoixs.github.io/LLMSAPP/

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐