自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 Transformer

Transformer引言:(补充)用于机器翻译的transformer结构如下,由编码器组件和解码器组件构成。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nHN4LNRR-1624956718031)(C:\Users\sfang.fangsh\AppData\Roaming\Typora\typora-user-images\image-20200616171932170.png)]如上图,编码器组件有一系列编码器堆砌组成,解码器组件也是由一系列的解码器堆砌组成

2021-06-29 16:52:07 127

原创 中文NER方法总结

中文NER方法总结​ 中文命名实体识别主要有四大主流算法,序列标注,指针网络,多头标注,片段排列。1. 四大抽取算法1.1 序列标注​ 最简单的softmax+CE的方法,是一种token级别的分类任务。这种方法最简单,但没有考虑到标签之间的关系。仅仅在特征提取时,上后文是有联系的,每个时刻分类时,互不相关,这样就会出现很不合理的预测,如BB等。在每一个位置使用softmax进行2C+12C+12C+1分类(如果使用BIO标注格式的话,C为类别总数)。​ 基于CRF的模型在softmax

2021-05-27 19:47:10 376

原创 深度学习中优化算法

深度学习常用的优化算法包括:梯度下降,随机梯度下降,小批量随机梯度下降,动量法,AdaGrad,RMSProp,Adam。这些优化算法又涉及到指数加权移动平均。下面先介绍什么是指数加权移动平均。1. 指数加权移动平均指数加权移动平均是几个概念拼到一起的,包括加权平均与移动平均。加权平均:平均分为算术平均和加权平均,算术平均指各项的权重都相等。加权平均各项权重不等。移动平均:移动平均常用于时间序列的平均计算。例如,取前n个时刻的值取平均。相当于有一个窗口在不断向前滑动。指数加权平均:每一项的权重不等

2021-05-26 19:33:00 530

原创 ELECTRA:Pre-training Text Encoders as discriminators Rather than Generators

摘要:​ Masked language model(MLM)预训练任务(如bert)通过使用[MASK]标记随机替换token来破坏输入(corrupted input)。虽然这种做法在下游任务可以得到较好的结果。但是只在大规模计算的前提下是有效的。本文提出了一种更加高效的预训练任务称为Replaced token detection。它不是使用[mask]随机替换,而是使用一个生成器以更加合理的方式去随机替换token来破坏输入。之后,不是去预测被破坏输入的原始标记,而是训练一个判别器,去预测被破坏输

2021-05-17 18:02:01 336

原创 Pytorch中分类loss总结

Pytorch中分类loss总结近期在学习pytorch时,发现分类算法在输出时不写激活层如softmax激活/sigmoid激活。并且pytorch文档中除了softmax激活/sigmoid激活外,还有logsoftmax/logsigmoid。以及torch的loss函数会把激活和损失计算都整合到一起计算,给的解释是为了获得更好的数值稳定性。为了弄清这一切,进行了以下探索。并将自己涉及的相关不清楚的部分进行了补充(可跳过)。一分类的loss函数理论上来说,可以用来衡量误差并且可微风的函数都

2021-05-17 17:09:27 2747

原创 对抗训练

文章目录1、定义2、对抗训练:从CV到NLP2.1 CV中的数据格式2.2 NLP中数据格式3、对抗样本与数据增强样本4 如何确定微小扰动4.1 Fast Gradient Sign Method(FGSM)4.2 Fast Gradient Method(FGM)4.3 Projected Gradient Descent(PGD)5 实验结果6 实现6.1 pytorch实现[2]6.2 keras实现[3]1、定义对抗样本:对输入增加微小扰动得到的样本。旨在增加模型损失。对抗训练:训练模型去区分

2021-05-17 16:05:17 8961 4

原创 长尾分布下的分类问题

