ML读书笔记(循环神经网络)

目的:捕捉序列中的长距离依赖关系

A. 文本分类的RNN:

net_{t}=Ux_{t}+Wh_{t-1}

h_{t}=f(net_{t})  过激活函数f得到h

y=g(Vh_{T})  最后一个时刻的h,编码了整个输入序列,在最后一个时刻的h上加输出层,过softmax,得到各个类别的概率;

B.

BPTT(Back Propagation Through Time)

梯度爆炸:使用梯度裁剪来缓解,当梯度的L2-Norm大于某个给定值时,对梯度进行等比收缩;(Tensorflow里的tf.clip_by_norm)

梯度消失:传统前馈网络,通过ReLU,Resnet等解决;RNN使用LSTM和GRU等gate解决;

C.

f如果使用ReLU做激活函数,则会在激活区域(即x>0的区域)造成多个W连乘,最终结果很可能趋于0或者无穷,即引发数值问题;同理,反向传播时,梯度也成了多个W连乘,导致梯度消失或梯度爆炸;

只有当W在单位矩阵附近时,以上问题才解决;所以有一种思路是初始化W为单位矩阵附近;

CNN和RNN用ReLU做激活函数,因为他们的权重矩阵W是不同的,因此可以相互抵消

D. LSTM (注意c是记忆,h是输出的隐状态(短记忆!))

长期记忆:遗忘门的值接近1,输入门的值接近0

短期记忆:遗忘门的值接近0,输入门的值接近1

E.

3种gate使用sigmoid函数,值域0~1, 符合门控的物理意义(0是关门,1是开门);(Attention中的门控用的也是sigmoid)

生成候选记忆\tilde{C}使用tanh函数,值域-1~1,符合特征分布以0为中心的常识;

F.

机器翻译:解码器,输入的第1个词是<EOS>,解码输出遇到<EOS>则终止;

BeamSearch: 每一步保留N个最优解;(N一般取8~12);

常用技术:多层RNN、dropout、残差网络、顶层输出加CRF、attention

G.

RNN,包括LSTM等,包括双向RNN, 都有当前时刻的h重点编码了和他最近的几个时刻的倾向(离当前时刻远的那些时刻们,往往被当前时刻所淡化),所以要用attention,所以要用Transformer那种无视顺序的;

attention把解码器上一时刻隐层输出,和编码器所有时刻隐层输出,依次点乘过softmax得权重,编码器所有时刻隐层输出的加权和,当做解码器当前时刻的重要输入(还有上一时刻隐层输出,上一时刻输出层结果的embedding)

attention一定程度上解决了编码长序列的问题;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值