zoukankan      html  css  js  c++  java
  • 序列模型

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

    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存在时间的纬度,所以其结构已经足够的庞大

  • 相关阅读:
    5G应用前景广泛 不止是下电影更快,还能做这些事……
    新思科技Chekib:AI芯片架构创新面临四大挑战
    融通人工智能指数(LOF)净值下跌1.08% 请保持关注
    ThinkPHP学习 volist标签高级应用之多重嵌套循环、隔行变色(转)
    (document).height()、$(document).scrollTop()
    jquery获取元素到屏幕底的可视距离
    jquery获取元素到页面顶部距离
    CSS实现背景透明而背景上的文字不透明完美解决
    怎么阻止事件的冒泡过程?
    CSS从大图中抠取小图完整教程(background-position应用) (转)
  • 原文地址:https://www.cnblogs.com/lxw003/p/8600375.html
Copyright © 2011-2022 走看看