1.one to one 模型
如何对时序数据建模?
人类大脑在阅读时,并不是把一段文字看完在思考,而是边思考变阅读,随着看完后就积累了整段文字的大意,因此处理时序数据就不能使用one to one 模型
什么是one to one模型?
一个输入对应一个输出,例如输入一张图片,输出类别概率值,one to one 适应图片,但是不适应文件,因为文本的输入不固定,输出也不固定,一句话可长可短,翻译时输出也是可长可短,
因此one to one模型不适合时序数据,适合时序数据的模型应该是 many to many 或者 many to one,RNN就是这样的模型
rnn的ht和人的大脑很类似,人的大脑随着阅读会积累信息,那么ht也会随着输入积累序列的信息
h_0 只积累了输入x_0的信息,h_1积累了输入x_0和x_1的信息,,,,h_t积累了输入的x_0、x_1、x_2、、、x_t的信息,注意这里的rnn只有一个参数A,无论链多长,只有一个参数A,A的参数开始是随机初始化,利用训练数据学习A的参数
2.Simple RNN
- 简单的simple RNN可以发现输入和输出以及参数之间的关系,首先输入是有两部分组成,输入的x_t和上一个输出的状态h_t-1的concat链接,A矩阵就是RNN的需要学习的矩阵,tanh是激活函数,h_t是当前的输出
2.这里在获取状态前需要经过tanh激活函数,没有激活函数是否可以?答案是不可以
因为如果没有激活函数,多层后,输出的状态值要么爆炸,要么为0,使用激活的目的就是对数据进行正则化,使其规范到0到-1