- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我面临的情况是,我需要训练模型来预测标量值,并且重要的是使预测值与真实值的方向相同,同时平方误差最小。
什么是损失函数的最佳选择?
例如:
假设预测值为 -1,真实值为 1。两者之间的损失应该比 3 和 1 之间的损失大很多,即使 (3, 1) 和 (- 1, 1) 相等。
非常感谢!
最佳答案
事实证明这是一个非常有趣的问题 - 感谢您提出这个问题!首先,请记住,您希望损失函数完全由微分运算定义,以便您可以通过它进行反向传播。这意味着任何旧的任意逻辑都不一定有效。重述您的问题:您想要找到两个变量的可微函数,当两个变量具有不同符号的值时,该函数会急剧增加,而当它们具有相同符号时,该函数会更慢地增加。此外,您还希望能够控制这些值相对于彼此的增长速度。因此,我们需要具有两个可配置常量的东西。我开始构建一个满足这些需求的函数,但后来想起了你可以在任何高中几何教科书中找到的一个函数:elliptic paraboloid !
标准的表述不符合符号协议(protocol)对称性的要求,所以我不得不引入一个rotation 。上图就是结果。请注意,当符号不一致时,它会急剧增加,而当符号不一致时,它会急剧增加,并且控制此行为的输入常量是可配置的。下面的代码是定义和绘制损失函数所需的全部代码。我认为我以前从未使用过几何形式作为损失函数 - 非常简洁。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
def elliptic_paraboloid_loss(x, y, c_diff_sign, c_same_sign):
# Compute a rotated elliptic parabaloid.
t = np.pi / 4
x_rot = (x * np.cos(t)) + (y * np.sin(t))
y_rot = (x * -np.sin(t)) + (y * np.cos(t))
z = ((x_rot**2) / c_diff_sign) + ((y_rot**2) / c_same_sign)
return(z)
c_diff_sign = 4
c_same_sign = 2
a = np.arange(-5, 5, 0.1)
b = np.arange(-5, 5, 0.1)
loss_map = np.zeros((len(a), len(b)))
for i, a_i in enumerate(a):
for j, b_j in enumerate(b):
loss_map[i, j] = elliptic_paraboloid_loss(a_i, b_j, c_diff_sign, c_same_sign)
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y = np.meshgrid(a, b)
surf = ax.plot_surface(X, Y, loss_map, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
plt.show()
关于machine-learning - 什么是惩罚幅度和符号差异的良好损失函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50711530/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
如果我使用 Eigen 的成员函数 Matrix3Xf 矩阵 myMatrix.middleCols(a, b) with a = 0, b = myMatrix.cols() -1,我得到了性能损失
我有一个关于 SEO 的小问题,尤其是对于 Google。在 WooCommerce 中,您可以将产品添加到类别中,也可以为产品添加产品标签。 所以我的问题是,当我有一个产品,例如梅赛德斯汽车,并将其
我正在制作一个网站,该网站将对 Internet 上数十万个其他网站的隐私政策进行审查。它的初始内容基于我对 CommonCrawl 的运行50 亿页网页转储和 analyzing all the p
我正在考虑使用 HTML5 数据属性来更轻松地为我的应用程序编写第三方脚本。因此,考虑两种情况: 页面上有 10'000 个 HTML 元素,如 Sticker . 还有其他 10,000 个 HTM
像这样在相应的设备上显示视网膜和非视网膜: 有效。但是 Google Pagespeed Insight 告诉我们在加载 CSS 之前它无法呈现它,我们因此受到惩罚。但是,仅在移动
我正在开发一个基于 Bootstrap 的响应式网站。主网站导航中的下拉菜单是通过单击而不是悬停打开的。每个部分没有索引内容,只有下拉列表中的特定页面链接。 如果内容位于: 是否会受到 SEO 惩罚
给定 vector 加法: NPNumber NPNumber::plus(const double o) const { vector c; for (double a : va
我正在使用带有 LogisticRegression 的嵌入式方法(L1 - Lasso)运行分类问题的特征选择过程。 我正在运行以下代码: from sklearn.linear_model imp
我是一名优秀的程序员,十分优秀!