<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Time Series on Chen Kai Blog</title><link>https://www.chenk.top/zh/time-series/</link><description>Recent content in Time Series on Chen Kai Blog</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 15 Dec 2024 09:00:00 +0000</lastBuildDate><atom:link href="https://www.chenk.top/zh/time-series/index.xml" rel="self" type="application/rss+xml"/><item><title>时间序列模型（八）：Informer -- 高效长序列预测</title><link>https://www.chenk.top/zh/time-series/08-informer%E9%95%BF%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B/</link><pubDate>Sun, 15 Dec 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/08-informer%E9%95%BF%E5%BA%8F%E5%88%97%E9%A2%84%E6%B5%8B/</guid><description>&lt;p>Transformer 做序列建模非常好用——直到序列变长。原始自注意力的算力和显存都是 $\mathcal{O}(L^2)$，所以一周小时级窗口（168 步）还行，一个月窗口（720 步）就开始痛苦，三个月窗口（2160 步）在单张 GPU 上基本不可能。而真实的长 horizon 预测——气象、能源、金融、IoT——恰好都在这个区间。&lt;/p></description></item><item><title>时间序列模型（七）：N-BEATS -- 可解释的深度架构</title><link>https://www.chenk.top/zh/time-series/07-n-beats%E6%B7%B1%E5%BA%A6%E6%9E%B6%E6%9E%84/</link><pubDate>Sat, 30 Nov 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/07-n-beats%E6%B7%B1%E5%BA%A6%E6%9E%B6%E6%9E%84/</guid><description>&lt;p>2018 年 M4 预测竞赛把 100,000 条覆盖六种频率的序列摆到一个统一榜单上。占据榜单前几位的是几十年统计预测手艺打磨出来的精调集成。然后一个&lt;strong>纯神经网络&lt;/strong>——没有统计预处理、没有特征工程、没有递归——直接拿了第一名。这个网络就是 Oreshkin 等人的 &lt;strong>N-BEATS&lt;/strong>：若干全连接块沿着两条残差路径堆叠在一起。它的可解释版本还把预测拆成多项式趋势和 Fourier 季节性，连统计学家最在意的&amp;quot;可读分解&amp;quot;也免费送了。&lt;/p></description></item><item><title>时间序列模型（六）：时序卷积网络 (TCN)</title><link>https://www.chenk.top/zh/time-series/06-%E6%97%B6%E5%BA%8F%E5%8D%B7%E7%A7%AF%E7%BD%91%E7%BB%9Ctcn/</link><pubDate>Fri, 15 Nov 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/06-%E6%97%B6%E5%BA%8F%E5%8D%B7%E7%A7%AF%E7%BD%91%E7%BB%9Ctcn/</guid><description>&lt;p>整个 2010 年代，&amp;ldquo;用深度学习做时间序列&amp;quot;基本上等价于&amp;quot;上 LSTM&amp;rdquo;。这件事在 2018 年被 Bai、Kolter、Koltun 的 &lt;em>An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling&lt;/em> 改变。结论简单到令人有些不爽：把若干个 1D 卷积叠起来，让它们都是因果的（不偷看���来���，让卷积核的步距按指数膨胀（dilation），整个块外面套一层残差连接，然后训练。在一个又一个任务上，这个&lt;strong>时序卷积网络&lt;/strong>（TCN）的表现都和 LSTM/GRU 持平甚至更好——而且训练快好几倍，因为它的前向传播在每一个时间步上都是并行的。&lt;/p></description></item><item><title>时间序列模型（五）：时间序列的 Transformer 架构</title><link>https://www.chenk.top/zh/time-series/05-transformer%E6%9E%B6%E6%9E%84/</link><pubDate>Thu, 31 Oct 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/05-transformer%E6%9E%B6%E6%9E%84/</guid><description>&lt;h2 id="本章要点">本章要点&lt;/h2>
&lt;ul>
&lt;li>把完整的 encoder-decoder Transformer 拆给时间序列重新讲一遍&lt;/li>
&lt;li>为什么必须注入位置信息，正弦 / 学习式 / 时间感知三种编码的差异&lt;/li>
&lt;li>多头注意力在时间序列上到底学到了什么&lt;/li>
&lt;li>朴素 attention 在哪儿撞墙（O(n²)），以及四类解决方案：稀疏 / 线性 / Patching / Decoder-only&lt;/li>
&lt;li>一份干净的 PyTorch 参考实现，附 Autoformer / FEDformer / Informer / PatchTST 的选型建议&lt;/li>
&lt;/ul>
&lt;h2 id="前置知识">前置知识&lt;/h2>
&lt;ul>
&lt;li>自注意力与多头注意力（第 4 篇）&lt;/li>
&lt;li>编码器-解码器结构与 teacher forcing&lt;/li>
&lt;li>PyTorch 基础（&lt;code>nn.Module&lt;/code>、训练循环）&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="1-为什么时间序列要用-transformer">1. 为什么时间序列要用 Transformer&lt;/h2>
&lt;p>LSTM / GRU 一步一步地处理序列，由此带来三个问题：&lt;/p></description></item><item><title>时间序列模型（四）：Attention 机制 -- 直接的长程依赖</title><link>https://www.chenk.top/zh/time-series/04-attention%E6%9C%BA%E5%88%B6/</link><pubDate>Wed, 16 Oct 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/04-attention%E6%9C%BA%E5%88%B6/</guid><description>&lt;h2 id="本章要点">本章要点&lt;/h2>
&lt;ul>
&lt;li>循环网络在长程依赖上为什么吃亏，注意力如何一击破解。&lt;/li>
&lt;li>Query / Key / Value 机制、Scaled dot-product 公式，以及为什么必须除以 $\sqrt{d_k}$。&lt;/li>
&lt;li>两种经典打分函数：&lt;strong>Bahdanau&lt;/strong>（加性）和 &lt;strong>Luong&lt;/strong>（乘性）。&lt;/li>
&lt;li>如何把 &lt;strong>Attention 接到 LSTM 编码器/解码器&lt;/strong> 上做时间序列预测。&lt;/li>
&lt;li>&lt;strong>多头注意力&lt;/strong>在时序场景下的&amp;quot;四种典型分工&amp;quot;：近期、长程、周期、异常。&lt;/li>
&lt;li>$O(n^2)$ 显存墙，以及稀疏 / 线性注意力如何绕过去。&lt;/li>
&lt;li>一个完整的 &lt;strong>股价预测案例&lt;/strong>，并用注意力权重叠加图解释模型决策。&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>前置&lt;/strong>：RNN/LSTM/GRU 的基本概念（第 2-3 部分）、线性代数、PyTorch 基本操作。&lt;/p></description></item><item><title>时间序列模型（三）：GRU -- 轻量门控与效率权衡</title><link>https://www.chenk.top/zh/time-series/03-gru/</link><pubDate>Tue, 01 Oct 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/03-gru/</guid><description>&lt;h2 id="本章要点">本章要点&lt;/h2>
&lt;ul>
&lt;li>GRU 的&lt;strong>更新门&lt;/strong> $z_t$ 和&lt;strong>重置门&lt;/strong> $r_t$ 如何用更少的门、更少的状态实现 LSTM 级别的记忆能力。&lt;/li>
&lt;li>为什么 GRU 比 LSTM &lt;strong>正好少 25% 参数&lt;/strong>，这在工程上意味着什么。&lt;/li>
&lt;li>怎么读 GRU 的&lt;strong>门激活&lt;/strong>，把它当作训练诊断工具。&lt;/li>
&lt;li>一份实用的 GRU vs LSTM &lt;strong>决策矩阵&lt;/strong>，附参数、速度、预测质量的基准对比。&lt;/li>
&lt;li>一份干净、生产级的 PyTorch 参考实现，包含真正影响稳定性的初始化与正则化技巧。&lt;/li>
&lt;/ul>
&lt;h2 id="前置知识">前置知识&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.chenk.top/zh/%e6%97%b6%e9%97%b4%e5%ba%8f%e5%88%97%e6%a8%a1%e5%9e%8b-%e4%ba%8c-LSTM/">第二篇 LSTM&lt;/a>
 中的三门机制。&lt;/li>
