数学learning

news2024/10/7 15:30:33

目录

移动平均

简单移动平均

加权移动平均

指数移动平均

矩阵求导

 矩阵对标量求导 Matrix-by-scalar

标量对矩阵求导 Scalar-by-matrix

参考博客


移动平均

        优化算法里面会涉及到一个知识点:指数移动平均。

        但是为了知识的完整性,这里会将常见的移动平均全部过一遍

        首先移动平均法是根据时间序列资料逐渐推移,依次计算包含一定项数的时序平均数,以反映长期趋势的方法。当时间序列的数值由于受到周期变动和不规则变动的影响,起伏较大,不易显示出发展趋势时,可采用移动平均法,消除这些因素的影响,分析、预测序列的长期趋势由此可以看出移动平均是技术分析中一种分析时间序列的常用工具

        常见的移动平均包括:

  • 简单移动平均(SMA)
  • 加权移动平均(WMA) --加权平均
  • 指数移动平均(EMA) --指数平滑

简单移动平均

        首先举个例子若依次得到测定值(x_1, x_2, x_3, ..., x_n) 时,按顺序取一定个数所做的全部算术平均值。 这里假设按照三个区算术平均数,则移动平均值为:

\textup{}(\frac{x_1+x_2+x_3}{3}, \frac{x_2+x_3+x_4}{3}, \frac{x_3+x_4+x_5}{3}, ...)

        设观测序列为y_1, ..., y_T,取移动平均的项数N < T.一次简单移动平均值计算公式为:

M_t = \frac{1}{N}(y_t + y_{t-1} + ... + y_{t-N+1})\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)

M_t = \frac{1}{N}(y_{t-1}+ ... + y_{t-N}) + \frac{1}{N}(y_t - y_{t-N})\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2)

M_t = M_{t - 1} + \frac{1}{N}(y_t - y_{t - N}) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (3)

        (1)式为简单移动平均值计算的定义式,但是我们发现由(1)式可以推出(2)式,我们可以把(2)式的括号打开,那么(2)式子中前面的累加和中的最大项会变成y_t,最小项会因为y_{t-N}相互抵消,重新变为y_{t-N},我们发现就是(1)式,很简单的一个变换。

        当预测目标的基本趋势是在某一水平面上下波动时,可用一次简单移动平均法建立预测模型:

        \hat{y} = M_t 利用最后N项求完的简单移动平均值作为预测的值。其预测标准误差为:

S = \sqrt{\frac{\sum_{t=N+1}^{T}(\hat{y_t } - y_t)^2}{T - N}}

        一般N的取值范围:5<=N<=200.当历史序列的基本趋势变化不大且序列中随机变动成分较多时,N的取值应较大一些。否则N的取值应小一些,在由确定的季节变动周期资料中,移动平均的项数应取周期长度。选择最佳N值的一个有效方法是,比较若干模型的预测误差。预测误差小的好。

        简单移动平均法只适合做近期预测,而且是预测目标的发展趋势变化不大的情况。 如果目标的发展趋势存在其它的变化,采用简单移动平均法就会产生较大的预测偏差和滞后。 

加权移动平均

        在简单移动平均公式中,每期数据在求平均时的作用是等同的。但是,每期数据所包含的信息量不一样,近期数据包含着更多关于未来情况的信心。因此,把各期数据等同看待是不尽合理的,应考虑各期数据的重要性对近期数据给予较大的权重,这就 是加权移动平均法的基本思想。 

        总结一句话就是加权移动平均法,是在简单移动平均法的基础上给每一项加上一个权值,公式如下:

M_t = \frac{w_1y_t+w_2y_{t-1}+...+w_Nt_{t-N+1}}{w_1+w_2+...+w_N} \ \ \ t\geq N

        在加权移动平均法中, wtwt 的选择,同样具有一定的经验性。一般的原则是:近期 数据的权数大,远期数据的权数小。至于大到什么程度和小到什么程度,则需要按照预 测者对序列的了解和分析来确定。 

指数移动平均

        一次移动平均实际上认为近 N期数据对未来值影响相同,都加权\frac{1}{N};而 N 期以前的数据对未来值没有影响,加权为 0。但是,二次及更高次移动平均数的权数却不是 \frac{1}{N},且次数越高,权数的结构越复杂,但永远保持对称的权数,即两端项权数小
        中间项权数大,不符合一般系统的动态性。一般说来历史数据对未来值的影响是随时间间隔的增长而递减的。所以,更切合实际的方法应是对各期观测值依时间顺序进行加权平均作为预测值。指数平滑法可满足这一要求,而且具有简单的递推形式。

        那么究竟什么是指数移动平均,指数移动平均(exponential moving average,EMA或EWMA)是以指数式递减加权的移动平均。各数值的加权影响力随时间而指数式递减,越近期的数据加权影响力越重,但较旧的数据也给予一定的加权值。参考吴恩达深度学习课程中的计算公式进行描述

