深度学习 (六)Long Short Term Memery

版权声明:本文为博主原创文章,未经博主允许不得转载,谢谢尊重每个人的权利。 https://blog.csdn.net/lilongsheng1125/article/details/84275650

Introduce

  • 为什么会有RNN模型?
           每次涉及到新概念时候总不禁要问自己,为什么要引入这么模型,深度学习有深度网络DNN、图片识别CNN等,他们都是一次性输出内容的全部来识别或预测一个分类结果,然而生活中还存在另一类问题,当前的输出并完全取决于当前的输入其还依赖,这个时间点以前的输入数据,试想CNN可以做到吗?它在输入一副图片后经过卷积池化等过滤后最终输出分类,下一张图片依然这么按设定好的结构运算,貌似和前面一幅图片没有毛关系。
  • 解决了啥问题?
           再比如生活中常见的例子考试时做完形填空,我们都是结合上下文来填词,不读上下文那你填错的概率会很高,上下文的作用是提高了我们填对的概率,前面我们涉及的n-gram等模型也可以记住前后几个单词但还是太少,n=4时已经很难计算,这篇rnn为我们解决了和时间有关的序列问题,序列问题并不单单只文字序列,右前后排序时间先后的问题都叫序列问题。

RNN

basic

       让我们先来看看最基本的rnn结构,如下图:
在这里插入图片描述
       上图中举了一个例子,采用one-hot编码输入也可以采用其它编码方式,如word2vec,输出为它属于词典8000个单词中哪个的概率大,不过在分类问题时我们并不关心中间每个输出的概率结果,我们关心的是最终分类结果。
       在结构上它还有参数共享机制:同cnn类似,rnn也有餐宿共享机制,好像rnn共享的更多一些,cnn只在卷积池化时有共享卷积核,而最简单的rnn整个网络共享一组参数U V W,这样极大提高了网络训练时间。
       这是一个单向的rnn,它只记住了一个单词前面的内容没有记住后面的,经常需要结合上下文判断才能判断出来,这样一来有人提出来了,双向rnn结构。

Bidirectional RNN

       结构和主要运算如下:
在这里插入图片描述
       双向rnn也容易理解,仅把两个方向单向的rnn相加组装起来,构成了一个双向的,都在图里了。
       如果想再增强rnn表达能力,再增加隐层个数即可,这点很想mlp rnn等,神经网络都是随着网络深度增加表达能力越来越强。

Back Propagation Through Time

       已经有了网络结构那么让我们看一下这个rnn网络是如何优化各个权重参数,mlp大家都知道是BP来优化,这里也是类似思想求解参数的梯度,首先要做的是定义loss function ,进而才能对参数u v w求梯度,由于这里是多分类概率问题,交叉熵损失可以表达预测概率和目标概率的差异度,所以我们选择交叉熵来作为损失,如下:
在这里插入图片描述
       从图上也可以看出来,恒左边为预测结果概率定义域为[0,1],损失函数随着横坐标逐渐增大在减小.

       有了损失函数我们开始求梯度,以w为例,如下:
在这里插入图片描述
       上面是依据求导链式法则一次展开各层依赖关系,最后到So层,依据求导法则将各层导数相乘,即可求导最终导数。

Long Short Term Memory

在这里插入图片描述

       lstm处理过程感觉可以理解为我们的大脑处理问题过程,每个人精力记忆有限不可能把各行各业知识都学会都记住,rnn就像傻瓜式大脑没有对知识进行管理和加工,一下都把输入的记住了,记忆的东西有限,时间长了很久以前的知识自然忘记了,lstm本质在于对自己记住的东西精细化管理,增加了一个细胞状态来保存大脑里面在线有啥记住了,并且对输入的知识选择认为不重要的过滤掉,俗称“忘记门”,忘记多少呢很容易想到一个概率函数sigmoid()来实现,同时对于输入的新知识还要选择该记住哪些,把重要的过滤出来记住,即“输入门”也用sigmoid来控制。

       如上图中三个公式,分别表示忘记多少、新入多少、更新当前记忆三步,我们要先从原理上来理解,公式只是帮我们实现的手段,思想是我们的灵魂。

思考

  • lstm为什么比rnn好?
    lstm比rnn最大优势在于解决了长序列记忆问题,解决的方法在于将感觉在于细胞状态计算时将rnn中的乘法关系改为了加法关系,即使序列边长也不容易导致梯度弥散出现,问题依然可解,其次加入了过滤器(忘记门)、过滤器(输入门)等,lstm目前在各种场景如翻译、语音等领域都有成功应用。
  • 为什么lstm中既有sigmoid激活函数还有tanh?
    这个首先要了解这两激活函数在结构中起的作用,看看能否去掉或者替换成别的,sigmoid函数作用于门forget gate 、input gate、outputgate,门做的事是开关,有两种极限状态完全开、完全闭,也可以过滤一部分,正好同sigmoid极致0-1相对应,所以sigmoid发挥的作用不好替换;tanh为双曲正切,值域为[-1,1],来控制输出值,这个作用其它函数可能可以替换。
  • rnn 和 word2vec的关系
    word2vec是用来表示表达一个句子或词的表达模型,表达完了输出一个向量输入到rnn中接受训练,它们解决的问题不一样,用在的阶段不一样。

随笔

德鲁克定律
现代管理学开创者,其很多管理理念被很多大公司应用效果显著,如在知识社会中每个人都是自我管理者,都可以管理自己的行为。
1.需要用任务的契约式来管理
2.工作主动性 如果我是老板 怎么做
工作主动是做好一件事的前提
3.自己相关工作 参与决策
这是知识型员工体现,好的领导会逐渐让员工自己处理事情
4.如果删除“成就”,代替的为贡献
强调成就带来问题
1.企业或个人看重短期看到结果
比如大学教师 重课时、论文数量而对于难度大有意义事情缺乏主动
2.机构大的 短期很难看得见效果
公司的最大价值在于给客户更好服务、 员工更多机会、 股东更多回报

猜你喜欢

转载自blog.csdn.net/lilongsheng1125/article/details/84275650