矩阵机器学习的 MSE 损失
MSE Loss for matrix Machine Learning
我有一个模型,每个时期后有 N
个输入和 6
个输出。
我的输出看起来像,[x y z xx yy zz]
,我想最小化每一项的 MSE。但是,我注意到当我使用 MSE 作为损失函数时,它只是取整个集合的平方和的平均值。
您必须创建一个等于 MSE 的张量并将其最小化。
mse = tf.reduce_mean(tf.square(outputs))
train_step = tf.train.*Optimizer(...).minimize(mse)
for _ in range(iterations):
sess.run(train_step ... )
我认为他们的意思是一样的。让我们用 [x_i, y_i, z_i, xx_i, yy_i, zz_i]
表示您对 i^th
个样本的预测。真实值由 [t_x_i, t_y_i, t_z_i, t_xx_i, t_yy_i, t_zz_i]
表示
在一批 N
个样本中,您想最小化:
L = \sum_i=1^N ((x_i-t_x_i)^2)/N + ... + \sum_i=1^N ((zz_i-t_zz_i)^2)/N
MSE 损失将最小化以下内容:
L = (1/N) * \sum_i=1^N ((1/6) * [(x_i - t_x_i)^2 + ... + (zz_i-t_zz_i)^2])
可以看到两者最终都最小化了相同的数量。
如果您的六个输出是独立变量,我认为这将是正确的,我认为它们是,因为您将它们建模为六个不同的输出和六个基本事实标签。
我有一个模型,每个时期后有 N
个输入和 6
个输出。
我的输出看起来像,[x y z xx yy zz]
,我想最小化每一项的 MSE。但是,我注意到当我使用 MSE 作为损失函数时,它只是取整个集合的平方和的平均值。
您必须创建一个等于 MSE 的张量并将其最小化。
mse = tf.reduce_mean(tf.square(outputs))
train_step = tf.train.*Optimizer(...).minimize(mse)
for _ in range(iterations):
sess.run(train_step ... )
我认为他们的意思是一样的。让我们用 [x_i, y_i, z_i, xx_i, yy_i, zz_i]
表示您对 i^th
个样本的预测。真实值由 [t_x_i, t_y_i, t_z_i, t_xx_i, t_yy_i, t_zz_i]
在一批 N
个样本中,您想最小化:
L = \sum_i=1^N ((x_i-t_x_i)^2)/N + ... + \sum_i=1^N ((zz_i-t_zz_i)^2)/N
MSE 损失将最小化以下内容:
L = (1/N) * \sum_i=1^N ((1/6) * [(x_i - t_x_i)^2 + ... + (zz_i-t_zz_i)^2])
可以看到两者最终都最小化了相同的数量。
如果您的六个输出是独立变量,我认为这将是正确的,我认为它们是,因为您将它们建模为六个不同的输出和六个基本事实标签。