变点问题的公式推导

在这里插入图片描述

背景与关键定义

  1. 变点检测问题
    变点检测的目标是在给定的观测序列 y 1 , y 2 , … , y T y_1, y_2, \dots, y_T y1,y2,,yT 中,找到一个或多个点(变点),使得每段子序列(即变点划分的区间)能被一个较简单的模型(比如常数均值模型)很好地拟合。

  2. 代价函数 C \mathcal{C} C
    C \mathcal{C} C 表示给定一段子序列(如 y ( t + 1 ) : s y_{(t+1):s} y(t+1):s)的拟合代价(cost)。代价越小,说明这段序列被拟合得越好。

  3. 引入变点的目标
    通常我们希望通过引入变点,使得划分后的子序列总代价减少。公式 (2) 的假设反映了这一点:
    C ( y ( t + 1 ) : s ) + C ( y ( s + 1 ) : T ) + K ≤ C ( y ( t + 1 ) : T ) , \mathcal{C}\left(y_{(t+1): s}\right)+\mathcal{C}\left(y_{(s+1): T}\right)+K \leq \mathcal{C}\left(y_{(t+1): T}\right), C(y(t+1):s)+C(y(s+1):T)+KC(y(t+1):T),
    表示将序列 y ( t + 1 ) : T y_{(t+1): T} y(t+1):T 划分成两段(用变点 s s s 分开)后,总代价会减少。

  4. 动态规划框架
    动态规划求解变点检测问题时,我们递归计算:
    F ( T ) = min ⁡ τ { F ( τ ) + C ( y ( τ + 1 ) : T ) + β } , F(T) = \min_{\tau} \{ F(\tau) + \mathcal{C}(y_{(\tau+1):T}) + \beta \}, F(T)=τmin{F(τ)+C(y(τ+1):T)+β},
    其中:

    • F ( τ ) F(\tau) F(τ):序列 y 1 : τ y_{1:\tau} y1:τ 的最优划分代价。
    • β \beta β:引入一个变点的固定代价(penalty)。
    • τ \tau τ:候选的上一个变点。

    因为枚举所有可能的 τ \tau τ 代价很高,我们希望通过数学分析提前剔除一些不可能成为最优解的候选变点


定理 3.1 的主要内容

目标:如果某个点 t t t 不可能成为未来某个时间点 T > s T>s T>s 的最优变点,我们希望尽早把它剔除,从而减少动态规划的计算量。

定理的核心思想:如果 t t t 满足:
F ( t ) + C ( y ( t + 1 ) : s ) + K ≥ F ( s ) , F(t) + \mathcal{C}\left(y_{(t+1):s}\right) + K \geq F(s), F(t)+C(y(t+1):s)+KF(s),
那么对于所有未来的 T > s T > s T>s t t t 不可能是最优变点。

直观解释

  • 变点 t t t 的分段代价(加上 K K K)已经超过从 s s s 开始分段的代价 F ( s ) F(s) F(s)
  • 这说明从 t t t 开始分段的效果不如从 s s s 开始分段,因此 t t t 永远不会成为未来的最优选择。

