zoukankan      html  css  js  c++  java
  • 序列模型(1)----简单介绍

    一、为什么选择序列模型

    (1)序列模型广泛应用于语音识别【多对多】,音乐生成【一对多】,情感分析【多对一】,DNA序列分析,机器翻译【多对多,个数不同】,视频行为识别,命名实体识别等众多领域。

    (2)上面那些问题可以看成使用(x,y)作为训练集的监督学习,但是输入与输出的对应关系有非常多的组合,比如一对一,一对多,多对一,多对多,多对多(个数不同)等情况来针对不同的应用。

    二、循环神经网络模型(RNN)

    (1)模型结构

    第一次输入会通过激活值影响下一个输入的预测,从而影响接下去的所有输入的预测,这就是循环神经网络。

    (2)前向传播

    • 数学式子如下所示:

    将Waa和Wax合并在一起:

    • 得到最终形式:

    (3)时间反向传播【BP through time:RNN的反向传播】

    • 一个元素的代价函数(一个0,1二分类问题,注意下面式子中应该是(1-y<t>):

    • 每一个样本的代价函数:

    (4)RNN存在的问题:梯度消失和梯度爆炸

    梯度爆炸问题易解决:

    一个解决方式就是梯度修剪。观察你的梯度向量,一旦发现超过某个阀值,就缩放梯度向量,保证他不会太大。比如通过一些最大值来修剪的方法。

    梯度消失的问题:GRU可解决

    假设有两个训练样本,句子的长度非常长:
    The cat, with already ate…………, was full.
    The cats, with already ate…………, where full.
    第一个句子的was是依赖于cat, 第二个were是依赖于cats,但是这两个单词被隔得非常远,以至于后者的单词很难依赖于前者得到。

    因为,与传统的深层神经网络类似,经过前向传播之后,反向传播中后面的y<t>误差很难通过梯度影响到前面层的计算,因此当RNN在计算后面的单词was还是were的时候,对前面出现过的cat或cats已经忘得差不多了。

    也因此,其实每次的输出y<t>y<t>只能反向传播影响到前面附近的几层计算,也就是说,在训练时无论y^{}的预测是正确的还是错误的,或者说损失是大是小,都无法通过反向传播告诉很前面的层,并且对前面的层有效调整权重。

     

     三、语言模型【Language model 】

    (1)语言模型:

    1、是什么?

    比如语音识别成文字中的两句话【读音一样】,选择正确的句子需用到语言模型:

    采用语言模型识别两句话的概率,根据最大概率来选择正确的句子。

    (2)怎么用RNN建立语言模型?

    1. 利用语料库做训练集,然后对语料库进行标记化,【如每个句子结尾做结尾标记,没出现在预料库中的单词做未知标记,标点符号需不需要】,然后进行one-hot处理每个词。
    2. 建立RNN
    • 语言模型如下图所示,首先第一个输出是在无任何提示下输出各个词的概率,第二个输出是在给定第一个输出标签时各个词(10002个词)输出的概率,以此类推,每一个输出都是在给定条件下一个输出各个单词的概率。

    • 训练网络时,上图中序号8和9分别代表了一个元素和一个样本的代价函数,代价函数使用的是交叉熵。
    • 在使用网络时,现在有一个包含三个词(y<1>,y<2>,y<3>)的句子,这时网络没有任何信息的条件下求是y<1>的概率,然后计算在给定y<1>条件下y<2>的概率,最后在给定y<1>,y<2>条件下y<3>的概率。最后可以确定,输出是这个句子的概率如下图所示,回到最初的两个句子,可以分别求两个句子的概率,取概率最大的句子即可:

     四、对新序列采样

    基于词汇进行采样:

    在训练完一个模型之后你想要知道模型学到了什么,一种非正式的方法就是进行一次新序列采样:一个序列模型模拟了任意特定单词序列的概率,对新序列采样即是对概率分布进行采样来生成一个新的单词序列。具体方法如下:

    • 一、时刻t=1,输入初始化的x<1>=0,a<0>=0。
    • 二、在每一步输出y^时,通过softmax 输出的一个词典大小的概率分布分布,对这个向量进行采样,随机采出一个词作为输出(非取最大概率),也就是对应的一个字或者英文单词。
    • 三、将这个值作为下一个单元的x输入进去(即x<t>=y^<t1>, 直到我们输出了终结符,或者输出长度超过了提前的预设值n才停止采样。.

    (可能会采样出标识的字符,若是不想它出现,继续重新采样另一个词。)

    上述步骤如下:

    下图给出了采样之后得到的效果:

    左边是对训练得到新闻信息模型进行采样得到的内容;

    右边是莎士比亚模型采样得到的内容。

     

     基于字符的语言模型:每次的输入不是一个单词,而是一个字母。

  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/10062770.html
Copyright © 2011-2022 走看看