读书笔记:Deep Learning [Ada-Computation&ML series]--chapter10.Sequence Modeling:RNN

1.RNN的操作基于vecor X(t),长度从1->t,通常作用域这些序列组成的minibatch
2.如果要求h(t)足够丰富,可以近似恢复输入序列,则相当于auto encoder.
3.三种重要的RNN设计模式:
1)每个时间步都有输出,且在 隐单元间有循环链接
2)每个时间步都有输出,且在 当前时序的输出到下一时刻的隐单元之间有循环链接
3)隐单元间有循环连接,全部序列只有一个输出
4. 上一条中(1)的特点:能力强,但是训练昂贵,若运行时间为O(t),同样需要空间O(t)来存储BPTT是需要用到的中间结果。
(2)的特点:训练容易,可以并行,但是表达能力弱,只有O被送到未来,因为O是用来match训练集的,无法捕获到关于输入历史的必要信息,除非将其设计为train set target。
5.(2)可以使用teacher forcing的训练技巧,将t的label y(t)送到(t+1)的h(t+1)来训练,但是测试时没有label,就用t的model的输出o(t)来近似y(t).
6.rnn很难预测序列中的缺失值
7.RNN减少参数的代价是优化很难。参数共享是基于假设相同的参数可用于不同的时间步。也即变量的p(t+1/t)条件概率是平稳的,不依赖于t。
8.如何从模型中采样?
可以从每个时间步的条件分布区采。
如何确定长度?
1)在序列结尾加一个特殊符号
2)对于模型的输出,引入伯努利来决定是否停止,一般常用此法
3)添加额外的输出来预测序列长度
9.
10.添加o(t) -> h(t+1)会去掉条件独立的假设,使其可以表示任意关于y的分布。
11.B-RNN,在t附近很敏感,不用指明t,不想RNN带有固定长度的buffer。
12.encoder-decoder/seq-to-seq
RNN最后一个节点的状态别用于计算固定长度的contenxt viriable c,表示输入序列的语意总结。作为输入,送到decoder-RNN.
若C是vector,则decoder-RNN = vector to sequence,可以用前述两种方式实现,或者两者结合。
存在的问题是:若c太小不足以合理总结输入序列,那么可以使用变长的c。
13.一般RNN课分为三块:
1)Input to hidden state
2) pre hidden state to next hidden state
3) hidden state to output
这三种均可引入深层结构来提升表达能力,但会使优化更难
14.Recursive Network
优点:将长为t的序列构造成深度为O(log t)
如何构造?可以用平衡二叉树构造
15.长时依赖的问题:
对于 线性网络,若h(t) = (w)^T*h(0),且w可被分解为w = QAQ’
则h(t) = Q’*A^T*h(0),要么爆炸,要么消失
所以需要选择合适的比例系数(缩小w的variance),但是存在的问题是,即使梯度不消失,long-term的信号会很小,容易淹没short-term的信号中。
16.网络中的 非线性会有助于减少梯度爆炸,因为前向过程是有界的,但是反向仍可能无界。
17.Leaky unit:有一个权重接近1的自连接,可以累积信息,但是无法忘掉。
LSTM:最重要的成分是state unit si(t),有一个线性自循环,与leaky unit类似,但是它有forget gate控制。

(Ignore the input from cell state)
first we define forget gate:
f(t) = delta(b + Uf*X(t) + Wf*h(t-1) )     //b,Uf,Wf are input weight and recurrent weights for the forget gate
then we define state:
s(t) = f(t) * s(t-1) + g(t) * delta(b + U*X(t) + W*h(t-1) )     //b,U,W denote param into the LSTM cell
in which:
g(t) = delta(b + Ug*X(t) + Wg*h(t-1))     //similarly to forget gate
At last we define output:
h(t) = tanh(s(t)) * q(t)     //q(t) is output gate,h(t) is the output of LSTM cell
q(t) = delta(b + Uo*X(t) + Wo*h(t-1) )     //b,Uo,Wo…why not h(t)?? 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值