【深度学习】——循环神经网络RNN及实例气温预测

news2024/11/15 17:52:46

 引言


       密集连接网络和卷积神经网络都有主要的特点,那就是它们没有记忆。它们单独处理每个输入,在输入和输入之间没有保存任何状态。举个例子:当你在阅读一个句子的时候,你需要记住之前的内容,我们才能动态的了解这个句子想表达的含义。生物智能已渐进的方式处理信息,同时保存一个关于所处理内容的内部模型,此模型是根据过去额信息构建的,并随着新的信息进入不断更新。比如股票预测、气温预测等等。

一、mlp和RNN结构

                   

 RNN特点:前部序列的信息经处理后,作为输入信息传递后部序列。

手写一下啦,本博主有点懒,懂了就阔以啦! 肯定权重是一样的。

二、不同的RNN结构

(1)多输入多输出,维度相同RNN结构

       应用:特定信息识别

结构如图:

                                                      

(2)多输入单输出

         应用:情感识别

          举例:I feel very happy.

          判断:positive

结构如图:

(3)单输入多输出

         应用:序列数据生成

         举例:文章生成(输入标题直接出文章)

 结构如图:

(4)多输入多输出(i\neqj)

        应用:语言翻译

        举例:what is artificial intelligence?

        什么是人工智能?

 结构如图:

 介绍了常见的RNN结构。但是这些结构在当前部序列信息在传递到后部的同时,信息权重下降,导致重要信息丢失。也称为(梯度消失)。由于这个问题接下来提出了长短期记忆网络(LSTM)。

三、长短期记忆网络(LSTM)

                            

通过a^{i}传递前部序列信息,距离越远信息丢失越多(从彩色图可以很好的体现)。

 增加记忆细胞,可以传递前部远处部位信息,且在传递过程中信息丢失少。

内部结构:

 忘记门:选择性丢弃

 中不重要的信息。

更新门:确定给记忆细胞添加哪些信息。

输出门:筛选需要输出的信息。

 结构如图:

 在网络结构很深(很多层)的情况下,也能保留保留重要的信息;

解决了普通RNN求解过程中的梯度消失问题。

四、温度预测问题——神经网络基于GUR

数据集介绍:

 除了语言处理,其他许多问题中也都用到了序列数据。温度预测数据集,每十分钟记录14分不同的量(比如气温、气压、湿度、风向等)我们将利用2009-2016年的数据集构建模型,输入最近数据,预测24小时之后的气温。​​​​​​¶

(一)读入数据两种方式介绍:

(1)dataframe格式:

注意:

Initializing from file failed
由于文件中存在中文所以加后面engine='python'

data1=pd.read_csv('/data/jena_climate_2009_2016.csv',engine='python')

后续简单操作代码如下:转化成数组

data=data1.copy()
df=data.values
data=df[:,1:]
data
data = np.array(data, dtype=np.float64)#方便后面数据标准化

(2)str格式:

import os
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
data_dir='/data'
fname=os.path.join(data_dir,'jena_climate_2009_2016.csv')
f=open(fname)
data=f.read()
f.close()
lines=data.split('\n')
header=lines[0].split(',')
header

 后续简单操作代码如下:转化成数组

float_data=np.zeros((len(lines),len(header)-1))
for i,line in enumerate(lines):
    values=[float(x) for x in line.split(',')[1:]]
    float_data[i,:]=values

结果如图:

补充 :enumerate()函数

英语翻译:就是枚举

names = ["Alice","Bob","Carl"]
for index,value in enumerate(names):
    print(f'{index}: {value}')

 看结果就懂了:

0: Alice
1: Bob
2: Carl

(二)分析数据,数据可视化 

from matplotlib import pyplot as plt
temp=data[:,1]
plt.plot(range(len(temp)),temp)#可以看出每年温度的周期性变化
#看完整体看局部前十天的温度变化
#首先呢每十分钟记录一个数据点,一天则可以记录144个数据点,则十天记录1440个数据点
plt.plot(range(1440),temp[:1440])#后面是冬季

结果如图:

    

 (三)处理数据,可以输入RNN模型

(1) 首先数据预处理(将数据处理为神经网络可以处理的格式,由于已经是数值型的,所以不需要向量化)。
但是由于数据每个时间序列位于不同的范围所以我们需要对每个时间序列进行标准化,让他们在相似范围内都取较小的值。
我们采取200 000个时间作为训练数据。

mean=data[:200000].mean(axis=0)
print(mean)
std=data[:200000].std(axis=0)
print(std)
data_-=mean
data_/=std

 (2)提取序列数据

首先介绍Input_shape=(samples,time_steps,features)

举个例子:比如700个数据,我用8个数据去预测第九个数据:

[1 , 2 , . . . ,8]      ----9   ——x_{1}

[2 , 3 , . . . ,9]      ----10 ——x_{2}

[3 , 4 , . . . ,10]

.

and so on。                   ——x_{n} n 代表samples     

time_steps=8

features:样本特征维数(自然语言处理十分重要 one-hot格式比如001对应三),这里数据是单维度则为1.

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

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

相关文章

三、SqlSession的创建以及执行流程

简介 SqlSession接口提供了查询,插入,更新,删除方法,Mybatis中所有的数据库交互都由SqlSession来完成。SqlSession 对象完全包含以数据库为背景的所有执行 SQL 操作的方法,它的底层封装了 JDBC 连接,可以用…

微服务链路追踪SkyWalking学习笔记

目录 1、skywalking是什么 1.2 链路追踪框架对比 1.3 性能对比 1.4 Skywalking主要功能特性 2、 SkyWalking 环境搭建部署 2.1 下载 SkyWalking 2.2 搭建SkyWalking OAP 服务 2.3 SkyWalking中三个概念 3、 SkyWalking 接入微服务 3.1 linux环境—通过jar包方式接入 …

