当前位置: 首页 > news >正文

珠海十大网站建设公司制作企业网站作业

珠海十大网站建设公司,制作企业网站作业,网页制作教程教程,wordpress商城主题模板下载地址序列模型是指一类特别设计来处理序列数据的神经网络模型。序列数据指的是数据中的每个元素都有先后顺序#xff0c;比如时间序列数据#xff08;股票价格、天气变化等#xff09;、自然语言文本#xff08;句子中的单词顺序#xff09;、语音信号等。 1 统计工具 前面介绍… 序列模型是指一类特别设计来处理序列数据的神经网络模型。序列数据指的是数据中的每个元素都有先后顺序比如时间序列数据股票价格、天气变化等、自然语言文本句子中的单词顺序、语音信号等。 1 统计工具 前面介绍了卷积神经网络架构但是在处理序列数据时需要新的神经网络架构下面以股票价格为例 我们用 x t x_{t} xt​表示价格其中 t t t表示时间步(time step)也就是在时间步 t t t时观察到的价格 x t x_{t} xt​我们通过下列公式来表示我们预测第 t t t日的价格 x t ∼ P ( x t ∣ x t − 1 , … , x 1 ) . x_t \sim P(x_t \mid x_{t-1}, \ldots, x_1). xt​∼P(xt​∣xt−1​,…,x1​). 即在已知 1 1 1 到 t − 1 t-1 t−1 的价格求第 t t t 天的价格的概率分布。 1.1 自回归模型 为了实现这个预测可以使用自回归模型假设当前值 y t y_{t} yt​ 与过去的值 y t − 1 , y t − 2 , . . . y t − p y_{t-1} , y_{t-2} , ...y_{t-p} yt−1​,yt−2​,...yt−p​ 之间存在线性关系一般形式为 其中 大致分为两种策略 ①自回归模型 假设在现实情况下相当长的序列 x t − 1 , … , x 1 x_{t-1}, \ldots, x_1 xt−1​,…,x1​可能是没价值的因此我们只需要满足某个长度为 τ \tau τ的时间跨度 即使用观测序列 x t − 1 , … , x t − τ x_{t-1}, \ldots, x_{t-\tau} xt−1​,…,xt−τ​。也就是说过长的历史序列可能并不必要因此只需要关注较短的一段历史数据即可。因为只考虑观测值本身所以叫自回归模型 ②隐变量自回归模型 即保留一些对过去观测的总结 h t h_{t} ht​这个“总结”是无法直观解释的它是模型自助捕捉的内部关系依赖然后同时更新预测值 x ^ t \hat{x}_t x^t​和 h t h_t ht​即变为下列式子 x ^ t P ( x t ∣ h t ) 和 h t g ( h t − 1 , x t − 1 ) \hat{x}_t P(x_t \mid h_{t}) 和h_t g(h_{t-1}, x_{t-1}) x^t​P(xt​∣ht​)和ht​g(ht−1​,xt−1​)由于 h t h_{t} ht​ h t h_{t} ht​从未被观测到这类模型也被称为隐变量自回归模型这里做出一个假设即序列本身的动力学数据随时间演变的方式不会改变意味着我们可以用过去的数据来推断未来的趋势因为我们假定基本的动态规则是一致的。因此整个序列的概率值可以表示为一系列条件概率的乘积 P ( x 1 , … , x T ) ∏ t 1 T P ( x t ∣ x t − 1 , … , x 1 ) . P(x_1, \ldots, x_T) \prod_{t1}^T P(x_t \mid x_{t-1}, \ldots, x_1). P(x1​,…,xT​)t1∏T​P(xt​∣xt−1​,…,x1​). 注意如果我们处理的是离散的对象如单词 而不是连续的数字则上述的考虑仍然有效。我们需要使用分类器而不是回归模型来估计 1.2 马尔可夫模型 马尔可夫条件 在自回归模型中如果 t t t 时刻的数值只与 x t − 1 , … , x t − τ x_{t-1}, \ldots, x_{t-\tau} xt−1​,…,xt−τ​ 有关而不是整个过去的序列则称其满足马尔可夫条件。 如果 τ 1 \tau 1 τ1 则得到了一个一阶马尔可夫模型 P ( x ) P(x) P(x)由如下公式表示 P ( x 1 , … , x T ) ∏ t 1 T P ( x t ∣ x t − 1 ) 当  P ( x 1 ∣ x 0 ) P ( x 1 ) . P(x_1, \ldots, x_T) \prod_{t1}^T P(x_t \mid x_{t-1}) \text{ 当 } P(x_1 \mid x_0) P(x_1). P(x1​,…,xT​)t1∏T​P(xt​∣xt−1​) 当 P(x1​∣x0​)P(x1​). 若当假设 x t x_t xt​ 仅是离散值时可以使用动态规划可以沿着马尔可夫链精确地计算结果。 2 训练、预测 下面我们将用一个正弦函数和一些噪声生成1000个序列数据并使用自回归模型进行训练和预测 2.1 生成数据 import torch from torch import nn import matplotlib.pyplot as plt import numpy as np from torch.utils.data import TensorDataset, DataLoaderT1000 timetorch.arange(1,T1,dtypetorch.float32) xtorch.sin(0.01*time)torch.normal(0,0.2,(T,)) # 绘制折线图 plt.plot(time, x) plt.xlabel(Time) plt.ylabel(Value) plt.title(Time Series Data) plt.show()运行结果 2.2 构造数据集 我们是准备用 y t F ( X t ) y_tF(X_t) yt​F(Xt​)其中 X t [ x t − τ , … , x t − 1 ] X_t [x_{t-\tau}, \ldots, x_{t-1}] Xt​[xt−τ​,…,xt−1​]我们这里假设 τ 4 \tau4 τ4即用前四个数据来预测下一个数据但是这样的话前 4 4 4 个数据就没有历史样本去描述了一般的做法是直接舍弃或者用零序列去填充。 这里我们用600个数据进行训练剩余的用于预测。 构建数据集时使用滑动窗口去构建 # 构造数据集 tau4# 初始化特征矩阵因为前四个值就是当前值的特征 features torch.zeros((T - tau, tau)) for i in range(T - tau): # 用滑动窗口进行构建features[i,:]x[i:taui] print(features:,features.shape) print(features[:5])labels x[tau:].reshape((-1, 1)) print(labels:,labels.shape) print(labels[:5])batch_size 16 n 600 # 只有前600个样本用于训练 dataset TensorDataset(features[:n], labels[:n]) train_iter DataLoader(dataset, batch_sizebatch_size, shuffleFalse)运行结果 2.3 构造模型进行训练 # 构造模型 def init_weights(m):if type(m)nn.Linear:nn.init.xavier_uniform_(m.weight)def net():netnn.Sequential(nn.Linear(4,10),nn.ReLU(),nn.Linear(10,1))net.apply(init_weights)return net# 评估模型在给定数据集上的损失 def evaluate_loss(net, data_iter, loss):评估模型在给定数据集上的损失net.eval() # 设置模型为评估模式total_loss 0.0with torch.no_grad(): # 不计算梯度for X, y in data_iter:y_hat net(X)l loss(y_hat, y)total_loss l.sum().item() # 计算总损失net.train() # 恢复模型为训练模式return total_loss / len(data_iter.dataset)lossnn.MSELoss(reductionnone) lr0.01 netnet() optimzertorch.optim.Adam(net.parameters(),lr) loss_sum[] num_epoch20 def train(net,num_epoch,train_iter,loss,optimzer,loss_sum):for epoch in range(num_epoch):for x,y in train_iter:optimzer.zero_grad()lloss(net(x),y)l.sum().backward()optimzer.step()tempevaluate_loss(net,train_iter,loss)loss_sum.append(temp)print(epoch ,epoch1,: loss:,temp)train(net,num_epoch,train_iter,loss,optimzer,loss_sum)# 绘制折线图 plt.plot(range(num_epoch), loss_sum) plt.xlabel(epoch) plt.ylabel(loss) plt.show()运行结果 2.4 预测 # 使用模型进行预测 def predict(net, data_iter):net.eval() # 设置模型为评估模式predictions []with torch.no_grad(): # 不计算梯度for X, y in data_iter:y_hat net(X)predictions.extend(y_hat.numpy())net.train() # 恢复模型为训练模式return predictions# 获取测试集的预测结果 predictions predict(net, test_iter)# 绘制预测结果与真实值的对比图 true_values labels[n:].numpy() plt.plot(true_values, labelTrue Values) plt.plot(predictions, labelPredictions) plt.xlabel(Time) plt.ylabel(Value) plt.legend() plt.show()运行结果 2.5 多步预测 # 多步预测 def multistep_predict(net, data_iter, steps):net.eval() multistep_predictions []with torch.no_grad(): for X, y in data_iter:current_features X.clone()for _ in range(steps):在每一步中模型用 current_features 作为输入并预测出 y_hat。然后将 y_hat 拼接到 current_features 的末尾同时移除 current_features 的第一个时间步保持输入长度不变。这样y_hat 成为下一步的输入y_hat net(current_features)current_features torch.cat([current_features[:, 1:], y_hat], dim1)multistep_predictions.extend(y_hat.numpy())net.train() return multistep_predictions# 获取测试集的不同步数的多步预测结果 steps [4, 16, 32] multistep_predictions {step: multistep_predict(net, test_iter, step) for step in steps}# 绘制结果 plt.figure(figsize(12, 6)) # 设置图像的宽度为12英寸高度为6英寸 plt.plot(true_values, labelTrue Values) plt.plot(ones_predictions, label1-step Predictions) for step, preds in multistep_predictions.items():plt.plot(preds, labelf{step}-step Predictions) plt.xlabel(Time) plt.ylabel(Value) plt.legend() plt.show()上述的多步预测是迭代预测法即用自己预测数据再去预测下一个数据另一种方法是seq2seq后面在介绍迭代预测法如下图所示
http://www.dnsts.com.cn/news/78804.html

