交叉熵损失函数(cross entropy)
分类问题中使用比较广的一种损失函数。
刻画两个概率分布之间的距离。
给定两个概率分布p和q,通过q来表示p的交叉熵为:
在tensorflow中交叉熵,实现代码1:
cross_entropy= -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))
其中,y_表示预测值,y表示实际输出。tf.clip_by_value()函数将一个张量的数值控制在一个范围之内,可以避免一些错误,如log0无效等。
交叉熵一般与softmax回归一起使用,实现代码2:
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y,y_)
其中,y_表示预测值,y表示实际输出。该函数的功能是自动计算logits(未经过Softmax)与labels之间的cross_entropy交叉熵。
均方误差损失函数(MSE,mean squared error)
回归问题最常用的损失函数
使用tensorflow实现代码1:
mse = tf.reduce_mean(tf.square(y_-y))
其中,y_表示预测值,y表示实际输出。
实现代码2:
mse = tf.loss.mean_squared_error(y_,y)
其中,y_表示预测值,y表示实际输出。