如何对包含实际值的损失函数进行归一化?

How to Normalise a loss function containing actual values?

提问人: 提问时间:10/23/2023 最后编辑:kjetil b halvorsen 更新时间:10/28/2023 访问量:16

问:

此问题是从 Stack Overflow 迁移而来的,因为它可以在交叉验证中回答。28 天前迁移

我定义了一个损失函数,我正在尝试优化它,它由两个元素组成。假设 A 和 B:

w1 * (a_actual - a_measured)^2 + w2* (b_actual - b_measured)^2

我正在尝试通过将 w1 和 w2 都设置为 1 来简化优化过程。我希望两个项具有相同的贡献,但 an 和 b 具有不同的量表。除以平均值是行不通的,因为这也会导致权重不相等。最好的方法是什么?

优化 归一化 损失函数

评论

1赞 Stephan Kolassa 10/26/2023
根据定义,您有一个多准则优化问题,不幸的是,您将无法理解 a 和 b 中的错误之间可以接受的权衡。如果你想让这两个术语有“相同的贡献”,意味着你需要决定“相同”的含义,也就是说,你需要决定如何比较(错误)a和b。你需要决定如何比较你的苹果和你的橙子。

答:

0赞 Ralf Ulrich 10/25/2023 #1

这是 w1/2 的工作。你不能把它们丢掉。损失函数的确切定义会影响结果及其解释。如果您期望获得真正有意义的结果,最好使用 chi-2 或对数似然损失函数,并具有清晰易懂的统计数据。

细节很大程度上取决于你手头的数据,你在问题中没有说明这一点。例如,如果 as 和 bs 是测量值,具有实际测量不确定度 Ea 和 Eb,则可以使用:

w1=1/Ea^2w2=1/Eb^2

如果你对不确定性一无所知,但你的数据是“计数”数据,你可以假设泊松误差:

w1=1/a_actual和(如果值为零,则使用值)。w2=1/b_actualexpectedactual

或者,如果您知道数据的方差/RMS,您也可以使用以下方法:

w1=1/VarA和。w2=1/VarB

正如你自己尝试的那样,使用平均值在统计方面是没有意义的。

考虑到在所有这些情况下,优化的期望值肯定会随着 w1 和 w2 的选择而变化。所以它们绝对重要。合理优化的另一个结果是轮廓,或“误差”(或您想如何称呼它),在这里,w1 和 w2 的选择更为重要。1-sigma

如果想优化某些东西,我想了解结果的不确定性。你可能需要多考虑一下......

0赞 cjk #2

如果停止所有服务使其正常工作,请尝试一次停止一个服务。最终你会发现它是哪一个。

希望有人能从经验中知道它是什么,但如果没有,你可以自己找到它。

0赞 Zhaph - Ben Duguid #3

听起来您有代理服务器问题 - 您检查过了吗?

KB886388 - 浏览本地 Web 应用程序时,可能会收到“无法连接到 Web 服务器”错误消息

评论

0赞 Puneet 3/10/2009
我没有安装任何代理服务器。这是我的家用机器。但是,我确实按照给定的步骤进行了操作,但没有帮助。注意:从今天早上开始,我发现另一个人遇到了同样的问题。看起来它可能与 Windows 更新有关!
12赞 Josh #4

我能够通过执行以下操作在我的计算机上解决此问题:

我的主机文件包含 localhost 条目的这一行,这是 Vista 附带的主机文件,我从未修改过这一行 ::1 本地主机

将“::1 localhost”替换为: 127.0.0.1 本地主机

“::1 localhost”对我来说已经工作了一年多,直到今天早上。Windows defender安装了两个更新,一个是昨天,一个是今天早上,我的猜测是其中一个更新中的某些内容导致此条目不再起作用。

评论

0赞 Samantha Branham 3/11/2009
请注意,您实际上不必替换 ::1。您可以在 127.0.0.1 的文件中添加一个单独的条目,它应该可以工作。
0赞 friism 4/22/2009
我的英雄。如果在 Vista 上,请记住,只有在以管理员身份运行记事本时才能修改主机
0赞 Adam Berent 6/15/2009
Vista 中的主机文件位于:C:\Windows\System32\drivers\etc 文件名称为主机
0赞 2 revssalle55 #5

我今晚也开始遇到这个问题,以为我昨天安装了 Windows 更新包。
我正在运行 VS 2008 (9.0.30729.1 SP) 和 Vista Ultimate SP1(32 位)。

用 127.0.0.1 替换 localhost 对我有用。

http://localhost:49227/testsite/Default.aspx http://127.0.0.1:49227/testsite/Default.aspx

0赞 david #6

我有同样的问题。昨晚在我的网站上工作,前一分钟该网站在浏览器中工作,下一分钟它无法连接到本地主机。

将 localhost 替换为 127.0.0.1 对我有用。我仍然没有 asp.net 经验,有没有你更改的文件

http://localhost:49227/testsite/Default.aspx

http://127.0.0.1:49227/testsite/Default.aspx

因为我只是在浏览器中更改网址

0赞 Cherry #7

这个也对我有用。我所做的是:

  1. 转到我的项目的属性页。
  2. 然后在“开始选项”下,查找“服务器”,而不是“使用默认 Web 服务器”,而是将其更改为“使用自定义服务器”。
  3. 在基 URL 中键入 http://127.0.0.1:49227/MyProject/

就是这样。它使用此链接自动打开站点。

1赞 Satyaa #8

我已经解决了这个问题。

问题来了,因为不知何故,host文件中的条目被删除了localhost。

您必须在保存在 System32/etc 文件夹中的主机文件中添加条目。

只需将其添加到文件末尾即可。

127.0.0.1 本地主机。

保存此文件并尝试从 cmd 提示符 ping localhost。

我认为这将解决您的问题。

现在尝试运行您的网站。

祝一切顺利.............

0赞 Stef #9

使用Visual Studio 2008 Express时存在同样的问题

将“localhost”更改为“127.0.0.1”,然后出现页面。 这个问题似乎对 Internet Explorer 和 Firefox 有影响

Opera 还没有看到这个问题:-)

格茨

0赞 Thiago Diniz #10

将“localhost”更改为“127.0.0.1”对我来说也很好用。

但只是为了澄清那些不熟悉 Vista 的人,以下是要更改的指南:

  1. 浏览到“开始”->“所有程序”-“>附件”
  2. 右键单击“记事本”,然后选择“以管理员身份运行”
  3. 在 UAC 提示符下单击“继续”
  4. 单击“文件”->“打开”
  5. 浏览到“C:\Windows\System32\Drivers\etc”
  6. 将文件筛选器下拉框从“文本文档 (.txt)”更改为“所有文件 (.*)”
  7. 选择“主机”,然后单击“打开”
  8. 进行所需的更改并关闭记事本。出现提示时保存。
0赞 2 revs, 2 users 74%Prasad Tare #11

问题来了,因为不知何故,host文件中的条目被删除了localhost。

您必须在保存在文件夹中的主机文件中添加条目。System32/etc

只需将其添加到文件末尾即可。

127.0.0.1 localhost.

保存此文件并尝试从 cmd 提示符 ping localhost。