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

深度学习-循环神经网络-RNN实现股价预测-LSTM自动生成文本

序列模型(Sequence Model)

image.png
image.png
基于文本内容及其前后信息进行预测
image.png
基于目标不同时刻状态进行预测
image.png
image.png
基于数据历史信息进行预测
序列模型:输入或者输出中包含有序列数据的模型
突出数据的前后序列关系
两大特点:

  1. 输入(输出)元素之间是具有顺序关系。不同的顺序,得到的结果应该是不同的,比如“不吃饭”和“吃饭不”这两个短语意思是不同的
  2. 输入输出不定长。比如文章生成、聊天机器人

循环神经网络(RNN)

image.png
前部序列的信息经处理后,作为输入信息传递到后部序列
任务:
自动寻找语句中的人名:
image.png
词汇数值化:建立一个词汇-数值一一对应的字典,然后把输入词汇转化数值矩阵
image.png
image.png
image.png
字典生成的另外一种方式
image.png

不同类型的RNN模型

RNN常见结构
image.png
image.png
多输入对多输出、维度相同RNN结构
应用:特定信息识别
image.png
应用:情感识别
举例:I feel happy watching the movie
判断:positive
image.png
应用:序列数据生成器
举例:文章生成、音乐生成
image.png
应用:语言翻译

普通RNN结构缺陷

  • 前部序列信息在传递到后部的同时,信息权重下降,导致重要信息丢失
  • 求解过程中梯度消失

需要提高前部特定信息的决策权重
image.png
长短期记忆网络(LSTM)
image.png
image.png
image.png

  • 忘记门:选择性丢弃a与x中不重要的信息
  • 更新门:确定给记忆细胞添加哪些信息
  • 输出门:筛选需要输出的信息

image.png

  • 在网络结构很深(很多层)的情况下,也能保留重要信息
  • 解决了普通RNN求解过程中的梯度消失问题

双向循环神经网络(BRNN)
image.png
做判断时,把后部序列信息也考虑
深层循环神经网络(DRNN)
解决更复杂的序列任务,可以把单层RNN叠起来或者在输出前和普通mlp结构结合使用
image.png

实战准备

实战一:RNN实现股价预测

提取序列数据:

def extract_data(data,slide):x=[]y=[]for i in range(len(data)-slide):x.append([a for a in data[i:i+slide]])y.append(data[i+slide])x=np.array(x)x=x.reshape(x.shape[0],x.shape[1],1)return x,y

建立普通RNN模型:

from keras.models import Sequential
from keras.layers import Dense,SimpleRNN
model = Sequential()
#增加一个RNN层
model.add(SimpleRNN(units=5,input_shape=(X.shape[1],X.shape[2]),activation='relu'))
#增加输出层
model.add(Dense(units=1,activation='linear'))
model.compile(optimizer='adam',loss='mean_squared_error')

image.png

实战二:LSTM自动生成文本

文本加载:

rew_data = open('flare').read()
# 移除换行字符'\n'
data = rew_data.replace('\n','').replace('\r','')

字符字典建立:

#字符去重
letters = list(set(data))
#建立数字到字符的索引字典
int_to_char = {a:b for a,b in enumerate(letters)}
#建立字符到数字的索引字典
char_to_int = {b:a for a,b 
http://www.lryc.cn/news/289270.html

相关文章:

  • 案例分享 | 助力数字化转型:嘉为科技项目管理平台上线
  • 深入理解 MySQL 中的 HAVING 关键字和聚合函数
  • GPT4.5人工智能即将来临,ChatGPT的正面影响和负面影响(好处和坏处),利弊分析
  • 条款47:请使用traits classes表现类型信息
  • 蓝桥杯省赛无忧 课件49 DFS-剪枝
  • Linux中查看端口被哪个进程占用、进程调用的配置文件、目录等
  • 大模型面试题总结
  • Authorization Failed You can close this page and return to the IDE
  • 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part2 自有数据集构建
  • 《设计模式的艺术》笔记 - 策略模式
  • 【Elasticsearch篇】详解使用RestClient操作索引库的相关操作
  • ES数据处理方法
  • STM32实现软件IIC协议操作OLED显示屏(2)
  • 【linux】远程桌面连接到Debian
  • python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-菜单管理实现
  • JS之隐式转换与布尔判定
  • ubuntu20根目录扩容
  • (四)DQL数据查询语言
  • 网络安全03---Nginx 解析漏洞复现
  • 第十四届蓝桥杯C组题目 三国游戏
  • 【LeetCode-435】无重叠区间(贪心)
  • 写读后感的时候,可以适当地引用书中的内容吗?
  • RockChip DRM Display Driver
  • 【数据库】GaussDB数据类型和简单DDL概述
  • malloc/free和new/delete相关问题:
  • 设计一套扑克牌
  • ubuntu20.04 外接hdmi没有声音
  • Mybatis 拦截器注册方式
  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕
  • 个体诊所电子处方系统设计,社区门诊处方开单管理系统软件教程