深度神经网络
文章平均质量分 78
jiangchao98
这个作者很懒,什么都没留下…
展开
-
预训练模型分词方式
tokenize的目标是将输入的文本流, 切分成一个个子串,使得每个子串具有相对完整的语义,便于学习embedding表达和后续模型的使用。word/词:最自然的语言单元,中文需要分词算法。由于词汇表较大,存在长尾现象,词汇表可能超大。常规的词汇表,一般大小不超过5万。char/字符:最基本的字符。字符的数量是少量有限的,由于字符数量太小,在为每个字符学习嵌入向量表示的时候,每个向量容纳太多的语义信息,学习困难。subword/子词级别:介于字符和单词之间,。。原创 2022-11-24 20:19:25 · 849 阅读 · 1 评论 -
论文研读--Masked Generative Distillation
但当使用MGD蒸馏后,学生与教师差异很大,学生对于背景的响应大幅减小,对于目标的响应得到了增强,学生的最终表现也好于FGD蒸馏。之前的知识蒸馏方法着力于使学生去模仿更强的教师的特征,以使学生特征具有更强的表征能力。从这点出发,我们把模仿任务修改成了。在蒸馏过程中,我们对学生特征进行了随机mask,强制学生仅用自己的部分特征去生成教师的所有特征,以提升学生的表征能力。通常的做法,使得学生的特征去模仿教师的特征,使用KL散度或者MSE来对齐学生的特征以及教师的特征,但是学生模仿的效果必然差于教师模型。.....原创 2022-07-24 17:55:33 · 1159 阅读 · 0 评论 -
贪心搜索(greedy search)、集束搜索(beam search)、随机采样(random sample)
当我们训练完成一个自然语言生成模型后,需要使用这个模型生成新的语言(句子),如何生成这些句子,使用如下的方法:贪心搜索,集束搜索,随机搜索。贪心搜索(greedy search)/采样(Sampling)贪心搜索最为简单,直接选择每个输出的最大概率,直到出现终结符或最大句子长度。在每个阶段都选择分值最高的项。此方法经常奏效,但显然不是最优的。集束搜索(beam search)集束搜索是一种启发式图搜索算法,在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展原创 2022-05-24 23:26:34 · 4715 阅读 · 0 评论 -
NLP数据增强
同义词替换 回译回译调用百度API接口实现回译数据增强代码实现如下:import http.clientimport hashlibimport jsonimport urllibimport randomimport time #调用百度翻译API将中文翻译成英文def baidu_translate(content, from_, to_): appid = '' #个人申请后的id号 secretKey = '' #个人申请后的密码 .原创 2022-05-24 12:08:56 · 253 阅读 · 0 评论 -
中文文本纠错论文
PLOME: Pre-training with Misspelled Knowledge for Chinese Spelling Correction论文地址:https://aclanthology.org/2021.acl-long.233.pdf仓库地址:https://github.com/liushulinle/PLOME使用困惑集中相似单词遮盖选择的单词 通过使用拼音来预测单词 使用GRU网络根据字符的语音和笔划对这些知识进行建模中文错误(近音字、近形字)使用拼音以及笔原创 2022-04-11 00:02:22 · 2831 阅读 · 0 评论 -
NLP之文本分类任务
文本分类任务参考:NLP-Interview-Notes/NLPinterview/textclassifier/TextClassification at main · km1994/NLP-Interview-Notes (github.com)数据预处理1.文本分类任务数据预处理方法分词:将句子分割成独立的语义单元组成的序列过程 去停用词:识别并删除对分类意义不大且出现频率较高的词 词性标注:在分词后判断词性来添加特征2.中文文本分词的方法基于字符串匹配的分词方法 基于统计语原创 2022-03-31 15:08:03 · 3309 阅读 · 0 评论 -
预训练模型及其变种
参考:关于Bert压缩模型压缩的方法低秩因式分解 & 跨层参数共享(计算量没有下降、参数量下降) 蒸馏 量化 剪枝(直接降低模型拟合能力)ALBERT参考:解读ALBERT嵌入向量参数因式分解(减少参数量) 跨层参数共享(减少参数量) 句间连贯性损失(增加任务学习难度)其他的方法:(弃用dropout 、masked-ngram-LM)词向量矩阵分解论文:用深度矩阵分解给词向量矩阵瘦身TinyBERT知识蒸馏原理:知识蒸馏(Knowledge Distil.原创 2022-03-28 22:57:49 · 721 阅读 · 0 评论 -
深度神经网络损失函数和反向传导
之前对于深度神经网络的学习,主要集中于如何更改模型结构,以及了解模型结构不同部分所起到的作用和原理。虽然对于注意力机制、GAT、LSTM、Transformer等不同结构的实现原理有了很好的了解,但是对于神经网络的损失函数和反向传导过程的理解程度较为差劲,如何设计损失函数可以更好地适应任务以及Max Pooling如何反向传导等问题一时语塞不知如何作答。回想起正好一年前看的吴恩达老师的视频,虽然对理论基础有了一定的了解,但是了解程度较为浅薄,并且由于时间紧迫并未将老师全部的视频看完吃透,现如今...原创 2021-12-22 22:30:32 · 4960 阅读 · 0 评论 -
图神经网络及其Pytorch实现
图结构一般而言是十分不规则的,可以认为是无限维的一种数据,因此不存在平移不变性。每一个结点周围的结构都是独一无二的,因此针对该结构的数据。涌现出GNN、DeepWalk、node2vec等等方法。GCN,即图卷积神经网络图卷积神经网络(GCN)tkipf/pygcn (github.com)Graph Convolutional Networks |Thomas Kipf | University of Amsterdam (tkipf.github.io)图卷积网络(GCN)数学.原创 2021-12-13 23:45:43 · 8912 阅读 · 0 评论 -
预训练模型
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史Bert模型详解BERT模型精讲BERT模型训练BERT是一个双向模型编码器 -> 获得token的语义信息(1)pre-training + fine tuning(MLM、NSP + Softmax)(2)pre-training + prompt预训练任务NSP做Zero ShotBERT模型参数量计算(1)Embedding层vocab_size * hidden_原创 2021-12-06 12:13:44 · 864 阅读 · 0 评论 -
transformer及动手学习transformer
注意力机制卷积、全连接、池化层只考虑不随意线索注意力机制则显示的考虑随意线索随意线索被称之为查询(query)每个输入是一个值(value)和不随意线索(key)的对,可以相等也可以不相等通过注意力池化层来有偏向性的选择某些输入非参注意力池化层平均池化是最简单的方案Nadaraya-Watson核回归参数化的注意力机制注意力机制中,通过query(随意线索)和key(不随意线索)来有偏向性的选择输入注意力机制拓展到高维度假设query, m对key..原创 2021-11-09 17:34:33 · 2002 阅读 · 4 评论 -
循环神经网络(RNN、LSTM、GRU)以及Pytorch的使用
RNN循环神经网络的结构, 它由一个输入层、一个隐藏层和一个输出层组成。语言模型:给定一个一句话前面的部分,预测接下来最有可能的一个词是什么在使用RNN之前,语言模型主要采用n-gram, n是一个自然数,假设一个词出现的频率只与前面N个词相关。RNN理论上可以往前(往后看)任意多个词。参考:循环神经网络在计算时, 每一time step中使用的参数是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点。网络在每个时刻接收到输入之后,隐藏层的值是, 输出层的值是。..原创 2021-10-27 23:04:29 · 2503 阅读 · 0 评论 -
Bert模型解读(transformer库源码解读)
BERT输出两个张量#outputs[0]是last_hidden_state, 是基于token表示的, 对于实体命名、问答非常有用、实际包括四个维度[layers, batches, tokens, features]#outputs[1]是整个输入的合并表达, 形状为[1, representation_size], 提取整篇文章的表达, 不是基于token级别的#outputs一共四个属性、last_hidden_state, pooler_output, hidden_states, at.原创 2021-06-16 21:32:43 · 3024 阅读 · 0 评论 -
图神经网络DGL-构图
dgl.DGLGraph是对图的统一抽象,它存储了图的结构信息、节点/边的属性信息。原创 2021-06-10 23:13:06 · 3498 阅读 · 3 评论 -
[论文阅读 --- 逻辑推理] 自然语言处理中的逻辑推理
(1条消息) [论文阅读 --- 逻辑推理] 自然语言处理中的逻辑推理_smilesooo的博客-CSDN博客原创 2021-06-09 16:41:35 · 355 阅读 · 0 评论 -
NLP领域实验
NLP领域实验参考:NLP 竞赛经验总结-2021 - 知乎 (zhihu.com)1.NLP模型训练用到的通用技巧数据增强 数据清洗 对抗训练 + 混合精度 多模型融合 半监督训练现在的NLP竞赛,基本都会使用BERT,各种体量的BERT确实效果会很好,建议使用HuggingFace的transformers包,调用和调试都很方便。百度举办 语言与智能技术竞赛 法研杯 讯飞杯1.数据增强2.数据清洗3.对抗训练 + 混合精度4.多模型融合5.半监督训练..原创 2021-05-18 23:18:56 · 101 阅读 · 0 评论 -
动手学深度学习(十一、自然语言处理基础知识)
动手学深度学习(十一、自然语言处理基础知识)∝,数学符号,表示与什么成正比例。负采样的本质:每次让一个训练样本只更新部分权重, 其他权重全部固定, 减少计算量(一定程度上还可以增加随机性)negative sampling 的思想是只需要按照一定的概率分布P抽取K个负样本,比如在skip-gram的例子中,输入“fox”,抽出的负样本可能是“two”,“mother”等等,与正样本放在一起,将多分类问题转换成K+1个二分类问题,从而减少计算量,加快训练速度。命名实体识别基于规则的命名实体原创 2021-04-23 22:13:01 · 808 阅读 · 0 评论 -
动手学深度学习(十二、自然语言处理进阶知识)
动手学深度学习(十二、自然语言处理进阶知识)在大规模语料上预训练的词向量常常可以应用于下游自然语言处理任务中。 可以应用预训练的词向量求近义词和类比词。word2vec词嵌入模型,通过词向量的余弦相似度搜索近义词。实际中,在大规模语料上预训练的词向量常常可以应用到下游自然语言处理任务中。本节将演示如何用这些预训练的词向量来求近义词和类比词。我们还将在后面两节中继续应用预训练的词向量。一、使用预训练的词向量基于PyTorch的关于自然语言处理的常用包有官方的torchtext以及第三方的pyt原创 2021-04-22 23:09:37 · 1217 阅读 · 1 评论 -
动手学深度学习(七、语言模型与循环神经网络)
动手学深度学习(七、语言模型与循环神经网络)参考链接:循环神经网络一、语言模型语言模型是自然语言处理的重要技术。 NNN元语法是基于n−1n-1n−1阶马尔可夫链的概率语言模型,其中nnn权衡了计算复杂度和模型准确性。语言模型(language model)是自然语言处理的重要技术。自然语言处理中最常见的数据是文本数据。我们可以把一段自然语言文本看作一段离散的时间序列。假设一段长度为T的文本中的词依次为,那么在离散的时间序列中,可看作在时间步(time step)t的输出或标签。语言模型可用原创 2021-04-19 16:20:08 · 752 阅读 · 0 评论 -
动手学深度学习(十、深度学习计算性能)
动手学深度学习(十、深度学习计算性能)一、命令式和符号式混合编程命令式编程,它使用编程语句改变程序状态。虽然使用命令式编程很方便,但它的运行可能很慢。与命令式编程不同,符号式编程通常在计算流程完全定义好后才被执行。多个深度学习框架,如Theano和TensorFlow,都使用了符号式编程。通常,符号式编程的程序需要下面3个步骤:定义计算流程; 把计算流程编译成可执行的程序; 给定输入,调用编译好的程序执行。#命令式编程def add(a, b): return a + bd转载 2021-04-12 13:43:52 · 186 阅读 · 0 评论 -
动手学深度学习(九、深度学习优化算法)
动手学深度学习(九、深度学习优化算法)参考链接:优化算法一、优化与深度学习由于优化算法的目标函数通常是一个基于训练数据集的损失函数,优化的目标在于降低训练误差。 由于深度学习模型参数通常都是高维的,目标函数的鞍点通常比局部最小值更常见。优化与深度学习的关系,以及优化在深度学习中的挑战。在一个深度学习问题中,我们通常会预先定义一个损失函数。有了损失函数以后,我们就可以使用优化算法试图将其最小化。在优化中,这样的损失函数通常被称作优化问题的目标函数(objective function)。依据惯原创 2021-04-11 20:28:05 · 1912 阅读 · 0 评论 -
深度神经网络--预训练模型
深度神经网络--预训练模型NLP综述:NLP综述(思维导图)一个画图的工具:https://app.diagrams.net/参考博客:深度学习中的注意力机制参考博客:深度学习枕边书question反向传播时需采用蒙特卡洛进行梯度估计TransformerEncoder-Decoder框架文本领域常用的Encoder-Decoder框架增加了注意力模型的Encoder-Decoder光加注意力机制函数结果代表输入句子Source的长度,代表在Ta.原创 2021-04-08 16:59:36 · 647 阅读 · 0 评论 -
深度神经网络问题以及解决方法
深度神经网络问题以及解决方法参考博客:深度学习中的highway network、ResNet参考博客:神经网络梯度与归一化问题总结一份详细讲解的代码:https://iamtrask.github.io/2015/11/15/anyone-can-code-lstm/问题一:误差信号的多层反向传播容易产生“梯度消失”、“梯度爆炸”现象问题二:随着深度神经网络层数的增加,训练误差没有降低反而升高当神经网络层数过深的时候,会出现“退化”的现象,即在网络层数加深时,网络的loss不降原创 2021-04-06 20:42:33 · 4135 阅读 · 0 评论 -
动手学深度学习(六、卷积神经网络)
动手学深度学习(六、卷积神经网络)卷积神经网络(LeNet)LeNet分为卷积层块和全连接层块两个部分。卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。卷积层比之前的卷积层的输入的高和宽要小, 所以增加输出通道使两个卷积层的参数尺寸类似。池化窗口在输入上每次滑动所覆盖的区域互不重叠。卷积层块的输出形状为(批量大小, 通道, 高, 宽)。当卷积层块的输出传入全连接原创 2021-04-04 23:07:06 · 1539 阅读 · 0 评论 -
动手学深度学习(五、卷积神经网络基础知识)
动手学深度学习(五、卷积神经网络基础知识)一、二维卷积层二维卷积层的核心计算是二维互相关运算。在最简单的形式下,它对二维输入数据和卷积核做互相关运算然后加上偏差。 我们可以设计卷积核来检测图像中的边缘。 我们可以通过数据来学习卷积核。import torchfrom torch import nn#import torch.nn as nn#1二维互相关运算#数组X、核数组K, 输出数组Ydef corr2d(X, K): # 本函数已保存在d2lzh_pytorch包中方便以原创 2021-03-28 19:44:08 · 528 阅读 · 0 评论 -
动手学深度学习(四、深度学习计算--模型构造)
动手学深度学习(四、深度学习计算--模型构造)一、模型构造可以通过继承Module类来构造模型。 Sequential、ModuleList、ModuleDict类都继承自Module类。 与Sequential不同,ModuleList和ModuleDict并没有定义一个完整的网络,它们只是将不同的模块存放在一起,需要自己定义forward函数。 虽然Sequential等类可以使模型构造更加简单,但直接继承Module类可以极大地拓展模型构造的灵活性。1.继承Module类来构造模型原创 2021-03-25 16:42:50 · 732 阅读 · 0 评论 -
动手学深度学习(三、深度学习基础--多层感知机、基础知识)
动手学深度学习(三、深度学习基础--多层感知机、基础知识)1.隐藏层2.激活函数ReLU函数 sigmoid函数 tanh函数一、多层感知机的从零开始实现多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。多层感知机的层数和各隐藏层中隐藏单元个数都是超参数。import torchfrom torch import nnfrom torch.nn import initimport numpy as npimport sys原创 2021-03-23 12:27:57 · 878 阅读 · 0 评论 -
动手学深度学习(二、深度学习基础--softmax回归)
动手学深度学习(一、深度学习基础--softmax回归)一、图像分类数据集(Fashion-MNIST)数据集获取import torchimport torchvisionimport torchvision.transforms as transformsfrom IPython import displayimport matplotlib.pyplot as pltimport timeimport sys#对于pytorch中的torchvision不甚了解#对于matp原创 2021-03-22 11:22:37 · 455 阅读 · 0 评论 -
动手学深度学习(一、深度学习基础--线性回归)
动手学深度学习(一、深度学习基础--线性回归)动手学深度学习(Pytorch版本)生成数据集读取数据初始化模型参数定义模型定义损失函数定义优化算法训练模型一、线性回归从零开始import torchfrom IPython import displayfrom matplotlib import pyplot as pltimport numpy as npimport randomnum_inputs = 2num_examples = 1000t原创 2021-03-20 23:42:06 · 280 阅读 · 0 评论 -
Pytorch学习笔记(四:Pytorchtext处理数据集)
Pytorch学习笔记(四:Pytorchtext处理数据集)(未完)需进一步更进首先:讲解一下python语法中的lambda函数使用lambda的语法是后面紧跟的是参数 然后接冒号 然后紧跟函数返回值。#匿名函数s = "hello world"ans = (lambda x: x.split())(s)print(ans)'''['hello', 'world']'''#给匿名函数取名字、不再匿名tokenize = lambda x: x.split()#将原创 2021-03-09 00:59:47 · 2023 阅读 · 2 评论 -
Pytorch搭建模型的五大层级级别、自定义模型、自定义网络层
Pytorch搭建模型的五大层级级别、自定义模型、自定义网络层(待学习)pytorch搭建模型的的五大层次级别转自:Pytorch搭建模型五大层次级别博客下的Pytorch搭建模型的五大层次级别神经网络的基本流程可以分为两大步骤:网络结构搭建+参数的梯度更新(后者又包括 “前向传播+计算参数的梯度+梯度更新”)1)原始搭建——使用numpy实现# -*- coding: utf-8 -*-import numpy as np # N是训练的batch size; D_in..原创 2021-03-09 00:06:03 · 1269 阅读 · 0 评论 -
PyTorch学习笔记(三:神经网络结构&&pytorch神经网络搭建)
PyTorch学习笔记(三:神经网络结构&&pytorch神经网络搭建)PyTorch既可以看作是加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。神经网络结构标准网络感知器感知器是所有神经网络中最基本的,也是更复杂的神经网络的基本组成部分。 它只连接一个输入神经元和一个输出神经元。前馈(Feed-Forward)网络前馈网络是感知器的集合,其中有三种基本类型的层: 输入层、隐藏层和输出层。 在每个连接过程中,来自前一层的信..原创 2021-03-01 17:29:30 · 1460 阅读 · 0 评论 -
PyTorch学习笔记(二:Tensor和Variable&&自动微分)
PyTorch学习笔记(二:Tensor和Variable&&自动微分)参考博客:https://ptorch.com/docs/3/autograd_tutorial(Pytorch官方中文教程) https://blog.csdn.net/qq_42655135/article/details/90812954?spm=1001.2014.3001.5501 https://github.com/L1aoXi...原创 2021-02-25 23:41:22 · 604 阅读 · 0 评论 -
Pytorch的学习笔记(一:属性统计&&范数讲解)
Pytorch的学习笔记(一:属性统计)参考博客链接:https://blog.csdn.net/wohu1104/article/details/107283396tensor的基本运算函数(一)mean均值 sum和 median中位数 mode众数(二)norm范数 dist距离(三)std标准差 var方差(四)cumsum累加 cumprod累积以上大多数函数都有一个参数dim,用来指定这些操作是在哪个维度上执行的(一)im...原创 2021-02-25 15:38:40 · 927 阅读 · 1 评论