神经网络与深度学习-屈桢深-学习总结(第七周)

本文探讨了循环神经网络在自然语言处理中的关键角色,包括序列模型、自回归预测、数据预处理(特征编码和文本处理)、词嵌入技术以及RNN模型如何处理变长序列。重点讲述了RNN的误差反传机制,并提到了如何通过截断时间步来解决梯度消失问题。
摘要由CSDN通过智能技术生成

1.循环神经网络与NLP

1.1 序列模型

分类问题与预测问题

⚫ 图像分类:当前输入−>当前输出

⚫ 时间序列预测:当前+过去输入−>当前输出

自回归模型

假设一个交易员想在当日的股市中表现良好,于是通过以下途径 预测𝑥𝑡 :

𝑥𝑡 ∼ 𝑃(𝑥𝑡 ∣ 𝑥𝑡−1 , … , 𝑥1)

随着观测,时间序列越来越长,过去太久的数据不必要,因此:

𝑥𝑡 ∼ 𝑃(𝑥𝑡 ∣ 𝑥𝑡−1, … , 𝑥𝑡−𝜏)

保留一些对过去观测的总结ℎ𝑡, 并且同时更新预测和总结ℎ𝑡 。 这就产生了基于

估计𝑥𝑡 ,以及

ℎ𝑡 = 𝑔(ℎ𝑡−1 , 𝑥𝑡−1)

更新的模型。

1.2 数据预处理

1.2.1 特征编码

数值特征与类别特征

⚫ 第1列表示年龄,是一个数值特征

⚫ 第2列表示性别,是一个只有一位(0,1)的特征 0 -> Male, 1 -> Female

⚫ 第3列表示国籍,目前有197个国家 1 -> US, 2 -> China, …

⚫ 可以用一个整数来表示,或者用一个 独热向量来表示, 如US: [1,0, ….,0]

⚫ 数值特征不适合表示类别,因此一般使用独热编码

⚫ 国家编码从1开始,1~197,因为实际国籍有可能不填(对应0)。

总结: ⚫ 使用199维特征向量表达一个人的特征:

1.2.2 文本处理

按字母处理

⚫ 给定文本片段,如: S = “… to be or not to be…”.

⚫ 将文本切分为字母序列: L = […, ‘t’, ‘o’, ‘ ’, ‘b’, ‘e’, …],

按单词处理 文本切分 (tokenization)

⚫ 给定文本片段,如: S = “… to be or not to be…”.

⚫ 将文本切分为单词序列: L = […, to, be, or, not, to, be, …],

1.3 文本预处理与词嵌入

文本预处理 一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。 我们将 解析文本的常见预处理步骤。 这些步骤通常包括:

1.将文本作为字符串加载到内存中。

2.将字符串切分为词元(如单词和字符)。

3.建立一个字典,将拆分的词元映射到数字索引。

4.将文本转换为数字索引序列,方便模型操作。

第一步:读取数据集 以H.G.Well的时光机器为例 ,从中加载文本 。 这是一 个相当小的语料库 ,只有30000多个单词 ,而现实中 的文档集合可能会包含数十亿个单词 。 如Chatgpt包含 65 T数据 。

第二步:词汇切分 将原始文本以文本行为单位进行切分

第三步:构建词索引表

⚫ 打印前几个高频词及索引 [('', 0), ('the', 1), ('i', 2), ('and', 3), ('of', 4), ('a', 5), ('to', 6), ('was', 7), ('in', 8), ('that', 9)]

⚫ 将每一条文本行转换成一个数字索引列表 文本: ['the', 'time', 'machine', 'by', 'h', 'g', 'wells'] 索引: [1, 19, 50, 40, 2183, 2184, 400] 文 本 : ['twinkled', 'and', 'his', 'usually', 'pale', 'face', 'was', 'flushed', 'and', 'animated', 'the'] 索引: [2186, 3, 25, 1044, 362, 113, 7, 1421, 3, 1045, 1]

文本嵌入

如何将词映射成向量? 直接想法:使用之前所述的独热向量

问题:维数过高

词嵌入(word embedding) 将独热向量映射为低维向量

原始向量:𝑣维;映射后:𝑑维,𝑑 ≪ 𝑣; 映射矩阵:𝑑 × 𝑣,根据训练数据学习得到

1.4 RNN模型

如何建模序列数据?

图像分类中使用:1对1模型 输入和输出维度:固定

如何建模序列数据?

文本处理中: 输入维度不定(可能一直有单词输入); 输出维度不定或者是1(直接最终理解结果)

用RNN建模序列数据 输入 :The cat sat on the mat

RNN问题

随着输入的增加,会产生“遗忘”问题

1.5 RNN误差反传

每个时间步的隐状态和输出可以写为:

通过一个目标函数在所有𝑇个时间步内 评估输出𝑜𝑡和对应的 标签𝑦𝑡之间的差异:

按照链式法则:

ℎ𝑡既依赖于ℎ𝑡−1,又依赖于𝑤ℎ , 其中ℎ𝑡−1的计算也依赖于𝑤ℎ 。 因此,用链式法则产生:

使用下面的公式移除 上页中的循环计算:

截断时间步: 我们可以在𝜏步后截断上页式中的求和计算

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值