设时刻t的实际数值为\theta _t, 时刻t的EMA为v_t,时刻t- 1的EMA为v_{t-1},计算时刻t\geqslant 2的指数移动平均公式为:

v_t = \beta v_{t-1} + (1 - \beta) \theta _t

  \beta为权重因子, 通常取值为接近于1的值,如0.9, 0.98, 0.99, 0.999等。\beta越小,过去过去累计值的权重越低,当前抽样值的权重越高,移动平均值的实时性就越强。反之 \beta 越大,吸收瞬时突发值的能力变强,平稳性更好

        v_t是如何表示指数移动平均的?

我们这里设\beta = 0.9, v_0 = 0

v_1 = 0.9v_0 + 0.1 \theta _1

v_2 = 0.9v_1 + 0.1 \theta _2

......

v_{t-2} = 0.9v_{t-3} + 0.1 \theta _{t-2}

v_{t-1} = 0.9v_{t-2} + 0.1 \theta _{t-1}

v_{t} = 0.9v_{t-1} + 0.1 \theta _{t}

逐层会带:

v_t = 0.1 * (\theta _t + 0.9 * \theta _{t-1} + 0.9^2 \theta _{t-2} + ... + 0.9^{t-1}\theta _1)

这里v_t实际上是对时刻t之前(包括t)实际数值的加权平均,实际数值的加权平均,时间离得越远,权重越小,而且是指数式递减的,所以又叫指数加权移动平均 / 指数衰减移动平均

与一般的加权平均相比,使用指数移动平均的好处在于:

  • 不需要保存前面所有时刻的实际数值,并且在计算v_t的过程中是逐步覆盖的,因此可以减少内存的占用
  • 在有些场景下,其实更符合实际情况的,例如股票价格,天气等,上一个时间步对当前时间步影响最大

        但是因为当 EMA 在初始化或者在开始计算的时候,它是有偏的,特别是在序列的开始阶段。这是由于 EMA 的初始值 (v_0) 通常被设置为 0 或者被设置为非常小的数,这将导致 EMA 在开始时偏向于较小的值,从而低估了真实的平均值。

        为了减少这种偏差,我们可以应用偏差修正。修正后的 EMA 定义如下:

\hat{v}_t = \frac{v_t}{1 - \beta^t}

        在这里,(t) 是时间步或迭代的次数,(\hat{v}_t) 是偏差校正后的 EMA 值。当 (t) 很小时,(\beta^t) 接近1,这样做可以显著提高修正后的 EMA 值,使其更接近实际的平均值。随着 (t) 的增加,(1 - \beta^t) 接近1,这意味着修正越来越小,当 (t) 足够大以后,EMA 的值就不再需要修正

下面是最最最重要的问题,权重因子如何确定

权重因子是指数移动平均计算中最关键的参数,如何确定权重因子的大小成为一个关键问题。下面重新推导指数移动平均公式,进一步理解指数移动平均的含义,从而确定权重因子的大小。

\beta = 0.9,求解v_{100}的表达式

        v_{100}指数移动平均值,本质上前100项数值的加权平均。这时我们考虑,到底需要平均多少项的数值。实际上,在计算当前项的指数移动平均值时,我们会加权平均,包含当前项的之前所有项的值。

        但是我们发现,权重随着指数系数的增加而减小,并趋近于0,例如0.9^{99}\approx 0,所以我们可以假设这一项后面的值后忽略不计,即我们假设存在一个阈值,当项的权重系数大于阈值时为有效项;当权重系数衰减到低于阈值则为无效项

\lim_{x\rightarrow 0}(1-x)^{\frac{1}{x}} = \frac{1}{e}

        这里的权重衰减阈值设为自然数的倒数为 \frac{1}{e}\approx 0.368 ,进一步说,当权重系数小于 \frac{1}{e} 时忽略当前项及之后项的加权值。权重因子的作用本质上是控制指数权重平均计算中有效项的数目,即指数平滑有效窗口的大小

        权重因子\beta可以表示为\beta = 1 - x,带入极限得\lim_{\beta \rightarrow 1} \beta ^ {\frac{1}{1-\beta}} = \frac{1}{e}

        我们关心的并不是权重因子的大小,而是指数移动平滑的步长大小,即权重系数\beta ^ T,其中 T 对应的数值,表示平滑窗口/周期的大小。

        所以我们很容易得得出\frac{1}{1-\beta}\approx T,怎么理解呢,因为我们设置了权重系数最小为\frac{1}{e},所以可以理解为\beta^T \geqslant \ \frac{1}{e} \approx lim_{\beta\rightarrow 1} \beta ^ {\frac{1}{1-\beta}}所以T \approx \frac{1}{1-\beta}就一定满足要求。

        通过老师分享得博客我们还发现,Beta 取值越小,序列 V 波动越大。因为我们平均的例子更少,因此结果与噪声数据更接近。随着 Beta 值越大,比如当 Beta = 0.98 时,我们得到的曲线会更加圆滑,但是该曲线有点向右偏移,因为我们取平均值的范围变得更大(beta = 0.98 时取值约为 50)。Beta = 0.9 时,在这两个极端间取得了很好的平衡。如下图所示:

