
机器学习
文章平均质量分 93
爱编程真是太好了
这个作者很懒,什么都没留下…
展开
-
AI随笔、
参数初始化一般来说,正态分布的采样结果更多样化一些,但它理论上是无界的,如果采样到绝对值过大的结果可能不利于优化;相反均匀分布是有界的,但采样结果通常更单一。于是就出现了结合两者优点的“截尾正态分布”。截尾正态分布既指定均值μ\muμ和方差σ2\sigma^2σ2,也需要指定区间[a,b][a,b][a,b],它从N(μ,σ2)\mathcal{N}(\mu,\sigma^2)N(μ,σ2)中采样,如果采样结果在[a,b][a,b][a,b]中,那么保留该结果,否则重复采样直到采样结果落到[a,b][a,原创 2021-08-31 16:27:59 · 256 阅读 · 0 评论 -
如何使用预训练模型优雅的生成sentence embedding
前言预训练语言模型在目前的大部分nlp任务中做个微调都能取得不错的一个结果,但是很多场景下,我们可能没办法微调,例如文本聚类,我们更需要的是文本的向量表示;又亦如文本匹配,特别是实时搜索场景,当候选集数量较多时,直接使用ptm做匹配速度较慢。那么如何优雅的使用预训练模型生成文本embedding呢?本文将会从不同的预训练模型与不同的优化方法去介绍文本embedding的生成方式,如有理解错误,欢迎大家指正。本文所有的测试结果基于哈工大开源的LCQMC数据集,共20+w条数据,测试方法是计算两个句子的S原创 2021-04-15 20:04:59 · 7831 阅读 · 6 评论 -
图卷积神经网络GCN降维全解析
Spectral Graph Theory首先我们定义一下几个符号图 G=(V,E),N=∣V∣G=(V,E),N=|V|G=(V,E),N=∣V∣邻接矩阵 A∈RN×NA \in R^{N×N}A∈RN×N度矩阵 D∈RN×ND \in R^{N×N}D∈RN×N节点的信号 f:V→RNf:V \to R^Nf:V→RN 其中fif_ifi表示的是iii节点的信号拉普拉斯矩阵 L=D−AL=D-AL=D−A, LLL是一个半正定矩阵,我们考虑的是一个无向图,所以也是一个对称阵,拉普拉斯矩原创 2020-06-22 15:21:02 · 6047 阅读 · 2 评论 -
图算法图神经网络归纳总结
本文是我对图算法的一个归纳总结,学习过程按照以下博文顺序,持续更新中[什么是图][谱聚类]Random Walk节点分类图神经网络[图卷积神经网络][图注意力网络]原创 2020-06-04 11:44:20 · 1047 阅读 · 0 评论 -
图神经网络入门篇Graph Neural Network
前言在我上一篇博客,介绍基于random walk的节点表示方式,该方法的主要是思想是以one-hot的形式,经过Embedding层得到node vector,然后优化以下的似然函数来得到最优的Embedding Matrixmax∑u∈VlogP(NR(u)∣zu)max \sum_{u \in V} logP(N_R(u)|z_u)maxu∈V∑logP(NR(u)∣zu)该方法有很多缺点需要∣V∣|V|∣V∣大小的空间参数没有共享,一个节点对应一个embedding值图通常需要用原创 2020-06-03 22:34:03 · 4067 阅读 · 0 评论 -
图算法之节点分类Node Classification
在图谱当中,有一项很重要的任务,节点分类。该任务通常是给定图中某些节点对应的类别,从而预测出生于没有标签的节点属于哪一个类别,该任务也被称为半监督节点分类。本文主要要解决的问题就是如何做节点分类。图中的相互关系在图谱中,存在着两种重要的相互关系homophily亲和性(我自己的翻译成,不一定准确),具体意思就是指人以群分物以类聚,例如在社交网络中,喜欢蔡徐坤的人通常都会有同样的喜好。influence影响性,某节点的行为可能会影响到和他有关系的节点行为,例如有一天你吃起了螺蛳粉,结果你身边的人都原创 2020-06-01 22:35:14 · 19003 阅读 · 1 评论 -
基于随机游走Random Walk的图节点Node表示
Embedding Nodes既然要对graph进行embedding,那么我们可以参考下word embedding,在nlp中,embedding过后的同意词,通常会聚在一起,同样的,如果我们对图的节点进行embedding,有关系的节点,我们自然希望其embedding之后能聚在一起,如下图所示也就是说,我们希望embedding之后的node vector点乘之后的值(可以理解为未归一化的cosine)接近于原graph中的节点相似度,原图的相似度可以采用是否节点相连,是否有相同的邻居节点等原创 2020-06-01 14:38:50 · 6032 阅读 · 1 评论 -
全网最通俗的条件随机场CRF
对概率无向图模型建模,首先需要求其联合概率分布,求一个无向图的联合概率,则需要求其最大团,设每个最大团的概率为Φc(Yc)\Phi_c(Y_c)Φc(Yc),那么无向图的联合概率为:P(Y)=1Z∏cΦc(Yc)P(Y) = \frac{1}{Z} \prod_c \Phi_c(Y_c)P(Y)=Z1c∏Φc(Yc)Z=∑Y∏cΦc(Yc)Z= \sum_Y \prod_c \Ph...原创 2019-12-13 11:27:25 · 1717 阅读 · 0 评论 -
MLE与MAP的关系
设数据集为DDD,参数为θ\thetaθ对于MLE有P(D∣θ)=P(x1,x2...xn∣θ)=∏i=1nP(xi∣θ)P(D|\theta) = P(x_1,x_2...x_n|\theta) = \prod^n_{i=1}P(x_i|\theta)P(D∣θ)=P(x1,x2...xn∣θ)=i=1∏nP(xi∣θ)取对数logP(D∣θ)=∑i=1nlogP(xi∣θ...原创 2019-10-31 19:57:58 · 763 阅读 · 0 评论 -
文本匹配、文本相似度模型之ESIM
本文是我的匹配模型合集的其中一期,如果你想了解更多的匹配模型,欢迎参阅我的另一篇博文匹配模型合集所有的模型均采用tensorflow进行了实现,欢迎start,代码地址简介ESIM模型主要是用来做文本推理的,给定一个前提premise ppp 推导出假设hypothesis hhh,其损失函数的目标是判断ppp与hhh是否有关联,即是否可以由ppp推导出hhh,因此,该模型也可以做文本匹配,...原创 2019-05-20 19:31:52 · 12664 阅读 · 0 评论 -
文本匹配、文本相似度模型之DSSM
本文是我的匹配模型合集的其中一期,如果你想了解更多的匹配模型,欢迎参阅我的另一篇博文匹配模型合集所有的模型均采用tensorflow进行了实现,欢迎start,代码地址简介DSSM是2013年提出来的模型,主要应用场景为query与doc的匹配,在这之前,用的更多的还是一些传统的机器学习算法,例如LSA,BM25等。DSSM也算是深度学习在文本匹配领域中的一个先驱者,接下来我们会先从其结构开...原创 2019-05-14 18:17:30 · 9071 阅读 · 0 评论 -
文本匹配、文本相似度模型之ABCNN
简介本文将会介绍以CNN与attention机制做文本匹配的模型即ABCNN,这里给出论文地址ABCNN这里是我的代码实现在文本任务上,大部分模型均是采用以LSTM为主的结构,本文的作者采用了CNN的结构来提取特征,并用attention机制进行进一步的特征处理,作者一共提出了三种attention的建模方法,下文会详细介绍。在开始讲解之前,我们简单说明下attention机制,例如我们有...原创 2019-05-13 19:19:20 · 5148 阅读 · 0 评论 -
最通俗易懂的XLNET详解
Two-Stream Self-Attention for Target-Aware RepresentationsXLNET其中一个优化点是基于目标感知表征的双流自注意力虽然排列语言模型能满足目前的目标,但是对于普通的transformer结构来说是存在一定的问题的,为什么这么说呢,看个例子,假设我们要求这样的一个对数似然,pθ(Xzt∣xz<t)p_{\theta} (X_{...原创 2019-06-24 10:35:41 · 64569 阅读 · 20 评论 -
文本相似度,文本匹配模型归纳总结
本文将会整合近几年来比较热门的一些文本匹配模型,并以QA_corpus为测试基准,分别进行测试,代码均采用tensorflow进行实现,每个模型均会有理论讲解与代码实现,现已添加到我的github欢迎star项目代码与论文讲解都在持续更新中,如没有找到实现的代码,或相关论文讲解,请给我一首歌的时间ABCNN详解[DSSM详解] 待更新[ConvNet详解] 待更新[ESIM详解] 待更新...原创 2019-05-13 19:18:52 · 23151 阅读 · 20 评论 -
一文看懂学习率Learning Rate,从入门到CLR
前言对于刚刚接触深度学习的的童鞋来说,对学习率只有一个很基础的认知,当学习率过大的时候会导致模型难以收敛,过小的时候会收敛速度过慢,但其实学习率是一个十分重要的参数,合理的学习率才能让模型收敛到最小点而非鞍点。本文后续内容将会给大家简单回顾下什么是学习率,并介绍如何改变学习率并设置一个合理的学习率。什么是学习率首先我们简单回顾下什么是学习率,在梯度下降的过程中更新权重时的超参数,即下面公式中...原创 2019-05-23 18:53:35 · 50861 阅读 · 1 评论 -
文本匹配、文本相似度模型之DIIN
本文是我的匹配模型合集的其中一期,如果你想了解更多的匹配模型,欢迎参阅我的另一篇博文匹配模型合集所有的模型均采用tensorflow进行了实现,欢迎start,代码地址简介DIIN模型和其他匹配模型的结构都很接近,也是采用CNN与LSTM来做特征提取,但是在其输入层,作者提出了很多想法,同时采用了词向量、字向量,并且添加了一些额外的特征例如词性等,其本意在于能额外输入一些句法特征,CNN部分...原创 2019-05-31 09:51:21 · 4757 阅读 · 0 评论 -
tensorflow word2vec源码分析
简介最近在编写文本匹配模型时输入需要传入词向量,并在训练的过程中更新词向量。由于之前都是采用的gensim来生成词向量,词典和嵌入矩阵都不太方便获取到,因此决定采用tensorflow来训练词向量,但是据我在网上的了解,tensorflow训练的词向量整体效果还是不如gensim,gensim的源码我没有看过,如果对此清楚的童鞋请留言,十分感谢。不过在模型的训练阶段,还是会对词向量进行更新,因此...原创 2019-06-12 14:52:55 · 962 阅读 · 0 评论 -
文本匹配、文本相似度模型之DRCN
本文是我的匹配模型合集的其中一期,如果你想了解更多的匹配模型,欢迎参阅我的另一篇博文匹配模型合集所有的模型均采用tensorflow进行了实现,欢迎start,代码地址简介DRCN和DIIN的结构十分相似,包括输入层与特征提取层, DRCN在特征提取阶段结合了DenseNet的连接策略与Attention机制,在interaction阶段,也、采取了更加多样化的交互策略,接下来就为大家详细...原创 2019-06-03 18:49:22 · 6278 阅读 · 2 评论 -
一文揭开ALBERT的神秘面纱
前言RoBERTa没霸榜几天,这不Google爸爸就又放大招,这次的新模型不再是简单的的升级,而是采用了全新的参数共享机制,反观其他升级版BERT模型,基本都是添加了更多的预训练任务,增大数据量等轻微的改动。这次ALBERT的改进,不仅提升了模型的整体效果再一次拿下来各项榜单的榜首,而且参数量相比BERT来说少了很多。对于预训练模型来说,提升模型的大小是能对下游任务的效果有一定提升,然而如果进...原创 2019-10-02 16:36:31 · 30299 阅读 · 4 评论 -
Attention机制详解
转载请注明出处,原文地址简介相信做NLP的同学对这个机制不会很陌生,它在Attention is all you need可以说是大放异彩,在machine translation任务中,帮助深度模型在性能上有了很大的提升,输出了当时最好的state-of-art model。当然该模型除了attention机制外,还用了很多有用的trick,以帮助提升模型性能。但是不能否认的时,这个模型的核...原创 2019-01-11 11:46:29 · 10746 阅读 · 2 评论 -
文本匹配、文本相似度模型之BiMPM
转载请注明出处,原文地址简介本文是对论文BiMPM:BilateralMulti-PerspectiveMatchingforNaturalLanguageSentences的解读。该模型主要用于做文本匹配,即计算文本相似度。文本匹配是NLP领域较为常见的技术,但是大部分的匹配方法都是从单一的角度去做匹配,例如ANCNN把两个句子通过同样权重的网络结构,把得到的向量进行相似度计算。BiMPM...原创 2019-03-19 15:41:32 · 5432 阅读 · 1 评论 -
SVM推导过程浅析
转载请注明出处,原文地址前言SVM - support vector machine, 俗称支持向量机,为一种supervised learning算法,属于classification的范畴。本篇文章将会讲述SVM的原理并介绍推导过程。SVM推导过程如图,我们有些红色与蓝色点分部在平面中,我们设蓝点为正红点为负。SVM的任务就是找到一条线,将红点和蓝点分割开来,这条线可能会有很多种可能,...原创 2019-03-01 16:29:17 · 1670 阅读 · 1 评论 -
TensorFlow常用函数说明
转载请注明出处tf.concat()组合两个张量,axis表示是把哪个维度进行组合即直接把对应维度相加a = np.arange(6).reshape(2, 3)b = np.arange(6).reshape(2, 3)print(a.shape)print(b.shape)c = tf.concat((tf.convert_to_tensor(a), tf.convert_to_...原创 2019-01-17 10:44:21 · 1034 阅读 · 0 评论 -
Transformer源码解读
转载请注明出处之前我们一起了解了attention、transformer的原理,本文将会基于github的一个 transformer (下文会针对我对该代码的一个改版讲解)开源代码进行代码分析讲解,该代码相比于Google提供的tensor2tensor/transformer代码更简单,也更容易理解。这里简单说一下代码怎么运行:下载数据集 IWSLT 2016 German–Engl...原创 2019-01-17 10:28:51 · 9254 阅读 · 18 评论 -
BERT完全指南-从原理到实践
转载请注明出处,原文地址简介本文将会从BERT的原理开始讲起,并带领大家分析tansformer的源码,并分别介绍如何使用BERT做本文分类与句向量的生成。顺便说一句,BERT世界第一,不接受任何反驳。原理篇本章将会先给大家介绍BERT的核心transformer,而transformer又是由attention组合而成,希望这两篇博客能让大家对transformer有一个详细的了解。...原创 2019-01-11 12:33:42 · 10494 阅读 · 0 评论 -
Transformer模型详解
转载请注明出处,原文地址简介Attention Is All You Need是一篇Google提出的将Attention思想发挥到极致的论文。这篇论文中提出一个全新的模型,叫 Transformer,抛弃了以往深度学习任务里面使用到的 CNN 和 RNN ,目前大热的Bert就是基于Transformer构建的,这个模型广泛应用于NLP领域,例如机器翻译,问答系统,文本摘要和语音识别等等方向...原创 2019-01-11 12:32:01 · 107448 阅读 · 50 评论 -
使用BERT做中文文本相似度计算与文本分类
简介最近Google推出了NLP大杀器BERT,BERT(Transformer双向编码器表示)是Google AI语言研究人员最近发表的一篇论文。它通过在各种NLP任务中呈现最先进的结果,包括问答系统、自然语言推理等,引起了机器学习社区的轰动。本文不会去讲解BERT的原理,如果您还不清楚什么是BERT建议先参阅Google的论文或者其他博文,本文主要目的在于教会大家怎么使用BERT的预训练模...原创 2018-11-29 18:37:53 · 52096 阅读 · 83 评论 -
Rasa使用指南01
前言本文内容基于Rasa官网文档,做了翻译与整理,并添加一些自己的理解,方便大家上手Rasa,想了解更多内容的小伙伴可关注Rasa官网Rasa是一个基于多轮对话的框架,其中包含两个模块Rasa core与Rasa nlu。Rasa nlu是用来理解语义的,包括意图识别,实体识别,它会把用户的输入转换为结构化的数据,例如在下图的例子中,nlu会识别出用户打算发一封邮件(意图),邮箱地址amy@...原创 2018-09-30 16:56:37 · 18666 阅读 · 9 评论 -
最通俗易懂的PCA主成分分析推导
前言说到PCA你是不是第一时间想到的是对协方差矩阵做特征值分解,但是为什么这么做呢?之前看过的大部分PCA博文也都是只简单介绍了PCA的流程,对其中的推导过程与原理并没有详细介绍,这篇文章的目的是从数学的角度,手推PCA每一个步骤,帮助读者了解PCA的工作机制是什么。文中的某些数学公式,可能会对某些读者产生不适,我会尽可能的用白话把其中原理讲解的通俗易懂。PCA简介PCA(Prin......原创 2018-06-30 17:23:00 · 22510 阅读 · 20 评论 -
聚类k-means算法详解
前言俗话说:“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。所谓类,通俗地说,就是指相似元素的集合。而对于分类问题,我们通常不会提供x与y这样的映射关系,对于这种用机器自动找出其中规律并进行分类的问题,我们称为聚类。聚类在实际的应用中亦是非常广泛的,如:市场细分(Market segmentation)、社交圈分析(social network analysis)...原创 2018-03-19 23:15:31 · 46630 阅读 · 12 评论 -
GPT2.0 Language Models are Unsupervised Multitask Learners 论文解读
转载请注明出处,原文地址本文是对《Language Models are Unsupervised Multitask Learners》的翻译,部分内容可能会存在理解错误,如有错误欢迎指正交流。简介在自然语言处理任务中,如QA、机器翻译、阅读理解、文本摘要、都是在特定数据集上的典型的监督学习任务。我们的模型在一个数百万级别的WebText的数据集上进行非监督训练后,来验证这些NLP任务。当...原创 2019-02-22 17:40:34 · 11765 阅读 · 1 评论 -
BERT原理详解
转载请注明出处,原文地址简介之前的文章从attention讲解到了transformer,本文将会针对目前大热的BERT进行讲解,bert的内部结构主要是transformer,如果您对transformer并不了解,请参阅我之前的博文。从创新的角度来看,bert其实并没有过多的结构方面的创新点,其和GPT一样均是采用的transformer的结构,相对于GPT来说,其是双向结构的,而GPT...原创 2019-02-18 18:45:52 · 14778 阅读 · 0 评论 -
决策树与其变体
转载请注明出处,原文地址前言决策树(Decision Tree)是一种基本的分类与回归方法,该算法结构简明,计算成本低,方便做数据清理,相比神经网络的黑盒模型,其更有说服力,因此工业使用率是很高的。但是决策树也有其缺点,只能做线性分割数据,并且是一个贪婪算法。决策树分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部节点和叶节点,内部节点表示一个...原创 2019-03-01 16:28:38 · 1139 阅读 · 0 评论 -
Adam优化算法
转载请注明出处,原文地址前言Adam 优化算法是随机梯度下降算法的优化,近来其广泛用于深度学习应用中,尤其是计算机视觉和自然语言处理等任务,该算法是Momentum算法与RMSprop算法的结合。动量梯度下降法Momentum我们之前已经讲解过,本文将会先介绍下RMSprop算法,再讲解Adam。RMSprop(均方根)在图中这样的情况时,梯度下降在横轴方向前进,在纵轴方向却会有大幅度的...原创 2019-03-01 16:27:23 · 3518 阅读 · 0 评论 -
动量梯度下降法Momentum
转载请注明出处,原文地址前言动量梯度下降法是对梯度下降法的一种优化算法,该方法学习率可以选择更大的值,函数的收敛速度也更快。梯度下降法就像下面这张图,通过不断的跟新w与b,从而让函数移动到红点,但是要到达最优解,需要我们不断的迭代或者调整学习率来达到最后到达最优解的目的。但是调大学习率会导致每一次迭代的步长过大,也就是摆动过大,误差较大。调小学利率会让迭代次数增加。而增加迭代次数则明显的增加了...原创 2019-03-01 16:26:36 · 6590 阅读 · 2 评论 -
LSTM网络详解
转载请注明出处,原文地址LSTM 网络长短期记忆网络(Long Short Term)通常也被简称为LSTM,是一种特殊类型的RNN,能够学习长期的依赖关系。LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力!所有 RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的...原创 2019-03-01 16:25:24 · 4946 阅读 · 0 评论 -
Batch Normalization浅析
转载请注明出处,原文地址背景自从2012年以来,CNN网络模型取得了非常大的进步,而这些进步的推动条件往往就是模型深度的增加。从AlexNet的几层,到VGG和GoogleNet的十几层,甚至到ResNet的上百层,网络模型不断加深,取得的效果也越来越好,然而网络越深往往就越难以训练。我们知道,CNN网络在训练的过程中,前一层的参数变化影响着后面层的变化,而且这种影响会随着网络深度的增加而不断...原创 2019-03-01 16:23:28 · 881 阅读 · 0 评论 -
循环神经网络RNN
为什么需要循环神经网络普通的神经网络只能对单一时刻的数据就行处理,但是,当任务需要处理序列信息时,例如一段文字,音频,视频,即前面的输入与后面的输入是有关联的。举个例子:现在我们要对“我爱你”与“这就是爱”中的“爱”字进行词性分析,在不同的语境下,爱的词性是不同的,在前一句中是动词,后一句中是名词,如果用普通的神经网络进行识别,是无法准确判断的。在词性判断中,前一个词会对后一个词的词性判断产生...原创 2019-03-01 16:22:13 · 1022 阅读 · 0 评论 -
Rasa使用指南02
转载请注明出处,原文地址前言对于还不清楚Rasa是什么的小伙伴,请先参阅我的Rasa使用指南01最近工作很忙,重心也一直在模型方面,例如BERT、GPT-2等等,对于Rasa系列的博文实在是没有时间更新。最近有不停的收到一些小伙伴发来的信息,希望能看到Rasa使用指南02,既然如此,那就满足各位好了,近期也会花更多的时间来更新此系列的内容,如果您对此系列的文章感兴趣那就给我一个评论、一个点赞...原创 2019-03-01 16:16:36 · 10362 阅读 · 16 评论 -
使用BERT生成句向量
转载请注明出处,原文地址在阅读本文之前如果您对BERT并不了解,请参阅我的其他博文BERT完全指南简介之前的文章介绍了BERT的原理、并用BERT做了文本分类与相似度计算,本文将会教大家用BERT来生成句向量,核心逻辑代码参考了hanxiao大神的bert-as-service,我的代码地址如下:代码地址:BERT句向量传统的句向量对于传统的句向量生成方式,更多的是采用word emb...原创 2019-02-19 11:41:39 · 36338 阅读 · 73 评论