证明的关键步骤

  1. 假设 (3) 成立
    F ( t ) + C ( y ( t + 1 ) : s ) + K ≥ F ( s ) . F(t) + \mathcal{C}\left(y_{(t+1):s}\right) + K \geq F(s). F(t)+C(y(t+1):s)+KF(s).
    我们在 t t t s s s 两种可能分段中,发现 t t t s s s 的代价更大。

  2. 添加未来段的代价
    考虑 T > s T>s T>s,加入 C ( y ( s + 1 ) : T ) \mathcal{C}(y_{(s+1):T}) C(y(s+1):T)
    F ( t ) + C ( y ( t + 1 ) : s ) + K + C ( y ( s + 1 ) : T ) ≥ F ( s ) + C ( y ( s + 1 ) : T ) . F(t) + \mathcal{C}\left(y_{(t+1):s}\right) + K + \mathcal{C}\left(y_{(s+1):T}\right) \geq F(s) + \mathcal{C}\left(y_{(s+1):T}\right). F(t)+C(y(t+1):s)+K+C(y(s+1):T)F(s)+C(y(s+1):T).
    这说明即使考虑未来序列,选择 t t t 作为变点的代价依然不如选择 s s s 的代价。

  3. 结合动态规划公式
    根据动态规划的递归公式:
    S T = { F ( τ ) + C ( y ( τ + 1 ) : T ) + β , τ = 0 , 1 , … , T − 1 } . S_T = \{F(\tau) + \mathcal{C}(y_{(\tau+1):T}) + \beta, \tau = 0, 1, \dots, T-1\}. ST={F(τ)+C(y(τ+1):T)+β,τ=0,1,,T1}.
    t t t 的值不会比 s s s 小,因此 t t t 永远不会成为集合 S T S_T ST 的最优解。

  4. 结论
    t t t 可以从候选集合中剔除。


定理的重要意义

  1. 加速动态规划
    在变点检测的动态规划算法中,通过剔除不可能的候选变点,可以减少计算量,显著加快算法。

  2. 数学条件的合理性
    定理基于变点的代价函数 C \mathcal{C} C 满足一定的“单调性”假设,这在实际问题中是常见的。

  3. 适用范围广
    这种剔除策略不仅限于特定代价函数或数据集,具有通用性。


总结

  • 定理 3.1 提供了一个数学工具,用于在变点检测问题中高效筛选候选变点。
  • 证明利用了动态规划的递归公式,结合代价函数的性质,展示了某些变点在特定条件下无法成为最优解。
  • 实际应用中,这一结果能显著优化计算效率,尤其是当数据规模较大时。

我们详细推导定理 3.1 的证明。目标是从假设 F ( t ) + C ( y ( t + 1 ) : s ) + K ≥ F ( s ) F(t) + \mathcal{C}(y_{(t+1):s}) + K \geq F(s) F(t)+C(y(t+1):s)+KF(s) 出发,证明 t t t 无法成为未来时间 T > s T > s T>s 的最优变点。


前置公式和假设

  1. 动态规划的核心公式是:
    F ( T ) = min ⁡ τ = 0 , 1 , … , T − 1 { F ( τ ) + C ( y ( τ + 1 ) : T ) + β } , F(T) = \min_{\tau=0,1,\ldots,T-1} \{ F(\tau) + \mathcal{C}(y_{(\tau+1):T}) + \beta \}, F(T)=τ=0,1,,T1min{F(τ)+C(y(τ+1):T)+β},
    其中:

    • F ( T ) F(T) F(T):从起点到时间 T T T 的最优代价。
    • C ( y ( τ + 1 ) : T ) \mathcal{C}(y_{(\tau+1):T}) C(y(τ+1):T):从 τ + 1 \tau+1 τ+1 T T T 的拟合代价。
    • β \beta β:添加一个变点的固定代价。
    • τ \tau τ:候选变点。
  2. 假设 (3) 是:
    F ( t ) + C ( y ( t + 1 ) : s ) + K ≥ F ( s ) , F(t) + \mathcal{C}(y_{(t+1):s}) + K \geq F(s), F(t)+C(y(t+1):s)+KF(s),
    表示在时间 s s s,从 t t t s s s 的分段代价(加上 K K K)不小于从 s s s 开始分段的代价 F ( s ) F(s) F(s)

  3. 从 (2) 可知,引入变点的代价函数是非增的,即:
    C ( y ( t + 1 ) : s ) + C ( y ( s + 1 ) : T ) + K ≤ C ( y ( t + 1 ) : T ) . \mathcal{C}(y_{(t+1):s}) + \mathcal{C}(y_{(s+1):T}) + K \leq \mathcal{C}(y_{(t+1):T}). C(y(t+1):s)+C(y(s+1):T)+KC(y(t+1):T).


