• 人工智能经常损失函数和优化算法


    前言

    在前面的文章中,我们了解到模型假设、评价函数(损失函数)和优化算法是构成模型的三个关键要素。刚学习人工智能的朋友肯定会有这样的疑问,是不是这三个关键要素都需要我们在日常工作中进行设计呢?其实啊,并不是这样,很多的框架都已经给我们提供了可供选择的损失函数和优化算法,只需要我们根据自己的业务场景来选择最适合的哪一个即可,是不是很easy?

    一、损失函数

    1、什么是损失函数?

            衡量模型预测值和真实值差距的评价函数被称为损失函数,说的再通俗一些,就是我们需要设计一个函数来评估预测值与真实值的差距范围,差距大说明模型还需要进一步优化。最简单的损失函数就是拿预测值减去真实值,然后求绝对值,如果预测的完全正确,那么绝对值的结果就是0。实际业务中我们不会选择这个函数,因为太简单了。

    2、常用的损失函数

    • MSE[均方误差Mean Square Error,二次损失Quadratic Loss,L2损失L2 Loss]
    • MAE[平均绝对误差Mean Absolute Error,L1损失L1 Loss]
    • Huber Loss[平滑的平均绝对误差]
    • Log-Cosh Loss[预测误差的双曲余弦的对数]
    • Quantile Loss[分位数损失]
    • Cross Entropy Loss(CE)[Log Loss、交叉熵损失]
    • Focal Loss
    • Relative Entropy [相对熵、KL散度(Kullback-Leibler divergence)]
    • Exponential Loss [指数损失] 
    • Hinge Loss [铰链损失、合页损失]

    二、优化函数

    1、什么是优化函数?

            前面我们说到了当计算出来预测值之后,通过损失函数就能计算出其与真实值之间的差距。算法训练的目标就是通过找到对应的模型参数,实现预测值与真实值的误差最小化。这个寻找最优模型参数的方法即为优化算法。

    2、常用的优化算法:

    • 梯度下降法
    • 随机梯度下降算法(Stochastic gradient descent SGD)
    • 动量法
    • AdaGrad
    • RMSProp
    • Adam

    三、扩展知识:

    1、学习率:

            每次参数值沿着梯度反方向变动的大小,即每次移动的步长

    2、mini-batch

            每次迭代时抽取出来的一批数据被称为一个mini-batch。


    3、batch_size:

            一个mini-batch所包含的样本数目称为batch_size。


    4、epoch:

            当算法训练的时候,按mini-batch逐渐抽取出样本,当把整个数据集都遍历到了的时候,则完成了一轮训练,也叫一个epoch

  • 相关阅读:
    C ++ 学习之分文件 实现类
    Python 自动化(十七)ORM操作
    Flask Web——数据库
    Android触摸屏TP crah 日志 addr2line
    docker能干什么以及基本名词解释
    Linux-MySQL数据库之高级SQL 语句二
    Redis非关系型数据库
    十七、W5100S/W5500+RP2040树莓派Pico<HTTP Server网页显示>
    【LeetCode】383. 赎金信
    .NET周报【10月第2期 2022-10-17】
  • 原文地址:https://blog.csdn.net/duzm200542901104/article/details/127676528