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


    前言

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

  • 相关阅读:
    ChartDirector for C++ 7.1 / Linux/ Win
    Test 测试类中引用 Service 对象报空指针异常 NullPointerException
    【计算机视觉 | 图像模型】常见的计算机视觉 image model(CNNs & Transformers) 的介绍合集(四)
    银行业务队列简单模拟(队列应用)
    大结局:奥特曼等人将加入微软
    【编程题】【Scratch二级】2022.03 跳跃游戏
    数据分析与Excel(一)
    Redhat(5)-ansible-loop-handler-errors-tags
    Spring Boot对接RocketMQ示例
    【HarmonyOS NEXT】鸿蒙 代码混淆
  • 原文地址:https://blog.csdn.net/duzm200542901104/article/details/127676528