矩阵求导

 矩阵对标量求导 Matrix-by-scalar

标量对矩阵求导 Scalar-by-matrix

看到了一个特别特别好的图,关于矩阵求导如下:

 这篇博客关于矩阵写的比较详细,我觉得一已经比较全面咯~

矩阵求导——学习笔记-CSDN博客

参考博客

指数移动平均EMA - 简书

矩阵求导常用公式_矩阵求导公式-CSDN博客

移动平均(Moving Average) - 知乎 (zhihu.com)

动量 | 机器之心 (jiqizhixin.com)

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

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

相关文章

容器技术与操作系统

文章目录 容器技术 vs 虚拟机操作系统容器 Docker与操作系统 容器技术 vs 虚拟机 操作系统 操作系统是一个很重而且很笨的程序&#xff0c;简称笨重&#xff0c;有多笨重呢&#xff1f; 操作系统运行起来是需要占用很多资源的&#xff0c;大家对此肯定深有体会&#xff0c;刚…

ARM day8

1.题目&#xff1a;主机获取从机里面的温湿度数据&#xff0c;并打印出来 结果&#xff1a; 代码&#xff1a; main.c #include "iic.h"#include "si7006.h"void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){short tem;…

【Linux】锁的简单封装以及原理解析

文章目录 一、锁的原理过程1&#xff1a;过程2过程3过程4 二、 锁的简单封装1.LockGuard.hpp2.使用1.正常锁的使用2.使用封装后的 总结 一、锁的原理 为了实现互斥锁操作,大多数体系结构都提供了swap或exchange指令,该指令的作用是把寄存器和内存单元的数据相交换,由于只有一条…

基于ssm社区管理与服务的设计与实现论文

目录 摘 要 1 Abstract 2 第一章 绪论 3 1.1研究背景 3 1.2 研究现状 3 1.3 研究内容 4 第二章 系统关键技术 5 2.1 Java简介 5 2.2 MySql数据库 5 2.3 B/S结构 6 2.4 Tomcat服务器 6 第三章 系统分析 7 3.1可行性分析 7 3.1.1技术可行性 7 3.1.2经济可行性 7 3.1.3运行可行性…

IP代理检测:判断IP质量优劣要注意的5件事

使用代理是各种在线活动的常见做法&#xff0c;但确保其质量对于避免潜在问题并确保无缝体验至关重要。 在本文中&#xff0c;我们深入探讨进行彻底代理检查以保证可靠性和安全性的基本方面。 1. 验证地理位置信息 评估代理时的主要考虑因素之一是其地理位置&#xff0c;这也…

自动化补丁管理软件

什么是自动化补丁管理 自动补丁管理&#xff08;或自动补丁&#xff09;是指整个补丁管理过程的自动化&#xff0c;从扫描网络中的所有系统到检测缺失的补丁&#xff0c;在一组测试系统上测试补丁&#xff0c;将它们部署到所需的系统&#xff0c;并提供定期更新和补丁部署状态…

RocketMQ如何保证消息的可靠性传递❓

RocketMQ 通过一系列的机制来保证消息的可靠性传递&#xff0c;确保在面对各种异常和故障情况时&#xff0c;消息系统能够稳定地处理和传递消息。以下是 RocketMQ 保证可靠性传递的关键机制&#xff1a; 1. 同步双写机制 (Synchronous Write Mechanism): RocketMQ的同步双写机…

oracle 拼接语句怎么写?

||的妙用&#xff0c;字符串和变量列名之间都得用||分隔&#xff0c;oracle等数据库两个单引号输出一个单引号&#xff0c;因为如果只写了一个的话 他会和最近的单引号被数据库认为是组成了一个空字符串&#xff0c;因此需要用两个单引号来表示这是个单引号 查询列间用&#xf…

锂电池基础知识及管理方式总结