SAP ADM100-2.5 系统启动:日志文件

本节将介绍SAP ABAP系统启动时最重要的log文件和Trce文件,以掌握通过使用系统启动log文件和trace文件分析系统问题。 1、记录系统启动过程 启动过程是一个特别重要的阶段,因此该过程将被操作系统、SAP系统、数据库记录。如果SAP系统没有启动,那么你将在log日志文件中发现相…

C#使用IronPython调用Python

一、前言以下摘自百度百科:IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。1.0 版于2006年9月5日发布。随后,在 2007 年,开发者决定改写架构&#…

音视频xxxx

文章目录前言编解码硬件解码(高级)软解码(低级)软、硬解码对比视频解码有四个步骤Android 系统中编解码器的命名方式查看当前设备支持的硬解码基础知识RGB色彩空间常见的格式对比YUV索引格式分离RGB24像素数据中的R、G、B分量BMP 文件格式格式组成像素排列顺序RGB24格式像素数据…

Apache Solr 9.1-(三)集群模式下通过Http API操作Apache Solr

Apache Solr 9.1-(三)集群模式下通过Http API操作Apache Solr Solr是一个基于Apache Lucene的搜索服务器,Apache Lucene是开源的、基于Java的信息检索库,Solr能为用户提供无论在任何时候都可以根据用户的查询请求返回结果&#xf…

网络原理(TCP/IP)(3)

4)滑动窗口 1)咱们滑动窗口的效果就是说在我们尽可能地保证可靠性的情况下,尽可能的提高传输效率2)况且咱们进行发送滑动窗口的本质就是说进行批量的发送数据,咱们尽可能说是把等待ACK的时间总体进行缩短,咱们可以把等待一份ACK的时间变成等待…

凸优化学习:PART1凸集

凸优化学习PART1 一、引言:优化问题简介 优化问题的定义 凸优化是优化的一种,是优化中比较容易的问题。在讲解优化问题前,首先说明什么是优化/数学规划(Optimization/Mathematical Planning)。 优化:从一…

搭建electron开发环境

electron是使用js,html,css构建桌面端应用程序的框架,可以使用electron开发Windows和Mac端应用。 安装nodejs,npm,cnpm 首先需要安装nodejs,npm和cnpm,安装后在命令行输入 node -v 和npm -v,如果输出了版本号,说明已经正常安装。…

数据仓库-数据模型建设方法总结(全)

一、大数据领域建模综述 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面临的一个挑战。 数据模型强调从业务、数据存取和使用角度合理存储数据。 数据模型方法,以便在性能、成本、效率之间取得最佳平衡 成本:良好的数据模型能极大地减少不必…

MyBatis:批量添加记录

MyBatis,一款优秀的ORM映射框架,可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。同时,MyBatis提供了动态SQL特性&#x…

梦熊杯-十二月月赛-白银组题解-C.永恒

C. Problem C.永恒(eternity.cpp) 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述: 「稻妻」是「永恒」的国度。 巴尔泽布认为,如果一个数…

感知机与门电路

前言:简述单层感知机特征及三种表示方式,并用单层感知机描述门电路,借由单层感知机无法处理非线性空间的问题,引出多层感知机。 单层感知机 感知机(preceptron)接收多个输入信号,输出一个信号…

【Kubernetes 企业项目实战】05、基于云原生分布式存储 Ceph 实现 K8s 数据持久化(上)

目录 一、分布式存储 Ceph 基本介绍 1.1 块存储(rbd) 1.2 文件系统 cephfs 1.3 对象存储 1.4 分布式存储的优点 二、Ceph 核心组件介绍 三、准备安装 Ceph 高可用集群的实验环境 3.1 机器配置 3.2 初始化环境 3.3 配置互信 3.4 配置 Ceph 安…

【精选博客】反爬过程中 x-ca-nonce、x-ca-signature 参数的解密过程

本篇博客在 请求头 x-ca-key、x-ca-nonce、x-ca-signature 加密分析第一篇 的基础上继续编写,大家学习时可以从上一篇入手。 文章目录x-ca-nonce 代码实现python 实现 uuidx-ca-signature代码实现在上一篇博客我们已经捕获了参数的JS代码,这篇博客重点要…

Java设计模式-策略模式Strategy

介绍 策略模式(Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。这算法体现了几个设计原则,第…

这些学习技巧学起来

技巧一:组合多个对象 在PPT页面插入多个图形后,想要移动这些元素时,很多小伙伴会挨个拖动进行位置调整。其实,我们大可以使用快捷键【CtrlG】将多个同类的元素进行组合,使其成为一个图形元素,这样就可以方…

springboot整合mybatis-plus及mybatis-plus分页插件的使用

springboot整合mybatis-plus及mybatis-plus分页插件的使用1. mybatis-plus?2. 引入依赖3. 编写配置文件4. 编写sql表5. mapper层5.1 mybatis-plus做了什么?及创建mapper接口5.2 baseMapper源码6. service层及controller层6.1 service层6.2 controller层6.2.1 page对…

【html】超链接样式

超链接样式超链接样式超链接样式 根据超链接的类型&#xff0c;显示不同图片的前缀 根据 <!doctype html> <html> <head> <meta charset"utf-8"> <title></title> <style type"text/css"> body {background: …

C# 托管堆遭破坏问题溯源分析

一&#xff1a;背景 1. 讲故事 年前遇到了好几例托管堆被损坏的案例&#xff0c;有些运气好一些&#xff0c;从被破坏的托管堆内存现场能观测出大概是什么问题&#xff0c;但更多的情况下是无法做出准确判断的,原因就在于生成的dump是第二现场&#xff0c;借用之前文章的一张…