客户网站建设确认书,用jsp做的网站源代码,企业网站建设方案百度文库,全网零售管理系统RNN循环神经网络
应用#xff1a;
物体移动位置预测、股价预测、序列文本生成、语言翻译、从语句中自动识别人名、 问题总结 这类问题#xff0c;都需要通过历史数据#xff0c;对未来数据进行预判
序列模型
两大特点
输入#xff08;输出#xff09;元素具有顺序关系…RNN循环神经网络
应用
物体移动位置预测、股价预测、序列文本生成、语言翻译、从语句中自动识别人名、 问题总结 这类问题都需要通过历史数据对未来数据进行预判
序列模型
两大特点
输入输出元素具有顺序关系有前后关系输入输出不定长。如文章生成、聊天机器人
简单理解 以人名识别为例
常见结构
多输入单输出结构
eg. 自然语言文字的情感识别 输入语句文字为多个输入信息 输出情感判断是积极的还是消极的
单输入多输出结构
eg. 序列数据生成器根据关键词生成文章、音乐等 输入关键词单维信息 输出文章多元信息
多输入多输出结构
eg. 语言翻译 输入中文n维数据 输出英文m维数据
普通RNN模型
越新的信息对结果的影响占比越大越旧的信息对结果的影响占比越小 缺陷 可能导致重要的旧信息丢失图中蓝色在y中的占比即表示旧信息在结果中的影响占比
长短期记忆网络LSTM
算法逻辑增加记忆细胞 C[i]以记忆重要信息
双向循环神经网络BRNN)
简单理解 : 普通循环神经网络只根据上文推测下文双向循环神经网络则是根据上文和下文来推测当前片段。
深层循环神经网络DRNN
简单理解 单层RNNMLP实现更好的拟合效果
实战一RNN实现股价预测
算法效果
给定数据-时间轴数据集 设定Input_shape (samples, time_steps, features) , sample表示样本数量默认为根据输入数据自动计算 time_steps表示每次用前time_steps个数据预测下一个数据 features 表示样本的特征维数 生成预测曲线
算法流程
Step 1. 数据载入 与 预处理 序列切断按time_steps的长度对被预测数据进行切断
# 数据切断函数
import numpy as np
def extract_data(data,time_step):x[] #前time_step个时间点的数据y[] #当前被预测时间点的数据for i in range(len(data)-time_step):x.append( [a for a in data[i:itime_step] ] )y.append( data[itime_step] )x np.array(x)x x.reshape(x.shape[0],x.shape[1],1)y np.array(y)return x,y
time_step int(input(输入参考时间区间的长度))
x,y extract_data(price_norm,time_step)
#print(x.shape)Step 2. 建立RNN模型
from keras.models import Sequential
from keras.layers import Dense,SimpleRNN
#顺序模型
model Sequential()
#RNN层
model.add( SimpleRNN(units5, #神经元个数input_shape (time_step,1),# 输入格式以前time_step为根据预测当前位置# 数据维数为 1activation relu,# 激活函数用relu)
)
#输出层
model.add(Dense(units1,activationlinear))
#参数设置
model.compile(optimizeradam, lossmean_squared_error, #平方差metrics[accuracy] #这个模型看accuracy没有意义
)
model.summary()Step 3. 预测
pred_y_train model.predict(x) * max(price) #逆归一化
y_train y*max(price)
#训练数据-预测训练数据预览
from matplotlib import pyplot as plt
fig1 plt.figure(figsize(8,5))
truth, plt.plot(y_train)
pred, plt.plot(pred_y_train)
plt.title(close price)
plt.xlabel(date)
plt.ylabel(price)
plt.legend( (pred,truth), (pred_line,true_line))
plt.show()实战二LSTM自动生成文本
算法效果
给定文本数据集 构建 文本-编码字典 输入 编码后的文本数据 生成预测文本的编码 编码转文本
算法流程
Step 1. 数据载入 与 预处理 Step 2. 建立RNN模型 Step 3. 预测