证明步骤

第一步:结合假设 (3) 和未来代价

我们希望证明 t t t 无法成为未来时间 T > s T>s T>s 的最优变点。

  1. 从假设 (3) 出发,加入固定的惩罚项 β \beta β
    F ( t ) + C ( y ( t + 1 ) : s ) + K + β ≥ F ( s ) + β . F(t) + \mathcal{C}(y_{(t+1):s}) + K + \beta \geq F(s) + \beta. F(t)+C(y(t+1):s)+K+βF(s)+β.
    这表示在时间 s s s,以 t t t 为变点的代价高于以 s s s 为变点的代价。

  2. 考虑 T > s T > s T>s,加入从 s + 1 s+1 s+1 T T T 的代价 C ( y ( s + 1 ) : T ) \mathcal{C}(y_{(s+1):T}) C(y(s+1):T)
    F ( t ) + C ( y ( t + 1 ) : s ) + K + β + C ( y ( s + 1 ) : T ) ≥ F ( s ) + β + C ( y ( s + 1 ) : T ) . F(t) + \mathcal{C}(y_{(t+1):s}) + K + \beta + \mathcal{C}(y_{(s+1):T}) \\ \geq F(s) + \beta + \mathcal{C}(y_{(s+1):T}). F(t)+C(y(t+1):s)+K+β+C(y(s+1):T)F(s)+β+C(y(s+1):T).
    这是因为两边都添加了同样的项 C ( y ( s + 1 ) : T ) \mathcal{C}(y_{(s+1):T}) C(y(s+1):T)


第二步:利用代价的可加性

我们使用代价函数的可加性性质(公式 (2)):
C ( y ( t + 1 ) : s ) + C ( y ( s + 1 ) : T ) + K ≤ C ( y ( t + 1 ) : T ) . \mathcal{C}(y_{(t+1):s}) + \mathcal{C}(y_{(s+1):T}) + K \leq \mathcal{C}(y_{(t+1):T}). C(y(t+1):s)+C(y(s+1):T)+KC(y(t+1):T).
将其代入左边的不等式:
F ( t ) + C ( y ( t + 1 ) : T ) + β ≥ F ( s ) + β + C ( y ( s + 1 ) : T ) . F(t) + \mathcal{C}(y_{(t+1):T}) + \beta \geq F(s) + \beta + \mathcal{C}(y_{(s+1):T}). F(t)+C(y(t+1):T)+βF(s)+β+C(y(s+1):T).

这表示,加入从 t t t T T T 的代价后,总代价依然大于从 s s s T T T 的代价。


第三步:动态规划公式中的推论

根据动态规划公式:
S T = { F ( τ ) + C ( y ( τ + 1 ) : T ) + β , τ = 0 , 1 , … , T − 1 } . S_T = \{F(\tau) + \mathcal{C}(y_{(\tau+1):T}) + \beta, \tau = 0, 1, \ldots, T-1\}. ST={F(τ)+C(y(τ+1):T)+β,τ=0,1,,T1}.

  • t t t 对应的代价是 F ( t ) + C ( y ( t + 1 ) : T ) + β F(t) + \mathcal{C}(y_{(t+1):T}) + \beta F(t)+C(y(t+1):T)+β
  • s s s 对应的代价是 F ( s ) + C ( y ( s + 1 ) : T ) + β F(s) + \mathcal{C}(y_{(s+1):T}) + \beta F(s)+C(y(s+1):T)+β

由前面的推导可知:
F ( t ) + C ( y ( t + 1 ) : T ) + β ≥ F ( s ) + C ( y ( s + 1 ) : T ) + β . F(t) + \mathcal{C}(y_{(t+1):T}) + \beta \geq F(s) + \mathcal{C}(y_{(s+1):T}) + \beta. F(t)+C(y(t+1):T)+βF(s)+C(y(s+1):T)+β.
因此, t t t 对应的代价比 s s s 大, t t t 不可能是 S T S_T ST 的最优解。


