增加多个RNN问题,待进一步完善
This commit is contained in:
parent
e3f404551b
commit
55cc30bd00
|
|
@ -14,8 +14,74 @@
|
|||
Editor: 杨国峰-中国农业科学院
|
||||
Contact: tectalll@gmail.com
|
||||
|
||||
新增 https://blog.csdn.net/zhaojc1995/article/details/80572098
|
||||
RNN发展简述?
|
||||
为什么需要RNN?
|
||||
RNN的结构及变体
|
||||
标准RNN的前向输出流程?
|
||||
RNN的训练方法——BPTT?
|
||||
什么是长期依赖(Long-Term Dependencies)问题?
|
||||
LSTM 网络是什么?
|
||||
LSTM 的核心思想?
|
||||
如何逐步理解LSTM?
|
||||
常见的RNNs扩展和改进模型
|
||||
RNN种类?
|
||||
讲解CNN+RNN的各种组合方式 http://www.elecfans.com/d/775895.html
|
||||
## CNN和RNN的对比 http://www.elecfans.com/d/775895.html
|
||||
1、CNN卷积神经网络与RNN递归神经网络直观图
|
||||
2、相同点:
|
||||
2.1. 传统神经网络的扩展。
|
||||
2.2. 前向计算产生结果,反向计算模型更新。
|
||||
2.3. 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接。
|
||||
3、不同点
|
||||
3.1. CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算
|
||||
3.2. RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出
|
||||
3. 3. CNN高级100+深度,RNN深度有限
|
||||
|
||||
|
||||
http://blog.csdn.net/heyongluoyao8/article/details/48636251
|
||||
|
||||
## 6.1 为什么需要RNN?
|
||||
http://ai.51cto.com/art/201711/559441.htm
|
||||
神经网络可以当做是能够拟合任意函数的黑盒子,只要训练数据足够,给定特定的x,就能得到希望的y,结构图如下:
|
||||
将神经网络模型训练好之后,在输入层给定一个x,通过网络之后就能够在输出层得到特定的y,那么既然有了这么强大的模型,为什么还需要RNN(循环神经网络)呢?
|
||||
他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
|
||||
|
||||
比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列; 当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。
|
||||
|
||||
以nlp的一个最简单词性标注任务来说,将我 吃 苹果 三个单词标注词性为 我/nn 吃/v 苹果/nn。
|
||||
|
||||
那么这个任务的输入就是:
|
||||
|
||||
我 吃 苹果 (已经分词好的句子)
|
||||
|
||||
这个任务的输出是:
|
||||
|
||||
我/nn 吃/v 苹果/nn(词性标注好的句子)
|
||||
|
||||
对于这个任务来说,我们当然可以直接用普通的神经网络来做,给网络的训练数据格式了就是我-> 我/nn 这样的多个单独的单词->词性标注好的单词。
|
||||
|
||||
但是很明显,一个句子中,前一个单词其实对于当前单词的词性预测是有很大影响的,比如预测苹果的时候,由于前面的吃是一个动词,那么很显然苹果作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。
|
||||
|
||||
所以为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就诞生了。
|
||||
|
||||
## 6.1 RNN种类?
|
||||
https://www.cnblogs.com/rucwxb/p/8047401.html
|
||||
1. sequence-to-sequence:输入输出都是一个序列。例如股票预测中的RNN,输入是前N天价格,输出明天的股市价格。
|
||||
|
||||
2. sequence-to-vector:输入是一个序列,输出单一向量。
|
||||
|
||||
3. vector-to-sequence:输入单一向量,输出一个序列。
|
||||
|
||||
4.Encoder-Decoder:输入sequence-to-vector,称作encoder,输出vector-to-sequence,称作decoder。
|
||||
|
||||
这是一个delay模型,经过一段延迟,即把所有输入都读取后,在decoder中获取输入并输出一个序列。这个模型在机器翻译中使用较广泛,源语言输在入放入encoder,浓缩在状态信息中,生成目标语言时,可以生成一个不长度的目标语言序列。
|
||||
|
||||
## RNN train的时候,Loss波动很大
|
||||
https://www.jianshu.com/p/30b253561337
|
||||
由于RNN特有的memory会影响后期其他的RNN的特点,梯度时大时小,learning rate没法个性化的调整,导致RNN在train的过程中,Loss是震荡起伏的……
|
||||
为了解决RNN的这个问题,在train的时候,可以有个clipping的方式,当梯度大于某个临界值,直接截断,用这个临界值作为梯度的大小,防止飞出去…(居然还能这么操作,66666)
|
||||
|
||||
## 6.1 RNNs和FNNs有什么区别?
|
||||
|
||||
1. 不同于传统的前馈神经网络(FNNs),RNNs引入了定向循环,能够处理输入之间前后关联问题。
|
||||
|
|
|
|||
Loading…
Reference in New Issue