深度学习
文章平均质量分 79
介绍深度学习的相关技术,主要解决NLP的问题。
earofreceiver
这个作者很懒,什么都没留下…
展开
-
聊聊神经网络中的梯度法
简介在最优化问题求解的过程中,使用最多的迭代方法就是梯度法。比如针对最优化问题minxf(x)min_{\mathbf x} f(\mathbf x)minxf(x)采用的梯度迭代的步骤为x=x−η∇f(x)\mathbf x = \mathbf x - \eta \nabla f(\mathbf x)x=x−η∇f(x)梯度法的优势在于抗"噪声"。即使每次求解的梯度并不是...原创 2020-04-04 14:18:17 · 1078 阅读 · 0 评论 -
使用keras-bert进行中文文本分类+Google colab运行源码
前文介绍了BERT的原理。在实际应用中,BERT要比其理论本身要简单的多。这里我们利用Github的中文BERT预训练的结果(地址),进行实际的文档分类。数据集为了便于进行比较,文档分类的数据集来自Github的这个地址。该数据集使用了THUCNews的一个子集,使用了其中的10个分类,每个分类6500条数据。类别如下:体育, 财经, 房产, 家居, 教育, 科技, 时尚, 时政, 游戏,...原创 2020-03-21 22:38:29 · 5077 阅读 · 5 评论 -
BERT模型介绍
背景BERT(原论文)结合了前文提到的技术(半监督学习、Transformer)。BERT的主要思路是构建一个神经网络,对大样本的数据进行无监督的训练,然后再将训练后的模型采用Fine tunning的方法去适配其它各种各样的小样本的有监督的训练场景中。以往的神经网络多是针对一个特定的场景从零开始训练出特定的模型,所以要训练出一个可靠的模型,需要耗费大量的数据获取和人工标注的工作。经过BERT...原创 2020-03-15 23:42:04 · 2671 阅读 · 0 评论 -
Transformer:NLP中RNN的替代方案
RNN应用中存在的问题是,每一个RNN Cell的state都取决于前一个RNN Cell的state,因此RNN很难采用并行计算,计算的速度往往较慢。但是RNN的优势是,能够依据attention利用输入句子的全部信息。所以就有人提出,如果只用attention,不用RNN是否可行,这就是2017年的一篇论文提出的解决方案(原文)。该神经网络的优势是,采用了非Recurrent的Encode...原创 2020-03-10 13:32:28 · 1459 阅读 · 1 评论 -
半监督学习(样本标注有限)条件下的NLP(Elmo,TagLM, ULMfit)
在进行NLP的时候,往往我们的训练集已标注的样本是有限,有大量的样本是没有标注的。这个时候的解决办法是对无标注的样本进行训练。一般采用的是语言模型,这样训练得到的参数是context-sensitive的。语言模型具体说明见前文RNN简介),再将训练的结果用作有监督的训练中,这就是近三年里研究比较多的领域。TagLM(原文)TagLM的原理如图所示:首先将所有样本在右侧,用==多层“双向”...原创 2020-03-09 22:25:00 · 1320 阅读 · 2 评论 -
基于字符的NLP
背景以往基于单词的NLP,一般是为要处理的词建立词向量空间,然后再对词向量进行NLP。这个处理会带来两个方面的问题是:对于出现频率比较低的词,建立的词向量有可能不准确无法处理不在单词表中的单词。比如网络上经常会出现一些新词,比如不明觉厉之类,英文的社交网络,还会出现比如loooooooooooooook之类的词。有些语言还会有合成词。比如德语就会有大量的合成词,如Lebensversic...原创 2020-03-07 23:00:29 · 462 阅读 · 0 评论 -
CNN在NLP中的应用
CNN最初是用于图像分类,提取图像的特征。CNN在图像里,采用的是2D的卷积,如图所示。而在NLP中,同样可以把要处理的一句话看成图像。可以将一句话中的多个词排成一列,每一行代表着对应的这个词的词向量。这样,也就把NLP的问题也变成了图像问题,NLP的分类问题也就可以应用图像分类所采用的CNN了。关于卷积当然在NLP的CNN中,采用2D卷积,“横向”挪动卷积核其实是没有意义的。因为词向量...原创 2020-03-05 10:25:29 · 2059 阅读 · 0 评论 -
基于RNN的自动翻译的技术介绍-seq2seq+attention模型
机器自动翻译在2010年之前采用的是基于统计的方法。比如在英译中的应用中,模型为给定英文句子xxx,确定可能性最大的中文句子yyy,即argmaxyP(y∣x)=argmaxyP(x∣y)P(y)\arg \max_y P(y|x)=\arg\max_y P(x|y)P(y)argymaxP(y∣x)=argymaxP(x∣y)P(y)其中P(y)P(y)P(y)即为上文提到的...原创 2020-02-10 20:33:14 · 1312 阅读 · 0 评论 -
RNN简介
N-gram语言模型N-gram语言模型研究的是,给定前n−1n-1n−1个词,判断第nnn个词应该是哪一个?比如:今天 的 天气 真 _______即给定词x(t−n+2),...,x(t)x^{(t-n+2)},...,x^{(t)}x(t−n+2),...,x(t)判断x(t+1)x^{(t+1)}x(t+1),即求下面的最大值P(x(t+1)∣x(t−n+2),...,x(t))=...原创 2020-02-04 21:22:54 · 1311 阅读 · 0 评论 -
三幅图简易说明神经网络的后向传播(Backward propagation)
神经网络的后向传播是在神经网络进行训练时,神经网络各层更新数值的方法。后向传播大致可以分为以下三种情况:在节点处相加的情况:节点会将传入的梯度值直接向后传播。在节点处相乘的情况:将输入端的值对调,并和传入的梯度值相乘。在节点处进行函数变换:对函数求导,并和传入的梯度值相乘。特别的,如果g=max()g=max()g=max(),那么只有达到了max的x的分量会传出梯度值,其它分量传出的梯...原创 2020-02-02 18:11:09 · 963 阅读 · 0 评论 -
关于矩阵微分的形状的简单说明-Jacobian form和Shape Convention
给定函数f:Rn×1→Rf:\mathbb{R}^{n \times 1} \rightarrow \mathbb{R}f:Rn×1→R,对函数f(x)f(\mathbf{x})f(x)求微分,即∂f/∂x\partial{f}/\partial{\mathbf{x}}∂f/∂x究竟是一个行向量还是一个列向量呢?个人理解,矩阵微分的关键仍然是对矩阵中的各个分量微分值,至于微分后组成什么形状,取决...原创 2020-02-02 17:32:02 · 550 阅读 · 0 评论 -
word2vec相关技术补充GloVe
前文介绍,共生矩阵的方法可以反映词之间全局的共生关系,这是CBOW和Skip-Gram不具备的。为了改进上述算法,有论文提出了采用GloVe的方法来求词向量。首先,要对语料库进行一遍扫描,求出共生矩阵XXX。其中Xi,jX_{i,j}Xi,j为出现词iii的同时,也出现jjj的次数。注意到skip-gram算法中,我们已经针对中心词i和上下文词j,我们计算得到损失函数Li,jL_{i,j}Li...原创 2020-02-01 21:59:55 · 2311 阅读 · 0 评论 -
word2vec相关技术总结
进行NLP,首先要对要处理的文本进行分词,再对每一个词建立向量空间。简单的词向量-one-hot vector最简单的词向量可采用one-hot vector,对每个词用单位向量来进行表示。比如对所有的词w1w_1w1, w2w_2w2, … w∣V∣∈Vw_{|V|} \in Vw∣V∣∈V,对其中的词wiw_iwi,表示的词向量为(0,0,...,1,0,...0)T∈R∣V∣(0...原创 2020-02-01 21:01:53 · 252 阅读 · 0 评论