这两天在排查一个锂电池无法充电的问题&#xff0c;用的是电池管理芯片BQ25713&#xff0c;网上相关的资料也很少&#xff0c;查看数据手册时&#xff0c;里面也有很多术语参数等不是很理解&#xff0c;所以&#xff0c;在此对锂电池的基础知识做个简单的总结&#xff0c;方面后…

算法:有效的括号(入栈出栈)

时间复杂度 O(n) 空间复杂度 O(n∣Σ∣)&#xff0c;其中 Σ 表示字符集&#xff0c;本题中字符串只包含 6 种括号 /*** param {string} s* return {boolean}*/ var isValid function(s) {const map {"(":")","{":"}","["…

vue3若依框架,在页面中点击新增按钮跳转到新的页面,不是弹框,如何实现

在router文件中的动态路由数组中新增一个路由配置&#xff0c;这个配置的就是新的页面。 注意path不要和菜单配置中的路径一样&#xff0c;会不显示内容。 在菜单配置中要写权限标识就是permissions:[]里的内容 在children里的path要写占位符info/:data 点击新增按钮&#x…

初级数据结构(三)——栈

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;二&#xff09;——链表 | 初级数据结构&#xff08;四&#xff09;——队列 下一篇-> 1、栈的特性 1.1、函数栈帧简述 即使是刚入门几天的小白&#xff0c;对栈这个字…

一文读懂NISQ时代的量子竞赛

/目录/ 一、关于NISQ&#xff0c;业内专家怎么看&#xff1f; 二、NISQ时代的量子硬件资源估算 2.1. NISQ量子比特要求 2.2. NISQ计算时间 2.3. NISQ代码经典模拟 三、主流量子算法“优势”的资源估算 3.1. 用于化学模拟的VQE算法 3.2. 用于组合优化的QAOA算法 3.3. 量…

你真的了解Shiro框架吗?

关注公众号回复20231110获取最新网络安全以及内网渗透等资料。 文章目录 关注公众号回复20231110获取最新网络安全以及内网渗透等资料。Shiro的核心架构Shiro中的认证认证shiro中认证的关键对象 认证流程调试认证流程Shiro的加密过程Shiro中的解密过程总结 Shiro的核心架构 Shi…

低代码开发与传统软件开发:未来趋势与竞争格局

近年来&#xff0c;低代码开发平台的快速发展引起了各行各业的广泛关注。低代码开发平台简化了软件开发的复杂性&#xff0c;提供了更快速、更灵活的开发方式。于是&#xff0c;许多人开始产生一个疑问&#xff1a;未来低代码开发是否会取代传统软件开发&#xff1f;今天这篇文…

验收支撑-软件项目验收计划书

软件项目验收计划的作用主要有以下几点&#xff1a; 确保项目质量&#xff1a;通过项目验收&#xff0c;客户或相关方可以对项目的成果进行全面、系统的评估&#xff0c;以确保项目达到预期的质量标准。发现和解决问题&#xff1a;在项目开发过程中&#xff0c;难免会存在一些问…

ROS-ROS运行管理-ROS元功能包

ROS是多进程(节点)的分布式框架&#xff0c;一个完整的ROS系统实现&#xff1a; 可能包含多台主机&#xff1b;每台主机上又有多个工作空间(workspace)&#xff1b;每个的工作空间中又包含多个功能包(package)&#xff1b;每个功能包又包含多个节点(Node)&#xff0c;不同的节…

(Nerf学习)GaussianEditor

论文链接 https://arxiv.org/pdf/2311.14521.pdf 原码链接 https://github.com/buaacyw/GaussianEditor 一、安装&#xff08;WIN失败&#xff0c;求解决方法&#xff09; 我使用的环境是&#xff1a;Win11 python3.8 CUDA11.8 显卡3060 1、克隆我们的存储库并创建 conda …

【INTEL(ALTERA)】Agilex7 FPGA Development Kit DK-DK-DEV-AGI027RBES 编程/烧录/烧写/下载步骤

DK-DEV-AGI027RBES 的编程步骤&#xff1a; 将 USB 电缆插入 USB 端口 J8&#xff08;使用 J10 时&#xff0c;DIPSWITCH SW5.3&#xff08;DK-DEV-AGI027RES 和 DK-DEV-AGI027R1BES&#xff09;和 SW8.3&#xff08;DK-DEV-AGI027RB 和 DK-DEV-AGI027-RA&#xff09;应关闭&a…

【动态规划】路径问题_不同路径_C++

题目链接&#xff1a;leetcode不同路径 目录 题目解析&#xff1a; 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析&#xff1a; 题目让我们求总共有多少条不同的路径可到达右下角&#xff1b; 由题可得&#xff1a; 机器人位于…