长尾分布下的分类问题​ 基于深度学习的分类算法应用于长尾分布数据集时,识别效果不好。对尾部类别的学习效果很差。为解决长尾分类下的识别问题,有多种不同思想的优化方法。最简单的方法是重采样(re-sampling)和重加权(re-weighting)。一些最新研究方法包括知识迁移和解耦特征和分类器。重采样(re-sampling)​ 重采样的具体做法包括对头部类别样本的欠采样和对尾部类别样本的过采样。但过采样容易在尾部类别过拟合。​ 重采样一般会选择过采样的方式,欠采样会丢失过多的头部类别信息,

2021-05-14 20:34:22 3001

原创 Seesaw Loss总结

Seesaw Loss总结1、简介seesaw loss是为了解决长尾问题提出的损失函数,文章认为尾部类别的正负样本梯度不均衡时影响长尾检测性能的关键因素之一。seesaw loss可以针对性调整任意类别上的负样本梯度。由于尾部类别的正负样本不均衡,导致了尾部正负样本梯度不均衡,从而影响了检测器的性能。画一下长尾梯度。2、定义seesaw loss的数学表达如下:Lseesaw(z)=−∑i=1Cyilog(σ^),with σ^=ezi∑j≠icSijezj+eeiL_{seesaw}(z

2021-05-14 20:19:13 2042 7

原创 pytorch的数据读取

pytorch的数据读取pytorch数据读取的核心是torch.utils.data.DataLoader类,具有以下特性:支持map-style datasets和iterable-style datasets自定义数据读取顺序自动批量化单线程/多线程读取自动内存锁页1. 整体流程DataLoader的参数如下,主要涉及DataSet、sample、collate_fn、pin_memory。DataLoader(dataset, batch_size=1, shuffle=Fal

2021-05-14 20:16:31 2615 3

原创 NLP复习总结

NLP复习总结1. 词嵌入word2vecword2vec核心要点:1.两个重要模型:CBOW(continuous Bag-of-words Model)、skip-gram模型。投影层不使用激活函数2.两个高效优化技巧:Hierarchical softmax、Negativa sampling。负采样顾名思义就是对负样本就行采样,需要一个概率分布,使用词频的(3/4)此幂。3.其他技巧:二次采样、短语学习二次采样:滑动窗口生成样本时,减少对高频词的采样(如:的,得)。p(wi)=m

2021-05-14 20:14:13 234

原创 Meachine Leaning

Meachine Leaning决策树决策树可以看作时if-then规则的集合,还可以看作给定特征条件下类的条件概率分布。决策树学习包括三个步骤:特征选择,决策树生成,决策树剪枝。决策树损失函数时正则化的极大似然函数,该损失函数下选择最优决策树是NP完全问题。通常采用启发时方法近似求解。决策树生成算法:ID3:使用信息增益作为特征选择方法G(D,A)=H(D)−H(D∣A)G(D,A)=H(D)-H(D|A)G(D,A)=H(D)−H(D∣A)C4.5:使用信息增益

2021-05-14 20:13:39 207

原创 EM算法简介

EM算法简介1 使用场景EM算法(expectation maximization algorithm)用于含有隐变量概率模型参数的极大似然估计。在不含有隐变量(未观测变量)的概率模型参数估计,最常用的就是极大似然估计。在含有未观测变量时,一般使用EM算法。2 目标EM算法还是要极大化观测数据(不完全数据)的对数似然函数。假设有m个观测样本(y1,z1),(y2,z2),...,(ym,zm)(y_1,z_1),(y_2,z_2),...,(y_m,z_m)(y1​,z1​),(y2​,z2​),.

2021-05-14 20:13:08 295

原创 Decoupling Representation and Classifier for Lont-Tailed Recognition

Decoupling Representation and Classifier for Lont-Tailed Recognition​ 长尾问题是基于深度学习分类模型的一大难点。现有的解决方案包括损失加权,数据重采样,头部类别到尾部类别的迁移学习。大多数方案都将表示和分类器联合学习。本文将学习过程分解成表示学习和分类。系统的探索了上述方法是怎么影响这两个部分,以获得在长尾分布上更好的表示。发现两个结果:(1)在学习高质量的文本表示时,数据不均衡不是一个问题。(即使数据不均衡,也能学习到高质量的文本

2021-05-14 20:11:05 634

原创 Batch Normalization,Layer Normalization,Weight Normalization

Batch Normalization,Layer Normalization,Weight Normalization1 Interral Covariate Shift在深度神经网络的训练过程中,每次优化,低层的参数变化,一方面,随着层数加深,这些变化会被放大,另一方面。底层参数变化会导致高层的输入分布变化,上层网络需要不断的适应这些变化,导致训练困难,这一现象叫做Interal Covariate Shift。1.1 什么是Interal Covariate ShiftInteral Cova

2021-05-14 19:59:56 238

原创 TF-IDF

词频是衡量词是否重要的一种方法。可用于文本特征表示中,根据词频为词赋不同权重。有以下常用词频:TF(term frequency)绝对词频。IDF(Inverse Document Frequency,IDF)逆文本频率。布尔词频:用0,1区分某词是否出现,无法区分重要程度。绝对词频(term frequency,TF):用词出现的频率表示重要程度。TF-IDF:绝对词频-逆文本频率:在绝对词频的基础上,对常用词进行惩罚。1. TF绝对词频TF=该条样本某词出现总词数该条样本总词数TF=\f

2021-01-07 13:36:46 398 1

原创 【BUG】shell命令过长用\换行报错

sh脚本在windos上编写好,上传到linux服务器会报错(sh脚本包含换行符会报错,不包含不报错)。操作系统改变导致格式错误。使用dos2unix转化sh文件即可正常执行。如run.sh文件python run_classify.py \--model_type bert \--model_name_or_path /data/sfang/BertPretrainedModel/torch/chinese_electra_base_discriminator_pytorch/ \--do

2020-08-18 20:40:34 1655 1

原创 RNN,LSTM,GRU计算方式及优缺点

本文主要参考李宏毅老师的视频介绍RNN相关知识,主要包括两个部分:分别介绍Navie RNN,LSTM,GRU的结构对比这三者的优缺点1.RNN,LSTM,GRU结构及计算方式1.1 Navie RNN结构图:计算公式:ht=σ(Whht−1+Wxxt)yt=σ(Wyht)h^t=\sigma(W^hh^{t-1}+W^xx^t)\\y^t=\sigma(W^yh^t)ht=σ(Whht−1+Wxxt)yt=σ(Wyht)依赖每一个时刻的隐状态产生当前的输出,具体计算方式根据自己任

2020-06-21 15:44:43 15618

转载 NLP中的Attention总结

Attention是模拟人脑的注意力机制。人在看到一些东西,往往只关注重要的信息,而忽略其他信息。自然语言处理中的attention是对文本分配注意力权重,Attention的本质就是从关注全部变为关注重点。1 Attention的原理Attention的计算过程:query和key向量进行相似度计算,得到权重。将得到的权值进行归一化,得到每个key的归一化权重。根据权重,对value进行加权求和。2 Attention的类型如上图,按不同的方式,可将attention分为不同类型。

2020-06-16 11:36:17 979

转载 文本相似度度量

文本相似度度量就是衡量两个文本相似度的算法。主要包括两个步骤:将文本表示为向量(文本表示);衡量两个向量的相似度(相似度度量)。1 文本表示文本表示也包括两部分:文本切分粒度(按什么粒度切分得到文本特征),如何构造特征(如何将文本特征转化成数值特征)。1.1 文本切分粒度可以按照字,词,n-gram对文本进行切分;当文本是长文本时,也可以利用主题模型提取关键词,来减少词的维度。1.2 文本特征构建特征构建就是如何将词袋模型中的词转化成向量表示。可以用one-hot,对应位置的权重可以是TF或者.

2020-06-09 14:58:37 1360

原创 NLP算法工程师

本文主要针对NLP算法工程师,构建NLPer面试所需知识的思维导图;只涉及对付面试的知识。主要包括以下三大部分的知识:统计机器学习,深度学习(NLP方向),算法与数据结构。本文的主要目的:只构建整体知识的框架(面),不涉及算法细节。各算法的细节会在相应算法学习文档详细介绍。本章构建的知识框架便于对整体知识进行回顾。1 统计机器学习1.1 基础算法主要包括六大机器学习算法:感知机,KNN,朴树贝叶斯,决策树,LR,SVM。线性模型(感知机,LR,贝叶斯)树模型(ID3,C4.5,CART)SV

2020-06-08 20:34:27 3372

原创 CRF(条件随机场)

1适用场景CRF是用于序列标注的模型,区别于其他算法对一个随机变量建模,CRF是对一组随机变量的联合概率分布进行建模。2算法原理CRF做了一下假设:1假设联合概率分布是指数族分布p(y1,y2,...,yn∣X)=1Z(x)exp(f(y1,y2,...,yn;X))p(y_1,y_2,...,y_n|X)=\frac{1}{Z(x)}exp(f(y_1,y_2,...,y_n;X))p(y1​,y2​,...,yn​∣X)=Z(x)1​exp(f(y1​,y2​,...,yn​;X))2成

2020-06-08 19:58:51 496

原创 SVM(support vector machines)支持向量机

1 线性可分支持向量机和硬间隔最大化1.1 定义给定线性可分训练数据集,通过间隔最大算法或等价求解凸二次规划问题学得分离超平面:w∗⋅x+b∗=0w^*\cdot x+b^*=0w∗⋅x+b∗=0相应的分类预测函数是:f(x)=sign(w∗⋅x+b∗)f(x)=sign(w^*\cdot x+b^*)f(x)=sign(w∗⋅x+b∗)与感知机的对比:线性可分支持向量机和感知机的分离超平面和决策函数完全一致。区别就在对参数w∗,b∗w^*,b^*w∗,b∗的求解上。支持向量机的要求更

2020-06-08 18:27:01 336

原创 最大熵模型(Maximum entropy model)

最大熵模型(Maximum entropy model)本文你将知道:什么是最大熵原理,最大熵模型最大熵模型的推导(约束最优化问题求解)最大熵模型的含义与优缺点依靠最大熵原理得到的模型是最大熵模型。先来说最大熵原理:1 最大熵原理最大熵原理:在满足已知约束条件的模型集合中,选择熵最大的模型。熵最大,对应着随机性最大。最大熵首先要满足已知事实,对于其他未知的情况,不做任何的假设,认为他们是等可能性的,此时随机性最大。2 最大熵模型最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模

2020-06-05 15:54:20 1092

原创 概率图模型:HMM,MEMM,CRF

HMM(Hidden Markov Moel)是一个有向图模型,为简化求解多随机变量的联合概率分布,做了两个假设:齐次马尔科夫假设和观测独立假设。这两个假设都具有局限性。MEMM(Maximum Entropy Markov Model)舍弃了HMM的观测独立假设,使用了所有上下文的观测值。因此具有更强的表达能力。同时使用最大熵模型对条件概率建模。每个条件概率在局部进行了归一化,这又带来了“label bias”问题。CRF去除了HMM的另一个假设“齐次马尔科夫假设”,使用全局归一化计算联合概率,避免了局部

2020-06-05 08:49:00 558

原创 Seq2Seq模型中的label bias和exposure bias问题

从序列到序列的seq2seq模型中,存在着label bias和exposure bias问题。这两个偏差问题是由于不同的原因导致的。先给出结论在分别解释label bias:根本原因是我们真实的目标与建模的目标不一致,导致模型最终求得的输出和我们真实想要的输出存在偏差。体现在联合概率分布上就是,真实想要的分布应该是全局归一化得到的。而建模得到的分布是局部归一化得到的。exposure bias是由于seq2seq训练难以收敛,而引入了teacher forcing训练技巧,使得训练更容易收敛。由于t

2020-06-04 16:20:14 1867

原创 统计学习方法--树模型

树模型(上思维导图来自知乎:夕小瑶)决策树算法主要包括决策树的生成与剪枝。1 决策树生成决策树可以从两个方面解释看做是if-then规则的集合把特征空间划分成互不相交的单元,每个单元定义一个条件概率分布。决策树学习的本质是从训练数据集中归纳出一组分类规则,也可以看做是对特征空间划分类的条件概率分布。首先,按照根据统计学习三要素来分析决策树学习的过程:假设空间:对特征空间进行划分所有可能的决策树损失函数:正则化的极大似然函数优化方法:优化就是要在所有可能的的决策树中选择损失最小的树

2020-06-01 18:08:45 489

原创 统计学习方法--线性模型

线性模型(上面的思维导图来自知乎:夕小瑶)线性模型是想要使用属性的线性组合来进行预测的方法。按照label是连续的还是离散的。可分为线性回归和线性分类模型。下面在介绍各模型时主要按照统计学习的三要素(模型假设空间,损失函数,优化方法)介绍。假设空间:先给出一个范围区间,在这个区间内查找最优模型。模型有两种形式条件概率分布或者决策函数。模型的假设空间就是所有可能的条件概率分布或决策函数。损失函数:定义评价指标,如何评价模型的好坏。优化方法:如何根据评价指标在假设空间找到最优的模型。1线性回

2020-06-01 15:16:48 1266

原创 ensemble learning集成学习

在实际的学习任务中,得到强学习器要比得到弱学习器困难的多。于是就有人研究如何将弱学习器组合成强学习器(毕竟三个臭皮匠赛过诸葛亮,结合集体的智慧得到好的结果),一般将这一类的方法统称为集成学习。集成学习会要求基学习器“好而不同”。“好”是指每个基学习器要有一定的辨别能力,至少要强于随机猜测;“不同”是指多个基学习器之间要具有一定的差异性(各有所长)。下面的思维导图对集成学习的知识进行了归纳(主要参见周志华老师的西瓜书)。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lqKTy

2020-05-31 21:49:27 369

原创 xgboost算法

xgboost算法本节主要讲1.什么是xgboost2.xgboost的思想3.xgboost算法中的一些细节分裂的打分函数推导xgb中避免过拟合的方法总结最优分裂点选择缺失值处理并行计算设计1.什么是xgboostxgboost是xetreme gradient boost(极度梯度提升的缩写),是梯度提升树(GBDT)的一种实现方式,更加高效并且效果更好。2.xgboost的思想xgboost(下简称xgb)是GBDT的一种实现方式。所有,xgb模型也是

2020-05-31 17:25:28 876

原创 Adaboost

Adaboost1.思想通过改变数据概率分布,来得到一系列的弱分类器。主要有两个问题:(1)如何改变数据分布将上一弱分类器误分样例的权重提高,正确分类样例的权重降低(2)如何将若分类器组合为强分类器加权求和2.算法流程输入:训练样本集T=(x1,y1),(x2,y2),...,(xn,yn),其中x∈χ⊂Rn,y∈{1,−1}T={(x_1,y_1),(x_2,y_2),...,(x_n,y_n)},其中x\in\chi\subset{R^n},y\in{\{1,-1\}}T=(x1​,y

2020-05-27 15:46:21 206

原创 HMM(隐马尔科夫模型)

HMM(隐马尔科夫模型)1适用场景hmm模型用于序列标注问题的统计学模型。描述有隐藏的马尔科夫链生成观测序列的过程。属于生成模型。2算法原理2.1 序列标注任务看做互不相干的多分类任务序列标注算法的目的就是为了得到最大的联合条件概率作为输出。maxP(o∣x)=maxp(o1o2...om∣x1x2...xm)\mathop{max}P(o|x)=\mathop{max}p(o_1o_2...o_m|x_1x_2...x_m)maxP(o∣x)=maxp(o1​o2​...om​∣x1​x2

2020-05-20 22:02:14 521

原创 EM算法简介

EM算法简介1 使用场景EM算法(expectation maximization algorithm)用于含有隐变量概率模型参数的极大似然估计。在不含有隐变量(未观测变量)的概率模型参数估计,最常用的就是极大似然估计。在含有未观测变量时,一般使用EM算法。2 目标EM算法还是要极大化观测数据(不完全数据)的对数似然函数。假设有m个观测样本(y1,z1),(y2,z2),...,(ym,zm)(y_1,z_1),(y_2,z_2),...,(y_m,z_m)(y1​,z1​),(y2​,z2​),.

2020-05-20 22:01:06 445

原创 pytorch继承nn.Module类定义模型

在pytorch中,最常用于定义模型的方法是继承nn.Module类后重载__init__()和forward函数。部分疑问记录:1.为什么重载forward函数后可以直接使用net(x)调用?2.哪些网络模块要预先写在__init__中?3.如果一个网络模块有多个重复的网络层。哪些可以在__init__只定义一次。哪些要定义多次。一 forward函数1.python的__i...

2020-04-23 17:58:51 6476 3

原创 pytorh实现全局平均(最大)池化的两种方式

Pytorch没有对全局平均(最大)池化单独封装为一层。需要自己实现。下面有两种简单的实现方式。使用torch.max_pool1d()定义一个网络层。 使用nn.AdaptiveMaxPool1d(1)并设置输出维度是1import torch import torch.nn as nnimport numpy as np#第一种方式class GlobalMaxPool1d...

2020-04-22 15:49:49 12192 1

原创 一文搞懂pytorch中的乘法

一 numpy广播机制Broadcast原理:python在进行numpy算术运算采用的是element-wise方式(逐元素操作的方式),此时要求两个数据的维度必须相同。维度不同时,会触发广播操作使其维度相同。不满足广播操作的情况下会直接报错。broadcase原理数据的维度指两个方面,维度的个数和维度的大小。如:a = np.ones(4,3)维度个数是2,第一维大小是4,...

2020-04-21 16:36:55 4412 2

原创 DPCNN论文阅读总结

Deep pyramid Convolutional Neural Networks for Text Categorization摘要:本文提出了一个低复杂度,词级别用于文本分类的深度卷积神经网络,该模型可以有效的获得文本长距离联系的表示。针对文本分类,有一些深并且复杂的模型被提出,但它都假设相当大的训练数据可以使用。随着网络的加深,计算复杂度也会提升,导致实际应用困难。并且,近期研究表...

2020-04-16 16:28:07 2213

原创 TextRCNN论文阅读总结及pytorch实现

Recurrent Convolutional Nerual Networks for Text Classfication摘要:文本分类是NLP中的基础任务,传统的文本分类通常依赖于手工设计的特征,例如字典,先验知识,special tree kernels等。不同于传统方法,本文提出了一个无需手工设计特征的循环卷积神经网络用于文本分类。这个模型使用循环网络结构尽可能远的捕获语义信息,相...

2020-04-14 17:19:39 2107 1

原创 pytorch中loss总结

Pytorch中分类loss总结近期在学习pytorch时,发现分类算法在输出时不写激活层如softmax激活/sigmoid激活。并且pytorch文档中除了softmax激活/sigmoid激活外,还有logsoftmax/logsigmoid。以及torch的loss函数会把激活和损失计算都整合到一起计算,给的解释是为了获得更好的数值稳定性。为了弄清这一切,进行了以下探索。并将自己涉及的...

2020-04-02 23:00:26 4243

原创 python迭代器和生成器

容器和迭代部分引自老猿python,写的很赞!感谢一、容器容器就是把多个数据类型组织到一起的数据结构。如python内置数据类型list,dict,tuple等。容器仅仅只是用来存取数据的,不具备取出操作功能。正是可迭代对象赋予容器这种能力。迭代的取出数据,不断拿出下一个元素。二、什么是迭代。迭代不同于循环,迭代指重复进行某种操作,并且当前操作依赖于上次操作(如版本迭代,模型...

2020-04-01 16:57:31 169

原创 pytorch中parameter和Module类总结

看了pytorch官网parameters和Module部分。做个部分测试并记录。详细建议去官网查询一、nn.Parameter类是Tensor的子类。唯一区别:在和Module一起使用时。当parameter赋值给module的属性时,会自动将parameter加入到模型的参数列表中。而tensor不会。二、nn.Module是一个python容器。是所有神经网络模块的基类。...

2020-04-01 15:06:02 4232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除