第四步:剔除 t t t

因为 t t t 的代价在所有 T > s T > s T>s 的情况下都比 s s s 大,因此 t t t 不可能成为未来任何时间点的最优变点。

结论是:

  • 在动态规划中, t t t 可以从候选集合中剔除。
  • 这减少了后续计算的复杂度。

关键逻辑总结

  1. 假设 F ( t ) + C ( y ( t + 1 ) : s ) + K ≥ F ( s ) F(t) + \mathcal{C}(y_{(t+1):s}) + K \geq F(s) F(t)+C(y(t+1):s)+KF(s) 表示 t t t 的代价在 s s s 处已经不如 s s s
  2. 使用代价函数的可加性,将 t t t 的代价扩展到未来时间 T > s T > s T>s
  3. 结合动态规划公式,说明 t t t 在所有未来时间 T > s T > s T>s 的代价都不如 s s s
  4. 结论是 t t t 无法成为未来的最优变点,动态规划时可以剔除 t t t

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

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

相关文章

解决github网络慢的问题

前言 本文采用替换host的方式来加速github的git请求,主要我自己用来备份的懒人方式,不然每次都要手动修改hosts文件,skrskrskr… 一、获取到可用的ip 先到这个网站查询到低延迟的ip 站长工具:https://ping.chinaz.com/ 第2步&…

vue3【实战】多页签【组件封装】PageTabs (含右键快捷菜单组件封装 Contextmenu -- 关闭其他页签,关闭所有页签)

效果预览 技术方案 vue3 ( vite | TS | vueUse | AutoImport | pinia) Element Plus UnoCSS 技术要点 需开启 pinia 持久化右键菜单组件借助了 Element Plus 的样式 代码实现 src/components/PageTabs.vue <script setup lang"ts"> import { usePageTabsSto…

全面解析 Transformer:改变深度学习格局的神经网络架构

目录 一、什么是 Transformer&#xff1f; 二、Transformer 的结构解析 1. 编码器&#xff08;Encoder&#xff09; 2. 解码器&#xff08;Decoder&#xff09; 3. Transformer 模型结构图 三、核心技术&#xff1a;注意力机制与多头注意力 1. 注意力机制 2. 多头注意力&…

容器运行应用及Docker命令

文章目录 一、使用容器运行Nginx应用1_使用docker run命令运行Nginx应用1 观察下载容器镜像过程2 观察容器运行情况 2_访问容器中运行的Nginx服务1 确认容器IP地址2 容器网络说明3 使用curl命令访问 二、Docker命令1_Docker命令获取帮助方法2_Docker官网提供的命令说明3_docker…

【热门主题】000075 探索嵌入式硬件设计的奥秘

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

数据分析(一): 掌握STDF 掌握金钥匙-码农切入半导体的捷径

中国的半导体行业必然崛起&#xff01;看清这个大势&#xff0c;就会有很多机会。 今天&#xff0c;我们一起来了解一下半导体行业的一朵金花&#xff1a;STDF。 实际上这只是一种文件格式&#xff0c;但是当你熟练掌握解析这种文件的时候&#xff0c;你就已经打开在这个基础…

Latex转word(docx)或者说PDF转word 一个相对靠谱的方式

0. 前言 投文章过程中总会有各种各样的要求&#xff0c;其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中&#xff0c;其中公式转换是一个头疼的地方&#xff0c;还有很多图表&#xff0c;格式等等&#xff0c;想想就让人头疼欲裂。实践中摸索出一条相对靠…

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…

“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)

文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法&#xff0c; Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)&#xff89;~~~ β&#xff59;ё β&#xff59;ё~ 现在在维护另一…

如何用注册机破解Reflexive游戏