&lt;li>基本 PyTorch（&lt;code>nn.Module&lt;/code>、autograd、optimizer）。&lt;/li>
&lt;li>知道 vanilla RNN 因为梯度反复经过 tanh 非线性而出现梯度消失。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>&lt;figure>
 &lt;img src="https://blog-pic-ck.oss-cn-beijing.aliyuncs.com/posts/zh/time-series/03-GRU/fig1_gru_cell_architecture.png" alt="GRU 单元结构：重置门、更新门，以及从 h_{t-1} 到 h_t 的 (1 - z) 梯度高速公路。" loading="lazy" decoding="async">
 
&lt;/figure>

&lt;em>图 1. GRU 单元。两个门（&lt;code>r&lt;/code>、&lt;code>z&lt;/code>）+ 一个状态（&lt;code>h&lt;/code>），替代 LSTM 的三个门 + 独立细胞状态。橙色的 &lt;code>(1 - z) ⊙ h_{t-1}&lt;/code> 跳跃路径就是让长程依赖可学的线性梯度高速公路。&lt;/em>&lt;/p></description></item><item><title>时间序列模型（二）：LSTM -- 门控机制与长期依赖</title><link>https://www.chenk.top/zh/time-series/02-lstm/</link><pubDate>Mon, 16 Sep 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/02-lstm/</guid><description>&lt;h2 id="本章要点">本章要点&lt;/h2>
&lt;ul>
&lt;li>为什么普通 RNN 在长序列上失败，LSTM 如何修复梯度问题&lt;/li>
&lt;li>每个门（遗忘门、输入门、输出门）的直觉与&amp;quot;细胞状态高速公路&amp;quot;&lt;/li>
&lt;li>如何为单步与多步时间序列预测构建 LSTM 的输入/输出&lt;/li>
&lt;li>实战配方：正则化、回望长度选择、双向 vs 堆叠 LSTM、LSTM vs GRU 的取舍&lt;/li>
&lt;/ul>
&lt;h2 id="前置知识">前置知识&lt;/h2>
&lt;ul>
&lt;li>神经网络基础（前向传播、反向传播）&lt;/li>
&lt;li>熟悉 PyTorch（&lt;code>nn.Module&lt;/code>、张量、优化器）&lt;/li>
&lt;li>本系列第一部分（推荐但非必需）&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="1-lstm-要解决的问题">1. LSTM 要解决的问题&lt;/h2>
$$h_t = \tanh(W_h h_{t-1} + W_x x_t + b).$$$$\frac{\partial h_T}{\partial h_k} = \prod_{t=k+1}^{T} \mathrm{diag}\!\left(1 - h_t^2\right) W_h.$$&lt;p>两种坏情况都会发生：&lt;/p></description></item><item><title>时间序列模型（一）：传统统计模型</title><link>https://www.chenk.top/zh/time-series/01-%E4%BC%A0%E7%BB%9F%E6%A8%A1%E5%9E%8B/</link><pubDate>Sun, 01 Sep 2024 09:00:00 +0000</pubDate><guid>https://www.chenk.top/zh/time-series/01-%E4%BC%A0%E7%BB%9F%E6%A8%A1%E5%9E%8B/</guid><description>&lt;blockquote>
&lt;p>&lt;a href="https://www.chenk.top/zh/%e6%97%b6%e9%97%b4%e5%ba%8f%e5%88%97%e6%a8%a1%e5%9e%8b-%e4%ba%8c-LSTM/">下一篇：LSTM 深度解析 &amp;ndash;&amp;gt;&lt;/a>
&lt;/p>
&lt;/blockquote>
&lt;h2 id="本章要点">本章要点&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>平稳性&lt;/strong>为什么是整个 ARIMA 家族的入场券，差分如何换来它。&lt;/li>
&lt;li>像 Box-Jenkins 学派那样阅读 &lt;strong>ACF / PACF&lt;/strong>：用 &amp;ldquo;截尾 vs 拖尾&amp;rdquo; 这条规则识别 $p$ 与 $q$。&lt;/li>
&lt;li>&lt;strong>ARIMA / SARIMA&lt;/strong> 的完整机器，以及季节性如何通过滞后 $s$ 算子被纳入模型。&lt;/li>
&lt;li>&lt;strong>VAR、GARCH、指数平滑、Prophet 与卡尔曼滤波&lt;/strong>如何被装进同一张地图：均值动态 vs. 方差动态 vs. 状态空间递推。&lt;/li>
&lt;li>一条决策规则：什么时候传统模型就够了，什么时候必须升级到本系列后面的深度模型。&lt;/li>
&lt;/ul>
&lt;h2 id="前置知识">前置知识&lt;/h2>
&lt;ul>
&lt;li>基本的概率与统计（均值、方差、协方差、相关系数）。&lt;/li>
&lt;li>熟悉 NumPy 和 &lt;code>pandas&lt;/code> 的时间索引。&lt;/li>
&lt;li>VAR / 卡尔曼小节会用到一点线性代数（矩阵乘法、特征值）。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="1-为什么传统模型仍然重要">1. 为什么传统模型仍然重要&lt;/h2>
&lt;p>在深度学习时代之前，时间序列工具箱已经相当完备。ARIMA 抓线性自相关，SARIMA 把日历效应补上，VAR 推广到多元，GARCH 描述方差动态，卡尔曼滤波则在状态空间框架下统一了上面所有人。它们共享三条深度模型并不免费提供的优点：&lt;/p></description></item></channel></rss>