zoukankan      html  css  js  c++  java
  • tf常见的损失函数(LOSS)总结

    运算公式

    1、均方差函数
    均方差函数主要用于评估回归模型的使用效果,其概念相对简单,就是真实值与预测值差值的平方的均值,具体运算公式可以表达如下:

    [Q=frac{1}{m}sum_{i=1}^{m}(f(x_i)-y_i)^2 ]

    其中(f(x_i))是预测值,(y_i)是真实值
    在二维图像中,该函数代表每个散点到拟合曲线y轴距离的总和,非常直观。


    2、交叉熵函数
    出自信息论中的一个概念,原来的含义是用来估算平均编码长度的。在机器学习领域中,其常常作为分类问题的损失函数。

    [Q=-frac{1}{m}sum_{i=1}^{m}(y_ilog(f(x_i))+(1-y_i)los(1-f(x_i))) ]

    其中(f(x_i))是预测值,(y_i)是真实值
    交叉熵函数是怎么工作的呢?假设在分类问题中,被预测的物体只有是或者不是,预测值常常不是1或者0这样绝对的预测结果,预测是常用的做法是将预测结果中大于0.5的当作1,小于0.5的当作0。此时假设如果存在一个样本,预测值接近于0,实际值却是1,那么在交叉熵函数的前半部分:

    [y_ilog(f(x_i)) ]

    其运算结果会远远小于0,取符号后会远远大于0,导致该模型的损失函数巨大。通过减小交叉熵函数可以使得模型的预测精度大大提升。


    tensorflow种损失函数的表达
    1、均方差函数

    loss = tf.reduce_mean(tf.square(logits-labels))
    loss = tf.reduce_mean(tf.square(tf.sub(logits, labels)))
    loss = tf.losses.mean_squared_error(logits,labels)
    

    2、交叉熵函数

    loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=y,logits=logits)
    #计算方式:对输入的logits先通过sigmoid函数计算,再计算它们的交叉熵
    #但是它对交叉熵的计算方式进行了优化,使得结果不至于溢出。
    loss = tf.nn.softmax_cross_entropy_with_logits(labels=y,logits=logits)
    #计算方式:对输入的logits先通过softmax函数计算,再计算它们的交叉熵,
    #但是它对交叉熵的计算方式进行了优化,使得结果不至于溢出。
    
  • 相关阅读:
    Spring Boot 2.1.10 学习笔记(2)
    Spring Boot 2.1.10 学习笔记(1)
    Win10 下载与激活 MSDN
    Java JDK 1.8 下载及其版本说明 8u202(最后一个免费版)
    shell函数开发意见优化系统脚本
    php大文件下载支持断点续传
    xunsearch使用笔记
    微信使用的curl方法
    php执行sql语句打印结果
    二维数组排序:array_orderby(php官网评论)
  • 原文地址:https://www.cnblogs.com/nanjibin/p/14893549.html
Copyright © 2011-2022 走看看