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

牛津大学xDeepMind 自然语言处理(2)

牛津大学xDeepMind 自然语言处理 Natural Language Processing

文本分类
  1. 分类基础

    1. 分类任务

      邮件垃圾识别、评论负面分析、文章主题识别、推文标签预测、年龄/性比预测、语言识别、情感分析等

    2. 任务类型

      二元(true ,false)、多类(politics,sports,gossip)、多标签分类(#party #FRIDAY #fail)及聚类(labels unknown)

    3. 分类方法

      手动(准确但慢)、基于规则的分类Rule-based(依赖规则)、统计分类Statistical(需要分类好的训练数据)

  2. 统计文本分类

    1. 核心

      学习P(c|d) (文本d属于类别c的概率)

    2. 两阶段

      1. 文本表示:将文本处理为某种固定形式,即如何学习d
      2. 分类:根据该表示形式对文档进行分类,即如何学习P(c|d)
    3. 分类方法

      1. 词袋模型 Bag of Words (BOW):简单但大小不固定、忽略句子结构
      2. 手工构建的特征 Hand-crafted features:可完全控制,能利用nlp处理管道,特定于类别的特征,但过于具体、不完整,依赖nlp处理管道
      3. 学习到的特征表示 Learned feature representation:可以学习包含所有相关信息,但需要进行学习
  3. 模型相关

    1. 生成与判别模型 Generative vs. Discriminative Models

      1. 生成(联合)模型:P(c,d)

        对各个类别的分布进行建模,并对观察到的数据和隐藏变量(如标签)赋予概率。

        例如:n元模型、隐马尔可夫模型、概率上下文无关文法、IBM机器翻译模型、朴素贝叶斯等

      2. 判别(条件)模型:P(c|d)

        学习类别之间的边界。将数据视为给定的,并在给定数据的情况下对隐藏结构赋予概率。

        例如:逻辑回归、最大熵模型、条件随机场、支持向量机等

    2. 朴素贝叶斯 Naive Bayes classifier

      基于贝叶斯法则P(c|d) = P© P(d|c) / p(d),属生成模型.

      1. 优点:简单、可解释、快速、文本表示简单(词袋模型)
      2. 缺点:独立性假设往往过于严格、不考虑句子/文档结构、朴素分类器存在零概率问题、平滑处理较麻烦
    3. 特征表示 Feature Representations

      文本的特征表示可以看作是一个向量,其中每个元素表示某个特征在文档中的存在或不存在。

      特征可以是二元的(存在/不存在)、多项式的(计数)或连续的(如TF-IDF加权)

    4. 逻辑回归 Logistic Regression

      如果我们只想对文本进行分类,不需要生成模型的全部功能,判别模型就足够了,只想学习P(c|d) ,逻辑回归是一个通用框架,“逻辑”是因为它使用逻辑函数,“回归”是将特征向量d与权重β结合起来计算结果。

      判别模型,用逻辑/softmax函数。

      1. 优点:简单、可解释、不假设特征之间的统计独立性
      2. 更难学习、手工设计特征成本更高、不一定能很好地泛化
  4. 深度学习方法

    1. RNN

      利用RNN的隐藏状态表示文本,可结合逻辑回归等分类器,也可将分类函数融入网络,使用交叉熵损失训练,可扩展到多标签分类,还可结合语言模型目标构建双目标RNN及使用双向RNN

      RNN分类器类型:可分为生成模型或判别模型,取决于是否建模文本概率等

    2. 其他神经网络

      递归神经网络(遵循句法结构进行组合)、卷积神经网络(可从图像分类适应到文本,利用卷积和池化操作)

NLP的软件和硬件
  1. motivation

    缩短解决问题时间很重要,有些事情取决于用户

  2. CPU vs GPU

    设计决定性能

    1. 设计差异:CPU优化低延迟;GPU优化高吞吐量
    2. 性能差距:GPU在理论单精度GFLOP/s和峰值带宽上远优于CPU
  3. 屋顶线模型 Roofline Model

    1. 定义:分析算法计算强度与浮点吞吐量关系的工具
    2. 计算强度:不同操作有不同值,LSTM待确定
  4. LSTM的计算分析

    1. 计算操作:不同批次大小下的公式和操作
    2. 比率分析:浮点运算与字节的比率
    3. 受限情况:内存和浮点运算受限,探讨小批次选择
  5. LSTM网络级优化

    1. 减少内存流量:随时间展开、释放依赖关系、随时间融合操作等
    2. 减少开销:融合逐点操作到一个内核
    3. 提高并行性:使用流+层等
    4. 优化效果:显著提升速度
  6. cuDNN

    1. cuDNN:英伟达的神经网络加速库
  7. 总结

    硬件和软件选择影响性能,可能需额外工作获最佳性能

http://www.xdnf.cn/news/1327087.html

相关文章:

  • kkfileview预览Excel文件去掉左上角的跳转HTM预览、打印按钮
  • 浅看架构理论(二)
  • ‌关于人工智能(AI)的发展现状和未来趋势的详细分析!
  • Kubernetes 简介
  • 【SpringBoot】Dubbo、Zookeeper
  • 【网络运维】Ansible roles:角色管理
  • Android Studio Git提交环境变量问题总结
  • NestJS 依赖注入方式全解
  • 源代码安装部署lamp
  • AI Deep Research 思维链简介
  • 微服务-06.微服务拆分-拆分原则
  • 云手机矩阵:重构企业云办公架构的技术路径与实践落地
  • OpenSSL与OpenSSH的关系
  • SpringBoot-集成POI和EasyExecl
  • PG靶机 - Pebbles
  • 瑞萨e2studio:HardwareDebug配置项详解
  • 主从切换是怎么保证数据一致的?从库为什么会延迟
  • ReLens「Focus DSLR 大光圈虚化相机」v4.1.2 f 解锁付款版 —一款专业大光圈和单反级背景虚化编辑软件
  • 如何将任意文件一键转为PDF?
  • 计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
  • AJAX (一)
  • F003疫情传染病数据可视化vue+flask+mysql
  • JavaSSM框架从入门到精通!第二天(MyBatis(一))!
  • flink+clinkhouse安装部署
  • 当GitHub宕机时,我们如何协作
  • Netty内存池中ChunkList详解
  • 决策树算法学习笔记
  • 设计模式笔记_行为型_解释器模式
  • 技术分享:跨域问题的由来与解决
  • 关于诸多编程语言类型介绍