zoukankan      html  css  js  c++  java
  • 盘点深度学习中的损失函数

    损失函数度量的是训练的模型与真实模型之间的距离。一般以最小化损失函数为目标,对模型进行不断优化。

    常见的损失函数在计算过程中都会接受两个参数:模型预测值y_pred和正确答案y_true

    由于背后的数学计算过程相同,所以即使是不同深度学习框架这些损失函数的api也是大同小异。本文以keras为例,罗列出几个常见的损失函数。

    均方误差 mean squared error, MSE

    回归任务常用的损失函数,也是最简单粗暴的损失函数。

    loss = mean(square(y_true - y_pred), axis=-1)
    

    api: keras.losses.mean_squared_error(y_true, y_pred)

    平均绝对误差 mean absolute error, MAE

    loss = abs(y_true - y_pred)
    

    api: keras.losses.mean_absolute_error(y_true, y_pred)

    mean absolute percentage error

    没了解过,先记着。

    loss = 100 * abs(y_true - y_pred) / y_true
    

    api:keras.losses.mean_absolute_percentage_error(y_true, y_pred)

    hinge loss

    合页损失函数

    loss = mean(maximum(1 - y_true * y_pred, 0), axis=-1)
    

    api: keras.losses.hinge(y_true, y_pred)

    相对熵 Kullback-Leibler divergence, KL散度

    loss = y_true * log(y_true / y_pred)
    

    api: keras.losses.KLD()

    sparse categorical crossentropy

    稀疏的类别交叉熵,主要用于多分类。

    其中y_pred是一般是未经处理的logits,当然也可以是softmax归一化后的概率分布(keras默认)

    y_true是标签

    categorical crossentropy

    类别交叉熵,和sparse categorical crossentropy唯一的区别就是,这里的y_true是one-hot形式

    binary_crossentropy 二元交叉熵

    对于二分类的问题,多分类的交叉熵直接使用二元交叉熵

    api:keras.losses.binary_crossentropy(y_true, y_pred, from_logits=False, label_smoothing=0)

    余弦相似度

    余弦相似度是两个向量的夹角的余弦值。

    一般计算方法为:

    [cosine\_similarity = frac{a cdot b}{||a|| ||b||} ]

    keras计算的时候,会把上式拆成两个l2_norm的相乘:

    loss = -sum(l2_norm(y_true) * l2_norm(y_pred))
    

    这里的l2_norm就是

    [l2\_norm(x) = frac{x}{max(sum_i x_i^2, epsilon)} ]

    epsilon就是为了避免向量的元素和为0

    api: keras.losses.cosine_similarity(y_true, y_pred, axis=-1)

    keras把计算的值取负了,这样越接近-1相似度越高。


  • 相关阅读:
    判断页面访问端是电脑还是手机?
    Vue使用总结
    JS面向对象,创建,继承
    你不得不知的逻辑或(||)与(&&)非(!)
    前端必备PS技巧
    你真的熟悉background吗?
    JS运动从入门到兴奋1
    过目不忘JS正则表达式
    W3C、MDN及html常用标签介绍
    js数据处理-----数据拷贝
  • 原文地址:https://www.cnblogs.com/YoungF/p/13419760.html
Copyright © 2011-2022 走看看