跟着李沐学Pytorch--序列模型(一)

一、序列数据
在这里插入图片描述
在这里插入图片描述
二、统计工具
在时间t观察到xt,那么得到T个不独立的随机变量(x1 ~ xT)~ P(x)
(前后不受到影响,互相独立)
使用条件概率展开 p(a,b)=p(a)p(b|a)=p(b)p(a|b)

三、序列模型在这里插入图片描述
正向:先得到X1,再推x2,x2是依赖于x1,同理,x3依赖于之前的x1,x2.
反向:(已知未来推过去)先得到xT,再反过来推。在物理层面上是不可行的,因为很多的理论是基于之前的理论。

四、自回归模型
自回归模型:给过去的数据,预测下一个数据
对条件概率建模
预测在这里插入图片描述
预测xt,对之前的xt-1个数据进行建模,也就是训练xt-1个数据,表示为f(x1,x2,…xt-1)
核心思想:怎么计算 P(xt | xt−1, . . . , x1)

4.1自回归模型(马尔科夫假设)
假设在现实情况下相当⻓的序列 xt−1, . . . , x1 可能是不必要的(如果数据很长要往前推很多,在很多时候太前的数据是没有太多的参考意义,并且会增加计算量)。
在这里插入图片描述
因此我们只需要满⾜某个⻓度为τ 的时间跨度,即使⽤观测序列 xt−1, . . . , xt−τ,只与τ个数据点相关,例如在过去的数据上训练一个MLP模型。

4.2 潜变量模型(隐变量⾃回归模型)
引用潜变量ht来表示过去的信息ht=f(x1,…xt-1)
这样xt=p(xt|ht)
在这里插入图片描述
例如h1 与之前的x和h有关,x1 只与h1有关,这样可以的到xt只与一个或者两个变量有关(xt-1、ht-1)

五、总结
1、时序数据中,当前的数据狠之前观察到的数据相关
2、自回归模型使用自身过去数据来预测未来
3、马尔科夫模型假设当前只跟最近少数数据相关(固定长度),从而简化模型
4、潜变量模型使用潜变量来概括历史信息(模型变成两块,更新潜变量和更新数据)

### 关于李沐深度学习笔记中的序列模型 #### 数据生成与预处理 为了研究序列模型,在实验中使用正弦函数加上定量的可加性噪声来创建具有时间特性的数据集[^2]。这些数据的时间跨度设定为从11000个时间单位。 #### 输入输出关系构建 对于每个时间点\(t\),目标变量\(y_t\)被设置成等于当前时刻的特征值\(x_t\);而输入向量\(x_t\)则由前\(\tau\)个时间步的数据组成,即\[x_t=[x_{t-\tau},...,x_{t-1}]\]。 #### 模型结构设计 采用了个相对基础的设计——个多层感知器(MLP),它包含了两层全连接神经网络以及中间使用的ReLU作为激活函数,并利用均方误差(MSE)作为损失函数来进行优化过程。 ```python import torch.nn as nn class SimpleRNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(SimpleRNN, self).__init__() self.hidden_layer_1 = nn.Linear(input_size * tau, hidden_size) self.relu_activation = nn.ReLU() self.output_layer = nn.Linear(hidden_size, output_size) def forward(self, x): out = self.hidden_layer_1(x.view(-1)) out = self.relu_activation(out) out = self.output_layer(out) return out ``` #### 训练流程概述 经过系列迭代之后,该简单架构能够学会捕捉给定序列内部存在的模式并据此做出合理预测。 #### 预测性能评估 除了单步向前看之外,还探讨了如何实现更长远范围内的多步乃至K步外推能力测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值