神经网络模型的效果以及优化的目标是通过损失函数(loss function)来定义的。下面主要介绍适用于分类问题和回归问题的经典损失函数,并通过TensoFlow实现这些损失函数。
分类问题请参考:【分类问题损失函数——交叉熵】
回归问题解决的是对具体数值的预测,比如房价预测、销量预测等等,解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。本文主要介绍回归问题下的损失函数——均方误差(MSE,mean squared error)。
它的定义如下:
M
S
E
(
y
,
y
′
)
=
∑
i
=
1
n
(
y
i
−
y
i
′
)
2
n
MSE(y,y')=\frac{\sum^n_{i=1}(y_i-y_i')^2}{n}
MSE(y,y′)=n∑i=1n(yi−yi′)2
其中,
y
i
y_i
yi为一个batch中第 i 个数据的正确答案,
y
i
′
y'_i
yi′为神经网络给出的预测值。
下面代码展示如何用Tensor实现均方差损失函数:
mse = tf.reduce_mean(tf.square(y_ - y))
tf.reduce_mean
:所有元素的均值。
y_
:标准答案
y
:神经网络输出的答案