神经网络的优化:损失函数

损失函数

损失函数是用来表示预测值(y:通常由前向传播得到)与答案(y_)的差距。在训练神神经网络是,通过不断的改变神经网络中所有的参数,使损失函数(loss)不断减小,从而训练初更准确的神经网络模型。

常用的损失函数

常用的损失函数有:均方误差、交叉熵和自定义

1)均方误差(MSE)

在tensorflow中:

loss_mse = tf.reduce_mean(tf.square(y-y_))

2)交叉熵

cross_entropy = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y,1e-10,1.0)))

其中

y_代表正确结果;y代表预测结果

这一行代码包含了四个运算:

tf.clip_by_value():将一个张量限制在一定的范围内

tf.log():求对数

* :矩阵的乘法

tf.reduce_mean():对整个矩阵做平均

交叉熵一般会和softmax回归一起使用,TensorFlow对着两个函数进行了封装,如下:

cross_entropy = tf.nn.softmax_cross_entropy_with_ligits(labels=y_,logits=y)

其y代表了原始神经网络的输出结果,而y_代表标准答案。

3)自定义损失函数

 

猜你喜欢

转载自blog.csdn.net/plSong_CSDN/article/details/86604497
今日推荐