热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

深度学习笔记(8)

一、文本分类数据读取除了运用一个固定的分割符进行单词的切分外,在实现分词函数时,还能加上更多的功能,如子词的切分和特殊字符的处理等。针
一、文本分类

数据读取

  1. 除了运用一个固定的分割符进行单词的切分外,在实现分词函数时,还能加上更多的功能,如子词的切分和特殊字符的处理等。针对任务或语言的特性特殊实现的分词函数,将更有利于模型的训练,但在设计该函数时要注意预训练词向量是定义在什么词典上的,不能使 out-of-vocabulary 词过多
  2. 从原理上来说,对数据中的句子进行补齐或截断是不必要的,这么做是为了加强模型并行计算的能力。无论是循环神经网络,还是卷积神经网络,理论上都是能在任何长度的文本上进行运算的,但规范化模型的长度会有利于模型进行批量化的计算
  3. PyTorch 的嵌入层在进行前向传播时,其输入张量需要为 torch.long 格式
  4. 直接读取预训练好的 GloVe 词向量和其对应的词典也能完整地实现文本情感分类模型,并不一定需要针对数据集本身创建词典。

使用双向循环神经网络进行文本情感分类

  1. 双向循环神经网络比单向循环神经网络更能抓住文本的特征。由于自然语言中常常有一些特殊的倒装结构,所以拥有两个方向的隐藏状态的双向循环神经网络,其输出更具文本代表性。注意,虽然两个方向的隐藏状态在输出前被拼接在了一起,但他们仍然是独立地被运算出来的,所以双向循环神经网络也不能从根本上解决文本的双向依赖问题,而卷积神经网络和 Transformer 这样完全并行的结构则不存在该问题
  2. 双向循环神经网络中的隐藏状态不能并行地计算。对于每个方向的每个隐藏状态,计算它时都会用到该方向中上一步的隐藏状态,所以双向循环神经网络中的隐藏状态不能被并行地算出
  3. 通常会给循环神经网络模型输入两个特殊的初始状态向量,以表示文本的两端
  4. 可以将双向循环神经网络的输出再次作为输入,输入到下一层的双向循环神经网络中,从而得到一个多层的结构

使用卷积神经网络进行文本情感分类

  1. 一维卷积层输出的宽度为输入的宽度减去核的宽度加一
  2. 定义多个输出通道的卷积核有利于模型提取更丰富的文本特征,定义多种宽度的卷积核有利于模型提取多个层次的文本特征。输出通道数越多,可以捕捉的单词的组合就越多;而拥有不同宽度的核,就能让模型对文本中各个长度的单词组合都有关注
  3. 并不需要对每一个卷积核都单独地定义一个池化层。由于池化操作与输入的序列长度无关,本身也不含任何参数,故可以所有卷积核共用一个池化层
  4. 对所有卷积操作的结果进行池化和拼接之后,得到的向量就可以作为文本的一个整体的表示。
    每个卷积和池化后的结果都可以看作是该卷积核在文本上提取出的特征,而拼接这些特征,就能得到整个文本的一个整体表示

二、数据增强

图像增广的作用

  1. 缓解过拟合
  2. 增加模型泛化能力
  3. 通过旋转/翻转等方式可以降低对某些属性的依赖。

图像增广的方法

  1. 翻转图片
  2. 加入噪点
  3. 调整亮度

三、模型微调

微调由以下4步构成

  1. 在源数据集(如ImageNet数据集)上预训练一个神经网络模型,即源模型。
  2. 创建一个新的神经网络模型,即目标模型。它复制了源模型上除了输出层外的所有模型设计及其参数。我们假设这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。我们还假设源模型的输出层跟源数据集的标签紧密相关,因此在目标模型中不予采用。
  3. 为目标模型添加一个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。
  4. 在目标数据集(如椅子数据集)上训练目标模型。我们将从头训练输出层,而其余层的参数都是基于源模型的参数微调得到的。

推荐阅读
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 读手语图像识别论文笔记2
    文章目录一、前言二、笔记1.名词解释2.流程分析上一篇快速门:读手语图像识别论文笔记1(手语识别背景和方法)一、前言一句:“做完了&#x ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 都会|可能会_###haohaohao###图神经网络之神器——PyTorch Geometric 上手 & 实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了###haohaohao###图神经网络之神器——PyTorchGeometric上手&实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • navicat生成er图_实践案例丨ACL2020 KBQA 基于查询图生成回答多跳复杂问题
    摘要:目前复杂问题包括两种:含约束的问题和多跳关系问题。本文对ACL2020KBQA基于查询图生成的方法来回答多跳复杂问题这一论文工作进行了解读 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 语义分割系列3SegNet(pytorch实现)
    SegNet手稿最早是在2015年12月投出,和FCN属于同时期作品。稍晚于FCN,既然属于后来者,又是与FCN同属于语义分割网络 ... [详细]
  • css div中文字位置_超赞的 CSS 阴影技巧与细节
    本文的题目是CSS阴影技巧与细节。CSS阴影,却不一定是box-shadow与filter:drop-shadow,为啥?因为使用其他属性 ... [详细]
author-avatar
喵咘噜_783
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有