语言模型(序列模型)

终于快要毕业了,乘着还在还在研究室,把最后一章sequence模型也学完吧。

一:基础知识

1:符号的定义

X X X: 表示是一组输入的序列,也就是一段话,类似:

  • X = X= X= “Cats average 15 hours of sleep a day.”
  • 如果任务需要处理变长序列,则会用 <EOS> 标记序列结束
    X = X= X= “Cats average 15 hours of sleep a day. <EOS>

Y Y Y: 标签序列

T : T: T 时间序列的总长度,也就是总时间步数

  • 一般用到的是很多个 t t t 来表示某一个时刻。 x < 1 > x^{<1>} x<1> x < t > x^{<t>} x<t>
  • 在词类的任务中 (word-level classification) x < 1 > = x^{<1>}= x<1>=“Cast”、 x < 2 > = x^{<2>}= x<2>=“average”…
  • 在字母的任务中(character-level processing) x < 1 > = x^{<1>}= x<1>=“C”、 x < 2 > = x^{<2>}= x<2>=“a”…

除此之外,仍然用 i i i 表示每一个单独的样本

x ( i ) < t > : x^{(i)<t>}: x(i)<t>: i i i 个样本的第 t t t 个词.

T x ( i ) T_x^{(i)} Tx(i): 第 i i i 个序列的长度.

2:词典(Vocabulary) 与编码(Encoding)

词典是一个映射关系,将数据中的每个唯一单词或字符分配一个唯一的索引。
One-hot 编码将每个类别或字符表示为一个长度为词典长度的二进制向量。

如果在输入的序列 X X X中遇到一个词 x < 1 > x^{<1>} x<1>并且该词存在于一个词典 V={‘a’,‘ab’,‘abc’…‘zulu’}中,

使用One-hot对 ‘a’ 进行编码,则是[1,0,0,…,0]. 对 ‘zulu’ 进行编码则是[0,0,0,…,1].

如果一个单词、字符或子词不在词典中,通常会将其标记为 unknown word(未知词,简称 UNK)

并使用特殊符号 <UNK> 来表示。

二:RNN(Recurrent Neural Networks) 循环神经网络

1:模型架构

在这里插入图片描述
其中,权重矩阵 W a x W_{ax} Wax W a a W_{aa} Waa W y a W_{ya} Wya 的命名顺序是 输出-输入

为什么?

因为矩阵乘法的维度规则就是 矩阵A(输出维度\隐藏维度,输入维度) × 矩阵B(输出维度\隐藏维度,输入维度)

2:公式

a < t > = g ( w a a a < t − 1 > + w a x x < t > + b a ) a^{<t>}=g(w_{aa}a^{<t-1>}+w_{ax}x^{<t>}+ba) a<t>=g(waaa<t1>+waxx<t>+ba)
其中 w a a w_{aa} waa w a x w_{ax} wax可以堆积为 [ w a a : w a x ] = w a [w_{aa}:w_{ax}]=w_{a} [waa:wax]=wa

a < t > = g ( w a [ a < t − 1 > , x < t > ] + b a ) a^{<t>}=g(w_{a}[a^{<t-1>}, x^{<t>}]+ba) a<t>=g(wa[a<t1>,x<t>]+ba)
y ^ < t > = g ( w y a a < t > + b y ) \hat y^{<t>}=g(w_{ya}a^{<t>}+by) y^</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值