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函数计算,再计算它们的交叉熵,
    #但是它对交叉熵的计算方式进行了优化,使得结果不至于溢出。
    
  • 相关阅读:
    数组
    js--函数
    for循环
    运算符
    js 正则表达式
    js DOM节点
    js 字符串
    js 函数
    2018-12-26 课堂笔记 for循环
    2018-12-25 课堂笔记 js
  • 原文地址:https://www.cnblogs.com/nanjibin/p/14893549.html
Copyright © 2011-2022 走看看