RNN:循环神经网络
本文最后更新于一年前或更久前,其中的信息可能已经有所发展或是发生改变。

这是一篇学习笔记,故内容相对杂乱

RNN循环神经网络Part Ⅰ

有记忆的
给memory要赋予初始值
输入一摸一样的input output也是根据memory有所不同的
输出是根据输入和memory两部分决定输出的


这并不是3个Network,是同一个Network在不同时间被启用了三次


由于store的不一样,输出也相应地不一样

👆Elman Network

👇Jordan Network

是将输出放进memory的,这样可以确定放在memory的是什么【是有限个】

Bidirectional RNN

双向的RNN 可以接入一个结果,一起接决定最终结果

看的范围比较广

LSTM long short-term memory 长短期记忆神经网络

只有Input gate打开的时候才能存入,否则无法存入memory cell,这个是由AI自己学习的
还有一个output gate,与上面同理
forget gate什么时候忘记掉

所以说Zf和Zi是决定是否存入的
Zf打开是记得,关闭是遗忘

例子

这是假设已经训练完了的模型

这和NN有什么关系呢,一个cell(就是一个上面的图的大方框)就是普通的1输入1输出,但是变成了四输入一输出罢了
LSTM的参数更多,一般需要四倍参数

和RNN的关系?

输入xt的不同维度乘以参数之后成为 z丢给不同的input,同理成为zf,zi,zo,一共四个vectors,合起来操控所有的memory cell的运作
丢到每一个cell的是每个vector的一个dimintion

然后还要乘五六层
现在大部分RNN都是LSTM
Keras支持LSTM GRU Simple RNN

RNN循环神经网络Part Ⅱ

学习目标


loss — BPTT (不细讲)

RNN训练中出现的问题

但是RNN的Traning是比较困难的
RNN的Learning carve不容易趋向收敛,会非常剧烈的抖动

RNN的Error surface有些地方非常陡峭,有些地方非常平坦,所以可能一直在平坦的地方随机跳跃,类似于高原


或者直接跳到悬崖,由于之前参数设置的的特别大,根据斜率情况,结果参数直接飞出去了

修正方法:
Clipping,强行限制归点,比如>15就强行设置为15

为什么RNN会有这种奇特的特性?
可能是因为sigmoid function,但是这个老师认为不对

为何会出现这样的问题?

Toy Example:


也就是说,最终结果会由于输入的微小变化导致很大变化
可能不造成影响,但是一旦造成影响其影响都会很大
同样的weight在不同时间点会反复的被使用

如何解决这个问题呢?

LSTM,可以让error surface不那么崎岖
可以将平坦去掉但是不会将很剧烈地方消除掉

为什么LSTM可以这样呢?(为什么RNN要换成LSTM)

因为可以deal with grandient vanishing得问题(就是上面的问题)
RNN,之前的值每次都会被洗掉
LSTM,有一个weight,一旦能够对memory造成影响,这个影响就会一直保留,除非forget gate决定忘记,其结果是上次memory+此次output x 参数的
RNN是连乘,LSTM是加法


尽量不要关闭fgg
新的用gate操控的,Gated Recurrent Unit模型,这个比LSTM少一个gate
gru怎么拿掉Gate?会把input gate和fgg联动,ing打开,fgg关闭,“旧的不去新的不来”
其他的技术,Clockwise RNN, SCRN

RNN的其他应用:

input a senquence, output a vactor
比如通过句子看这句话是好评加还是坏评价
或者长的句子变成短的句子
语音辨识:


如何区分“好棒”和“好棒棒”
多输出出来一个符号,null

如何训练(这里例子是已知label训练)?
穷举

,或者有更巧妙的算法
google 已经在使用CTC进行语音辨识了,rnn的重要应用

不确定input output那个长那个短
比如机器翻译
Beyond Sequence
在Syntactic parsing,语法分析,通过一个句子获得句子的文法树

Sequence-to-sequence auto-encoder – speech
Dimension reducation for a sequence with variable length
audio segments(word-level) -> Fixed-length vector

不需要提交声音至服务器,保护隐私
把单词变成向量

Attention-Based Model

根据注意力记住东西,类似于人脑
Input输入会进入DNN/RNN,操控一个读写头,决定Reading Head的位置,然后根据这个产生output
V1

V2
会写进RNN/DNN

这就是Neural Turing Machine

Visual Question Answering
通过CNN用vector表示图像,

训练进行托福听力考试,使用memory netwrok可以提高很多,Proposed Approach更高(接近49%)

RNN VS Structured Learning


在DEEP的事情上更强(?
RNN可以和SLearing结合,先经过RNN在去Structured Learing
Deep->LSTM->HMM,CRF,Structed/SVM

参考资料:

1️⃣ https://www.bilibili.com/video/BV1JE411g7XF
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