相关文章:

  • 公司网站开发交接注意事项重庆设计集团有限公司
  • 做招聘信息的网站wordpress手机适配模板中文
  • 新公司在哪做网站企业公司信息网
  • 文章类网站源码网易企业邮箱密码格式
  • 网站维护服务基本内容石家庄建站平台
  • 重庆有效的网站推广四川高速建设公司网站
  • 广西建设工程质检安全网站大连线上教学
  • 如何做网站 百度经验网站横幅怎么更换
  • 就业服务网站建设方案qq群怎么推广
  • php网站编程邮箱域名
  • 网站设计公司请示在招聘网站做销售怎么样
  • vs网站模板网上怎么做宣传啊
  • 全国网站建设大赛网站建设费走什么费用
  • 如何建网站老鱼网seo优化软件
  • 有哪几个网站可以做贸易html5自适应网站模版
  • 厦门市建设工程在哪备案网站湛江网站建设服务
  • 哈尔滨自主建站模板东营企业自助建站
  • 网优 是什么网站网站代码的重点内容是什么
  • 临沂品牌网站建设公司网站多个页面要加引导
  • 天津电子商务网站怎样学做网站
  • 网站信息备案变更 哪里做如何申请建设网站首页
  • 高端网站设计报价表wanwang
  • 大学学校网站建设方案简单小网站
  • 黑帽seo怎么做网站排名制作网页的图片
  • 网站简单设计网站两侧对联广告图片
  • 河南平顶山网站建设公司南昌百度推广公司
  • 南雄市建设局网站博物馆建设网站
  • 尤溪建设局网站建设银行北海分行网站
  • 三网合一 营销型网站有什么好的网站可以接单子做
  • 天王手表官方网站免费域名注册2023