E. 深度学习 --- 其他
作者:互联网
E. 深度学习 — 其他
Pointer Network
- 概述
- Pointer Networks正是通过对Attention Mechanism的简化而得到的。
- 问题
- 传统seq2seq模型来说,它的输出词汇表已经限定,当输入序列的长度变化的时候(如变为10个点)它根本无法预测大于4的数字
- 实现
- 初始化Key1值
- 使用RNN把所有的输入跑一遍
- 通过softmax,获取一个输入,作为当前这次迭代选中的点
- 通过选中的点,生成key2
- 回到第二步,直到标记点(End)被选中
- 应用场景
- 适用场景
- Pointer Networks特别适合用来直接复制输入序列中的某些元素给输出序列
- Pointer Networks其实特别适合用于解决OOV(out of vocabulary)问题,或许它可以在NLP的其他任务中被用来解决OOV问题。
- 使用Pointer-Generator网络的文本摘要方法
- 机器翻译
- 适用场景
Recursive Structure
- 概述
- Recursive Network是一种RNN的扩展形式,他是空间的展开,且具有树形结构。RNN是一种结构模式。
- 应用场景
- 情感分析:分析语法结构
ELMO(Embeddings from Language Model)
- 基本框架
- 基本框架是一个双层的Bi-LSTM,不过在第一层和第二层之间加入了一个残差结构
- 第一个概率是来自于正向的由左到右的RNN结构,在每一个时刻上的RNN输出(也就是这里的第二层LSTM输出),然后再接一个Softmax层将其变为概率含义,就自然得到了 ;
- 第二个概率来自反向的由右到左的RNN结构,每一个时刻RNN的输出经过Softmax层后也能得到一个概率大小,表示从某个词的下文推断该词的概率大小。
- 步骤
- 算出embeddings,有可能是多个
- 通过权重,把多个embeddings,合并成一个embeddings,权重是通过具体的使用任务学习
- 优势
- 第一是,CNN能够减少普通做Softmax时全连接层中的必须要有的|V|h的参数规模,只需要保持CNN内部的参数大小即可,而一般来说,CNN中的参数规模都要比|V|h的参数规模小得多;
- 另一方面,CNN可以解决OOV (Out-of-Vocabulary)问题,这个在翻译问题中尤其头疼;
- 最后一方面,在预测阶段,CNN对于每一个词向量的计算可以预先做好,更能够减轻inference阶段的计算压力。
- 缺点
- 模型都过于简单,它们都受限于所使用的模型表征能力,某种意义上都只能得到比较偏上下文共现意义上的词向量,并且也很少考虑过词序对于词的意义的影响(比如CBOW从其名称来看就是一个bag-of-words,在模型的输入中没有词序的概念)。
ULMFit
- 算法流程
- 分别是在大规模语料集上(比如Wikitext 103,有103million个词)先预训练,
- 然后再将预训练好的模型在具体任务的数据上重新利用语言模型来finetune一下(这是第一次finetune,叫做LM finetune),
- 尔后再根据具体任务设计的一个模型上,将预训练好的模型当做这个任务模型的多层,再一次finetune(这是第二次finetune,如果是分类问题的话可以叫做Classifier finetune)
GPT(Generative Pre-Training)
- 概述
- 预测接下来要做的token
- 类似 Transformer 的Decoder
- 应用场景
- 给定前半段,补齐后面的句子
- 托福翻译
- Few-shot
- One-shot
- Zero-shot
- 阅读理解
- 文章摘要
标签:学习,RNN,finetune,---,Softmax,深度,CNN,Pointer,模型 来源: https://blog.csdn.net/micklongen/article/details/120932291