当前位置: 首页 > news >正文

【动手学深度学习】8.3 语言模型(个人向笔记)

  • 下面是语言模型的简介
    在这里插入图片描述

1. 学习语言模型

  • 使用计数来建模
    在这里插入图片描述
  • N元语法:这里的元可以理解为我们之前的时间变量。对于 N 元语法,我们可以把所有长度为 N 的子序列存下来。其中 1 元语法用的很少。这里其实就是算概率的时候我们不往前看所有的概率,只往前看 N-1 个词的概率
    在这里插入图片描述
  • 总结
    在这里插入图片描述

2. 自然语言统计

  • 语言模型与数据集:可以看到停词的出现是很多的,但是它们对于文本的理解作用较小
    在这里插入图片描述
  • 我们画出词频图看一下:可以看到在log上是差不多线性的
    在这里插入图片描述
  • 尝试其他词元组合:二元语法,三元语法等又会如何呢
    在这里插入图片描述
    在这里插入图片描述
  • 可以看到两个词元还是没什么有效信息,下面我们看看三个词元会不会好一点
    在这里插入图片描述
  • 最后我们直观对比三种模型中的词元频率:
    在这里插入图片描述
  • 这张图很令人振奋,其中原因有:
  • 虽然还是大致呈现按照取对数线性,但是斜率小了很多,这就意味着:多数的词频出现在少数的词中的情况有所改善
  • 词表中 n 元组的数量没有那么大,说明语言中存在相当多的结构,这些结构给了我们应用的希望
  • 很多 n 元组很少出现,这使得拉普拉斯平滑非常不适合语言建模。 作为代替,我们将使用基于深度学习的模型。

4. 读取长序列数据

  • 总体策略: 假设我们将使用神经网络来训练语言模型, 模型中的网络一次处理具有预定义长度 (例如 n 个时间步)的一个小批量序列。 现在的问题是如何随机生成一个小批量数据的特征和标签以供读取。
  • 任意长的序列可以被我们划分为具有相同时间步数的子序列。 当训练我们的神经网络时,这样的小批量子序列将被输入到模型中。
  • 我们可以选择任意偏移量来指示初始位置,所以我们有相当大的自由度。
  • 如果我们只选择一个偏移量(从文本开始的偏移), 那么用于训练网络的、所有可能的子序列的覆盖范围将是有限的。
  • 因此,我们可以从随机偏移量开始划分序列, 以同时获得覆盖性(coverage)和随机性(randomness)。下面,我们将描述如何实现随机采样(random sampling)和 顺序分区(sequential partitioning)策略。
    在这里插入图片描述

4.1 随机采样

  • 下面的代码每次可以从数据中随机生成一个小批量。 在这里,参数batch_size指定了每个小批量中子序列样本的数目, 参数num_steps是每个子序列中预定义的时间步数。
    在这里插入图片描述
  • 这里的 Y 的意义是给一个23 可以以 24 为标签,给一个 23 24 可以以 25为标签。最多可以预测五个长度。这种方法在一个batch里面不是相邻的而是有随机性的,它们的分布是独立的,无论是batch里面还是batch之间
    在这里插入图片描述

4.2 顺序分区

  • 现在提到的方法在一个batch和下一个batch的序列是相接的
    在这里插入图片描述
    在这里插入图片描述

  • 最后我们把它包起来以做以后的使用


http://www.mrgr.cn/news/54181.html

相关文章:

  • 计算机通信与网络实验笔记
  • FL Studio 2024 发布,添加 FL Cloud 插件、AI 等功能
  • NVIDIA NIM平台利用AI的功能,AI驱动知识问答助手的实现
  • 风速weibull分布随机风速生成【基础代码】
  • 【动手学深度学习】8.2. 文本预处理(个人向笔记)
  • 2024年-2025年Java毕业设计怎样选题?1000个计算机毕业热门选题推荐
  • llm-action,让天下没有难学的大模型
  • 同一个交换机不同vlan的设备为什么不能通信
  • 如何用代码将网页打开
  • 2024年第四届“网鼎杯”网络安全大赛-赛前模拟训练
  • 空开老化损坏更换
  • MatLab Desired port was :31515解决方案
  • 关于串口中断时的一些问题
  • C++ Socket通讯连接Server,并可设置连接超时时间
  • 2060:【例1.1】计算机输出
  • 【Java】—一篇搞懂POJO和VO、BO、DTO、PO模型
  • 程序员是否要考研?结合当前环境和形势的分析
  • linux线程 | 全面理解同步与互斥 | 同步
  • SpringBoot配置文件敏感信息如何加密?及踩坑总结(全面讲解)
  • 【Python爬虫实战】深入解析BeautifulSoup4的强大功能与用法