第九次周报

摘要

This week I read a review paper on text recognition and detection, and I learned about recurrent neural networks.This review paper summarizes the data and conclusions of many other papers on text recognition and testing, but the article is too long that I didn’t finish reading it, and I will report what I have learned in detail next week.
本周我阅读了一篇关于文本识别和检测的综述型论文,并且我学习了循环神经网络。这篇综述论文总结了许多其他文本识别和检测的论文的数据和结论,但文章太长了导致我没看完,在下周我将详细汇报从中学到的内容。

RNN

为什么需要RNN?

卷积神经网络 – CNN 和普通的算法大部分都是输入和输出的一一对应,也就是一个输入得到一个输出且不同的输入之间是没有联系的,输入一样的数据,神经网络只会输出一样的结果,因为没有"记忆力" ,在处理下述问题时就会产生错误

1.多样性  :   两句话出现的文本都不一样,但意思相同
怎样抓蛐蛐
蟋蟀的捕捉方式

2.歧义性:两句话出现的文本相同,但意思不同
什么颜色加什么颜色等于灰色
什么颜色加灰色等于什么颜色

对于语言类的序列数据,输入的顺序和语境都是非常重要的,RNN就有了用武之地

定义

RNN是一种沿着时序反复迭代的网络结构,实现了对序列数据的学习

模型类别

1.单向循环:当前时刻的预测只跟过去有关(从左到右计算)

2.双向循环:不光考虑当前时刻的预测,也考虑未来的信息(不光有从左到右,也有从右到左计算)
同时训练 正向和逆向的RNN,再把两个输出结合起来做最终输出
优点:产生的输出考虑的范围比较广,比只看句子的一半(单向RNN)要好很多
第九次周报_第1张图片

3.多层单向或双向叠加的深度RNN

相关问题

1.为什么当前隐层要考虑上一个时刻隐层的输入?
因为当前词的语义由前面的词来控制。通过循环神经网络,可以把不同位置的词对应不同位置的时序,不同位置的顺序关系都拟合进来。

2.长跨度、遗忘问题
句子太长,时序太长,可能导致RNN梯度消失的问题,从而无法降低损失函数,导致越后面的词与前面的词的语义关系越难拟合
**解决方法:**使用LSTM

3.在训练RNN时loss会剧烈变化的问题
第九次周报_第2张图片
原因:并不是激活函数sigmiod梯度消失导致的,把sigmiod换成relu效果更差,来自于把同样的weight通过memory传递到下个time反复使用。

解决方法:
1.Gradient Clipping:使梯度不超过某个阈值,即当梯度即将超过某个阈值时,就将梯度赋值为该阈值。
2.LSTM:可以解决gradient vanishing,但解决不了gradient explode问题(所以可以把学习率设得很小,不用担心梯度消失的问题)

4.为什么LSTM可以解决gradient vanishing?
因为RNN和LSTM对memory的处理是不同的(LSTM有forget gate)。在RNN中,每个时间点memory中的旧值都会被新值覆盖,导致参数对memory的影响每次都被清除,进而引发梯度消失。在LSTM中,每个时间点memory里的旧值会乘以再与新值相加,只有在forget gate被关闭时参数对memory的影响才会被清除,在forget gate被打开时参数对memory的影响就会通过累加得到保留,因此不会出现梯度消失的问题。

你可能感兴趣的:(深度学习,神经网络,人工智能)