Hinge损失函数主要用来评估支持向量机算法,但有时也用来评估神经网络算法。下面的示例中是计算两个目标类(-1,1)之间的损失。下面的代码中,使用目标值1,所以预测值离1越近,损失函数值越小:
# Use for predicting binary (-1, 1) classes
# L = max(0, 1 - (pred *actual))
hinge_y_vals= tf.maximum(0., 1. -tf.multiply(target, x_vals))
hinge_y_out= sess.run(hinge_y_vals)
两类交叉函数熵损失函数(Cross-entropy loss)有时也作为逻辑损失函数,比如,当预测两类目标0或者1时,希望度量函数预测值到真实分类值(0或者1)的距离,这个距离经常是0到1之间的实数。
# L = -actual * (log(pred)) - (1-actual)(log(1-pred))
xentropy_y_vals= - tf.multiply(target, tf.log(x_vals)) - tf.multiply((1. - target), tf.log(1. -x_vals))
xentropy_y_out= sess.run(xentropy_y_vals)
Sigmoid交叉熵损失函数与上一个损失函数非常类似,有一点不同的是,它先把想x_vals值通过sigmoid函数转换,再计算交叉熵损失:
# L = -actual * (log(sigmoid(pred))) - (1-actual)(log(1-sigmoid(pred)))
# or
# L = max(actu