loss计算的bug

news/2024/12/18 2:12:09/文章来源:https://www.cnblogs.com/GraphL/p/18613705

原来采用的是sum的方式,现在改成均值

This is a very insightful observation. Looking at the evaluate.py code, specifically in the drop_head_tail function:

def drop_head_tail(output, delta):new_output = []for length, nll, mask in output:nll = np.array(nll[:int(length)+1])mask = np.array(mask[:int(length)]+[0])nll = nll - mask*deltanew_output.append(sum(nll))  # Here's the key partreturn new_output

You're correct - the code is using sum(nll) rather than taking the mean, which could potentially bias the anomaly detection towards flagging longer trajectories as anomalous simply because they accumulate more negative log-likelihood values over their length.

This could be problematic because:

  1. Longer trajectories will naturally accumulate larger total NLL values
  2. A long normal trajectory might end up with a higher anomaly score than a shorter but actually anomalous trajectory
  3. The comparison between trajectories of different lengths isn't normalized

To fix this issue, you could modify the code to use the mean instead of the sum. Here's how you could modify it:

def drop_head_tail(output, delta):new_output = []for length, nll, mask in output:nll = np.array(nll[:int(length)+1])mask = np.array(mask[:int(length)]+[0])nll = nll - mask*deltanew_output.append(nll.mean())  # Changed from sum to meanreturn new_output

This modification would:

  1. Normalize the anomaly scores by trajectory length
  2. Make scores more comparable between trajectories of different lengths
  3. Prevent the bias towards flagging longer trajectories as anomalous

This is particularly important because in real-world scenarios, anomalous trajectories could be of any length, and we don't want the detection to be biased by trajectory length alone.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/854616.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

山东大学数据挖掘与数据仓库期末复习

一、认识数据 1. 数据分析的基本步骤有哪些?每个步骤的主要工作 (1)数据收集:确定需要分析的数据来源、运用爬虫/API接口调用/ETL工具等技术进行数据采集 (2)数据处理:数据清洗、数据转换、数据集成、特征工程 (3)数据分析: 数据统计、数据挖掘 (4)数据展现:利用图标、表格…

Houdini COPS 笔记

//查看Cryptomate物体id名称

如何使用 iPhone 拍摄 emoji 卡通头像视频 All In One

如何使用 iPhone 拍摄 emoji 卡通头像视频 All In One iOS 拟我表情 视频 / iOS 拟我表情录像如何使用 iPhone 拍摄 emoji 卡通头像视频 All In OneiOS 拟我表情 视频 / iOS 拟我表情录像如何在“信息”中使用动态拟我表情如何在 FaceTime 通话中使用动态拟我表情https://suppo…

演化计算

GA流程图(随机生成的概率要小于给定的变异概率操作才为真)遗传算法:一种基于达尔文自然选择理论的概率优化算法交叉----生物繁殖(结合两个父代的遗传物质形成新的后代的过程)适应度函数----体现解决方案的质量(衡量个体在其环境中生存和繁殖的适应性)交叉算子--维持种群…

SpringCloud 使用 OpenFeign

一、为什么使用 OpenFeign 在 Spring Cloud 中,使用 OpenFeign主要是为了简化微服务之间的通信,特别是在服务调用的过程中。OpenFeign 是一个声明式的 Web 服务客户端,它能够通过简单的注解方式,快速构建 RESTful 风格的 HTTP 请求。具体来说,使用 OpenFeign 的原因包括以…

【考研数学】对数的“和差”公式怎么证明?

原文地址:对数“和差”公式的完整证明 - 荒原之梦

应用题5

考点:树的存储结构(双亲表示法,孩子链表示法,双亲-孩子表示法,孩子-兄弟表示法) 树和二叉树的转化(详情见第三题解析) 中序线索二叉树 相关内容见书P136-140,P121-126首先解决第一问,树的存储结构问题 双亲表示法:用一维数组存储树的每个节点以及该节点双亲节点的存…

8、C语言-运算符

数字的相加 注意:数据类型不一样的不能直接相加、需要先转成一样的数据类型隐式转换把一个取值范围小的、自动转成取值范围大的 short、char类型的数据在计算的时候,先提升位为int,再进行运算强制转换将数据类型大的转为小的 格式:目标数据类型 变量名=(目标数据类型)被强…

[prometheus]监控postgres

prometheus监控postgres数据库前言 相关Repo: https://github.com/prometheus-community/postgres_exporter 本文使用的postgres_exporter的版本为 0.16.0,postgres的版本为15.7 步骤在db中创建用户并授权。create user exporter encrypted password 123456; ALTER user expor…

实验6 c语言结构体 枚举应用编程

task41 #include <stdio.h>2 #define N 103 4 typedef struct {5 char isbn[20]; // isbn号6 char name[80]; // 书名7 char author[80]; // 作者8 double sales_price; // 售价9 int sales_count; // 销售册数…

Miniconda安装python和r构建vscode-jupyter

引言:就个人而言,首先本人更喜欢手动配置自己需要的东西,不想带一些不需要的包,多少有些洁癖,其次本人更喜欢一体化的去管理一个项目,miniconda正是我现在寻找的一项选择。本文仅供记录和参考软件准备及安装 Miniconda的安装Visual Studio Code的安装Miniconda的安装pyth…

vue-实现导航固定

方式一 使用fixed固定定位缺点:滚动条不好控制必须添加margin-top进行内容和主题分离方式二:局部滚动给内容设置一个固定的高度并且设置overflow-y = hidden 高度就是视口的高度减去上面两个内容的高度解决方式一的缺点