RNN循环神经网络
应用:
物体移动位置预测、股价预测、序列文本生成、语言翻译、从语句中自动识别人名、
问题总结 这类问题,都需要通过历史数据,对未来数据进行预判
序列模型
两大特点
- 输入(输出)元素具有顺序关系,有前后关系
- 输入输出不定长。如:文章生成、聊天机器人
简单理解
以人名识别为例
常见结构
多输入单输出结构
eg. 自然语言文字的情感识别
输入:语句(文字为多个输入信息)
输出:情感判断(是积极的还是消极的)
单输入多输出结构
eg. (序列数据生成器)根据关键词生成文章、音乐等
输入:关键词(单维信息)
输出:文章(多元信息)
多输入多输出结构
eg. 语言翻译
输入:中文(n维数据)
输出:英文(m维数据)
普通RNN模型
越新的信息对结果的影响占比越大,越旧的信息对结果的影响占比越小
缺陷 : 可能导致重要的旧信息丢失(图中蓝色在y中的占比即表示旧信息在结果中的影响占比)
长短期记忆网络(LSTM)
算法逻辑:增加记忆细胞 C[i],以记忆重要信息
双向循环神经网络(BRNN)
简单理解 : 普通循环神经网络,只根据上文推测下文;双向循环神经网络,则是根据上文和下文来推测当前片段。
深层循环神经网络(DRNN)
简单理解 单层RNN+MLP,实现更好的拟合效果
实战一:RNN实现股价预测
算法效果
给定(数据-时间轴)数据集,
设定Input_shape = (samples, time_steps, features)
,
sample
表示样本数量(模型根据输入数据自动计算)
time_steps
表示每次用前time_steps个数据预测下一个数据
features
表示样本的特征维数
生成预测曲线
算法流程:
Step 1. 数据载入 与 预处理
Step 2. 建立RNN模型
Step 3. 预测
实战二:LSTM自动生成文本
算法效果
给定(文本)数据集,
构建 (文本-编码)字典
输入 编码后的文本数据
生成预测文本的编码
编码转文本
算法流程
Step 1. 数据载入 与 预处理
Step 2. 建立RNN模型
Step 3. 预测