• 序列模型


    一、序列模型-循环神经网络

    1、序列模型的应用

    语音信号:将输入的语音信号直接输出相应的语音文本信息。无论是语音信号还是文本信息均是序列数据。

    2、循环神经网络:

    RNN:Waa是连接激励函数与隐藏层的参数,Wax是连接输入和隐藏层的参数,Wya是连接隐藏层和输出层的参数 ;

    随即梯度计算法方法更新损失函数,进而求出最有参数解,损失函数 log loss:
    L(y-,y) = -ylog(-y-) - (1-y) log(1-y-)

    双向RNN,y(t)的获得使用前面的输入信息和后面的输入信息

    3、由输入和输出的不同对RNN的分类

    many-many : 如上例子

    x(t) -> y(t)

    many-one:情感分析

    一个句子的输入序列,输出是一个分类或者星级

    one-many:音乐的生成

    输入是一个词或者空,输出是一段音符

    many-many(Tx =! Ty):机器翻译

    输入和输出的文本长度不同

    4、语言模型和序列生成

    语言模型:nlp的基础,如何让我们的语音识别系统能够输出我们想要的输出,对于语言模型来说,从输入的句子中,评估各个句子中各个单词出现的可能性,进而给出整个句子出现的可能性

    使用rnn构建语言模型:

    训练集:一个很大的语言文本库,tokenize:将句子使用词典库标记化,库中没有的词用“UNK”代替,

    第一步:使用零向量对输出进行预测,即预测第一个单词是某个单词的可能性;第二部,通过前面的输入,逐步预测后面一个单词出现的可能性,

    训练网络:使用softmax损失函数计算损失,对网络进行参数更新,提升语言模型的准确率

    新序列生成:

    5、RNN梯度消失

    目前的基本的rnn模型,不擅长捕获这种长期依赖的关系

    解决方法:梯度修剪,也就是观察梯度向量,如果大于某个阀值,则对其进行缩放,保证它不会变大

    6、GRU单元

    门控循环单元:改变了rnn的隐藏层,使其能够更好地捕获深层次连接,并改善了梯度消失的问题

    门控值:处于0-1之间,决定是否对当前时间步的记忆细胞用候选值替换

    c(t) = a(t)

    c_(t) = tanh(Wc[c<t-1>,x(t)] + bc) ,在每一个时间步上,给定一个候选值c_(t),用以替代原本的记忆细胞c(t);;;候选值

    7、LSTM:

    GRU能够让我们在序列中学习到更深的联系,长短期记忆,对捕获序列中更深层次的联系要比GRU更加有效;

    LSTM中,使用单独的更新们和遗忘们,以及一个输出们

    候选值:c_(t)

    8、双向rnn:不仅有从左向右的前向连接层,还有从右向左的反向连接层

    在nlp问题中,常用的就是使用双向rnn的LSTM

    9、深层RNNs

    与深层的基本神经网络结构相似,深层RNNs模型具有多层的循环结构,三层的网络机构就已经很多了,因为RNN存在时间的纬度,所以其结构已经足够的庞大

  • 相关阅读:
    Python-文件阅读(open函数)
    列表推导式练习
    Python-集合(set)
    Python-元组(tuple)
    Python-函数-聚合和打散
    Python-列表-非count的计数方法
    Python-字典(dict)
    Python-列表(list)
    Python-字符串
    求三个元素的最大值,和最小值。
  • 原文地址:https://www.cnblogs.com/lxw003/p/8600375.html
Copyright © 2020-2023  润新知