机器学习之模型训练概念

Learning Rate - 学习率

学习率(Learning Rate,LR)决定了模型参数的更新幅度,学习率越高,模型参数更新越激进,即相同 Loss 对模型参数产生的调整幅度越大,反之越越小。

如果学习率太小,会导致网络 loss 下降非常慢;如果学习率太大,那么参数更新的幅度就非常大,产生振荡,导致网络收敛到局部最优点,或者 loss 不降反增。

Batch Size

Batch size 是一次向模型输入的数据数量,Batch size 越大,模型一次处理的数据量越大,能够更快的运行完一个 Epoch,反之运行完一个 Epoch 越慢。

由于模型一次是根据一个 Batch size 的数据计算 Loss,然后更新模型参数,如果 Batchsize 过小,单个 Batch 可能与整个数据的分布有较大差异,会带来较大的噪声,导致模型难以收敛。

与此同时,Batch size 越大,模型单个 Step 加载的数据量越大,对于 GPU 显存的占用也越大,当 GPU 显存不够充足的情况下,较大的 Batch size 会导致 OOM,因此,需要针对实际的硬件情况,设置合理的 Batch size 取值。

在合理范围内,更大的 Batch size 能够

• 提高内存利用率,提高并行化效率; • 一个 Epoch 所需的迭代次数变少,减少训练时间; • 梯度计算更加稳定,训练曲线更平滑,下降方向更准,能够取得更好的效果;

对于传统模型,在较多场景中,较小的 Batch size 能够取得更好的模型性能;对于大模型,往往更大的 Batch size 能够取得更好的性能。

激活函数

激活函数用途

线性函数是一次函数的别称 ,则非线性函数即函数图像不是一条直线的函数。非线性函数包括指数函数、幂函数、对数函数、多项式函数等等基本初等函数以及他们组成的复合函数。

激活函数是多层神经网络的基础,保证多层网络不退化成线性网络

线性模型的表达能力不够,激活函数使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。

常见激活函数

  • sigmoid
  • softmax & tanh
  • ReLU
  • Swish

目前大模型在使用Swish。

损失函数

损失函数(loss function)就是用来度量模型的预测值f(x)与真实值Y的差异程度 (损失值)的运算函数,它是一个非负实值函数

损失函数仅用于模型训练阶段,得到损失值后,通过反向传播来更新参数,从而降低预测值与真实值之间的损失值,从而提升模型性能。

整个模型训练的过程,就是在通过不断更新参数,使得损失函数不断逼近全局最优点(全局最小值)

不同类型的任务会定义不同的损失函数,例如回归任务重的MAE、MSE,分类任务中的交叉熵损失等

损失函数分类

  • MSE & MAE
  • 交叉熵损失 - 经典且常用
    • 二分类
    • 多分类

使用总结 - 交叉熵损失函数与激活函数

对于不同的分类任务,交叉熵损失函数使用不同的激活函数(sigmoid/softmax)获得概率输出:

二分类

使用sigmoid和softmax均可,注意在二分类中,Sigmoid函数,我们可以当作成它是对一个类别的"建模",另一个相对的类别就直接通过1减去得到。而softmax函数,是对两个类别建模,同样的,得到两个类别的概率之和是1。

单标签多分类

交叉熵损失函数使用softmax获取概率输出(互斥输出)。

多标签多分类

交叉熵损失函数使用sigmoid获取概率输出。

相关推荐
东莞呵呵1 分钟前
从Linear到MLP AI模型的数学本质
人工智能·深度学习·机器学习
SmartBrain7 分钟前
Spring Boot 中常用注解总结(AI工程化)
java·人工智能·spring boot·后端
帐篷Li12 分钟前
Superpowers:让 AI 编程助手拥有专业级软件开发流程
人工智能·everything
明月照山海-14 分钟前
机器学习周报三十七
人工智能·机器学习
TOWE technology16 分钟前
从“制造”到“智造”:智能PDU如何成为智慧工厂的电力“神经中枢”
大数据·人工智能·制造·数据中心·电源管理·智能pdu
flying_131417 分钟前
图神经网络分享系列-HAN(Heterogeneous Graph Attention Network)(一)
人工智能·深度学习·图神经网络·异构图·han·节点级注意力·语义级注意力
MIka20 分钟前
CopilotKit 入门:用 Runtime 和 React Core 搭建真正可用的 AI Copilot
人工智能·typescript·agent
一 铭20 分钟前
Agent设计方式-工具调用:从自然语言到工具调用的桥梁
人工智能·大模型
用户48159301959121 分钟前
MCP vs Function Calling:两个总被搞混的概念,一次说清楚
人工智能
黄粱梦醒23 分钟前
OpenClaw-window安装教程以及通用常用命令
人工智能·llm