损失函数的选择

github博客传送门
csdn博客传送门

损失函数的迭取取决于输入标签数据的类型:如果输入的是实数,无界的值,损失函数使用平方差;如果输入的标签是位矢量(分类标志)使用交叉熵会更合适

均值平方差(Mean Squared Error, MSE)也称均方误差
神经网络中:表达预测值与真实值之间的差异
数理统计中:指参数估计值与参数真值之差平方的期望值
均方误差的值越小,表明模型越好


MSE: Mean Squared Error

均方误差是指参数估计值与参数真值之差平方的期望值;
MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
$$ MSE = \frac{1}{N}\sum_{t=1}^{N}\left ( obersved_{t} - predicted_{t} \right )^{2} $$
程序写法:

MSE=tf.reduce_mean(tf.pow(tf.sub(logits, outputs), 2.0))
MSE=tf.reduce_mean(tf.square(tf.sub(logits, outputs)))
MSE=tf.reduce_mean(tf.square(logits - outputs))

RMSE

均方误差:均方根误差是均方误差的算术平方根
$$ RMSE = \sqrt{\frac{1}{N}\sum_{t=1}^{N} \left ( obersved_{t} - predicted_{t} \right)^{2} } $$
程序写法:

RMSE=tf.sqrt(tf.reduce_mean(tf.pow(tf.sub(logits, outputs), 2.0)))

MAE :Mean Absolute Error

平均绝对误差是绝对误差的平均值
平均绝对误差能更好地反映预测值误差的实际情况.
$\widehat{y}$ 表示预测值 $y$ 表示真实值
$$ MAE = \frac{1}{N}\sum_{t=1}^{N}\left | (\widehat{y}-y) \right | $$
程序写法:

MAE=tf.reduce_mean(tf.abs(tf.sub(logits, label)))

SD :standard Deviation

标准差:标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组组数据,标准差未必相同。
$u$表示平均值$\left ( u = \frac{1}{N}\left ( x_{1}+\cdot \cdot \cdot + x_{N} \right ) \right )$
$$ SD = \sqrt{\frac{1}{N}\sum_{t=1}^{N}\left ( x_{i}-u \right )^{2}} $$
程序写法:

SD=tf.sqrt(tf.reduce_mean(tf.pow(tf.sub(x_i-u), 2.0)))
posted @ 2018-11-04 15:14  账号  阅读(776)  评论(0编辑  收藏  举报