相信有许多小朋友&#xff08;像我以前一样&#xff09;已经迫不及待地准备准备对浩瀚的、像三星堆一般的Reflexive游戏合集进行考古挖掘工作了。不巧的是&#xff0c;打开游戏之后发现常常提示要付费才能解锁完整版。 一、下载注册机与破解文件 首先&#xff0c;在我的永硕网…

一万台服务器用saltstack还是ansible?

一万台服务器用saltstack还是ansible? 选择使用 SaltStack 还是 Ansible 来管理一万台服务器&#xff0c;取决于几个关键因素&#xff0c;如性能、扩展性、易用性、配置管理需求和团队的熟悉度。以下是两者的对比分析&#xff0c;帮助你做出决策&#xff1a; SaltStack&…

PDF文件页面转换成图片怎么弄-免费PDF编辑工具分享

>>更多PDF文件处理应用技巧请前往 96缔盟PDF处理器 主页 查阅&#xff01; —————————————————————————————————————— 序言 我之前的文章也有介绍过如何使用96缔盟PDF处理器对PDF文件转换成图片&#xff0c;但是当时是使用DMPDFU…

从 scratch开始构建一个最小化的 Hello World Docker 镜像-docker的镜像源头

在这篇文章中&#xff0c;我们将学习如何从零开始构建一个最小化的 Docker 镜像&#xff0c;基于 scratch 镜像&#xff0c;并在其中运行一个简单的 “Hello World” 程序。 Scratch 是一个空白的基础镜像&#xff0c;适用于构建轻量化、独立的容器。由于 scratch 不包含任何系…

OpenHarmony-4.GPIO驱动

GPIO 1.功能简介 GPIO&#xff08;General-purpose input/output&#xff09;即通用型输入输出。GPIO又俗称为I/O口&#xff0c;I指的是输入(in&#xff09;&#xff0c;O指的是输出&#xff08;out&#xff09;。可以通过软件来控制其输入和输出&#xff0c;即I/O控制。通常&…

leetcode 1843 可疑银行账户(postgresql)

需求 表: Accounts -------------------- | Column Name | Type | -------------------- | account_id | int | | max_income | int | -------------------- account_id 是表主键。 每行包含一个银行账户每月最大收入的信息。 表: Transactions ------------------------ |…

【开源代码】图像水印移除-依赖python-tensorflow

下载源码 git clone https://github.com/zuruoke/watermark-removal创建conda环境 conda create -n tensorflow_gpu python=3.7 conda activate tensorflow_gpu conda install tensorflow-gpu==1.15

PyQt信号槽实现页面的登录与跳转 #页面进一步优化

将登录框中的取消按钮使用信号和槽的机制&#xff0c;关闭界面。 将登录按钮使用信号和槽连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是否为"123456",如果账号密码匹配成功&#xff0c;当前界面关…

自动化立体仓库项目任务调度系统中任务流程可视化实现

在运维自动化平台中,任务系统无疑是最核心的组成部分之一。它承担着所有打包编译、项目上线、日常维护等运维任务的执行。通过任务系统,我们能够灵活地构建满足不同需求的自定义任务流。早期的任务流后端采用了类似列表的存储结构,根据任务流内子任务的排序依次执行,尽管通…

WEB安全 PHP学习

PHP基础 PHP编码显示问题 header ("Content-type: text/html; charsetgb2312"); header("Content-Type: text/html;charsetutf-8"); windows需要使用gbk编码显示 源码是 <?php header ("Content-type: text/html; charsetgb2312"); sys…

11.爬虫

前言&#xff1a; 正则表达式的作用&#xff1a; 作用一&#xff1a;校验字符串是否满足规则 作用二&#xff1a;在一段文本中查找满足要求的内容 一.Pattern类和Matcher类&#xff1a; 1.Pattern类&#xff1a;表示正则表达式 a.因此获取Pattern对象就相当于获取正则表达式…