导航:首页 > 源码编译 > blda算法

blda算法

发布时间:2024-09-07 04:35:38

‘壹’ 词向量,LDA,word2vec三者的关系是什么

词向量,有时候翻译为词嵌入(word embeddings),又可以称作distributed word representation[1], 最初起源是神经网络语言模型(Neural Networks Language Models),word2vec是一种常见的word embeddings,另外一种着名word embeddings是GloVe

LDA(Latent Dirichlet Allocation)是主题模型(Topic Models)的一种计算方法,和词向量并无直接关系,不过如果扯上另外一种topic model, LSA(Latent Semantic Allocation),那就有一些关系了:LSA的核心技术是SVD,一种矩阵分解,而SVD一般在NLP中的使用并非是使用它分解的三个矩阵,而是合并右边两个矩阵。那么合并之后,左边的矩阵就可以视为word embeddings,而右边的矩阵可以视为当它是context时候的embeddings。当然,一般的矩阵分解,比如NMF,也可以得到word embeddings。而word2vec一再被人证明,从结果看,是一个全局PPMI矩阵的分解。某种意义讲,word embeddings可以理解是传统矩阵分解的一个加速版本。LDA和word embeddings还是可以有点联系,比如加入LDA的结果作为word embeddings的输入,来增强文章分类效果。Latent Dirichlet Allocation(LDA)和word2vec从模型上看几乎没有显着联系。词向量则是所有对词进行表示的方法的统称。关于联系你可以这样看:LDA的作用之一是通过对doc-word矩阵进行建模抽出doc-topic和topic-word两个分布。而word2vec其实是分解了word-context矩阵。其实都是对一个"A"-"B"矩阵进行建模。那么LDA自然也可以用于对word-context矩阵进行建模,而word2vec也可以对doc-word矩阵做分解。以上算是LDA和word2vec之间的的一点联系吧。不过他们之间的区别也是非常显着的。

‘贰’ 请问,线性判别分析LDA和偏最小二乘判别分析PLSDA有什么区别

把4维的x向量X=(x1,x2,x3,x4),拓展成14维的向量(x1,x2,x3,x4,x1*x1,x1*x2,x1*x3,x1*x4,x2*x2,x2*x3,x2*x4,x3*x3,x3*x4,x4*x4),可以把原问题化简为老师提示的问题,从而进行求解. 楼主学过模式识别(Pattern Recognition)里的LDA(Linear Discriminant Analysis)算法吗?中文叫线性判别分析.LDA算法基本就是求解这么个问题: minimize t subject to Ax=-1 (数值) LDA算法是模式识别里的经典算法,它有很成熟的解析解,你随便网上搜搜,就能得到很详细的解答. 楼主本身的这个问题,算是QDA算法(Quadratic Discriminant Analysis),中文叫二次项判别分析.因为QDA带了二次项,因此比LDA本身要复杂一些. 但是QDA问题可以简化成LDA算法,具体方法就是把4维向量X=(x1,x2,x3,x4),扩展成如下的14维向量Y=(x1,x2,x3,x4,x1*x1,x1*x2,x1*x3,x1*x4,x2*x2,x2*x3,x2*x4,x3*x3,x3*x4,x4*x4). 这样XT*A*X+bT*X+c,就可以化为dT*Y+c的形式了(这个14维向量d和A,b的关系很容易算),然后套用下现成的LDA算法求出d,然后反推出A和b,基本就搞定了.

‘叁’ pattern recognition and machine learning这本书怎么看

作者:Richardmore
这本书可以说是机器学习的经典学习之作。以前在上机器学习这么课的时候,很多细节还没联系到,结果在读论文中就显得捉襟见肘。本文打算理清楚这本书的脉络,也顺便为学习机器学习的人打下一个学习路线图。

1. 排除两块内容

现排除第五章的内容神经网络,之所以把神经网络先单列出来,原因一是一个比较独立的研究脉络,二是因为这部分因为深度学习的原因太热了,所以我认为在学习机器学习中把神经网络单列出来学习,在交大的研究生课程安排中,神经网络是机器学习的后续课程。
对于第6,7章,也不在下面的学习路线中,因为这部分是关于核技巧方面的,主要是就是高斯过程回归,高斯过程分类以及SVM等内容。
2. 一个概率图框架为中心视角

排除了上面几章的内容,PRML书中可以用下面的学习路线图覆盖,通过这个图可以理清楚了各个内容的不同角色。
<img src="https://pic3.mg.com/_b.png" data-rawwidth="1888" data-rawheight="412" class="origin_image zh-lightbox-thumb" width="1888" data-original="https://pic3.mg.com/_r.png">

说明:
(1)一般模型中都会有隐变量因此,,因此对于P(X)的采用MLE学习的另一个技巧,便是第九章 EM算法。条件是在M步时,Q要可以被analytically computed。
(2)至于为什么近似,Exact Inference is hard we resort to approximation
3. 隐变量技巧

下面我们看看另外一个视角:隐变量技巧。隐变量不仅可以使得模型的表达能力丰富起来,而且通常对于隐变量往往富有一定的实际意义。

<img src="https://pic1.mg.com/_b.png" data-rawwidth="1764" data-rawheight="422" class="origin_image zh-lightbox-thumb" width="1764" data-original="https://pic1.mg.com/_r.png">

说明:
(1)这里所谓的结合模型中,在PRML中最后一章仅仅提到了以加法的方式进行模型集合,也就是mixture of experts,在论文Hinton G E. Training procts of experts by minimizing contrastive divergence[J]. Neural computation, 2002, 14(8): 1771-1800. 提出了proct of experts 模型,也就是以乘法的方式进行结合,RBM就是一种特殊的proct of experts 模型,而高斯混合模型便是加法模型的代表。
(2)隐变量的技巧是机器学习中一种重要的技巧,隐变量的加入不仅仅增加了模型的表达能力,而且,隐变量还可以被赋予某种特殊的意义,比如RBM模型中隐变量h被当成显变量v的特征抽象。这当然归根结底是因为隐变量模型确实是现实世界真实存在的情况,unobserved but important variables do exist! 当然隐变量的引入也为模型的推断带来了新的挑战,有很多比较好的隐变量模型往往找不到很高效的方法,而被限制着。
4. 例子说明

下面分别从上面两个视角来分析RBM模型,贝叶斯线性回归和序列模型。
4.1 RBM模型
RBM模型是一个无向2层对称的图模型,从隐变量的视角来看,它是一个以乘法方式结合的distributed models。当然隐变量的引入增加了模型的复杂性和表达能力,但是也为学习,推断带来了问题。对于RBM的参数学习,因为是无向图,所以采用MLE最大化P(X),但是由于此时P(X,Z)难以评估,所以
<img src="https://pic2.mg.com/v2-_b.png" data-rawwidth="834" data-rawheight="94" class="origin_image zh-lightbox-thumb" width="834" data-original="https://pic2.mg.com/v2-_r.png">
很难计算,没有在RBM的学习中不能像高斯混合模型那样可以采取EM算法。因此只能采取最为标准的做法,求取P(X)的梯度,结果梯度公式如下:
<img src="https://pic2.mg.com/v2-_b.png" data-rawwidth="800" data-rawheight="90" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic2.mg.com/v2-_r.png">

然而对于计算后面的model部分的积分需要知道模型的概率分布,评估模型的概率分布需要计算一个标准化的分母,难以计算。因此就需要依赖近似,由于p(v|h),p(h|v)都是可以分析公式表达,因此采用Gibbs sampler来数值逼近积分。当然后来Hinton G E. Training procts of experts by minimizing contrastive divergence[J].发现对于这一部分,Gibbs sampler 不需要多部的迭代,一次迭代就可以了,从而使的训练RBM的时间代价大大降低了,后来(A fast learning algorithm for deep belief nets,2006)提出了贪婪式的训练多层DBN(stacked RBM),每层都是训练RBM,从而使的深度学习焕发新的活力(Recing the dimensionality of data with neural networks,2006)。

4.2 贝叶斯线性回归Bayesian Linear Regression BLR

这个模型是最为基础的,这个模型在PRML中,利用直接推断,变分法推断,MCMC采样都是可以做的;因此便于比较不同算法得到的结果。之前,本来打算在这里以LDA主题模型来举例,虽然LDA的EM算法, 变分法,以及Gibbs sampling 都是可以做的,但是模型太复杂,所以果断放弃了,以BLR模型作为例子说明。
BLR是一个有向图模型,是一个典型的贝叶斯网络(虽然简单一点)。如果以一个贝叶斯的视角来看,其中的隐变量便是线性参数w,以及各种超参数α,β.....,在贝叶斯的处理视角之下,这些都会赋予一个先验分布。当然,有些模型书中也提到,有不同层次上的贝叶斯网络。有的是仅仅对参数w赋予一个先验分布,而对于其他的参数(hyperparameter)仅仅是作为模型参数,就是假设是一个渡固定的数值,然后再通过learn evidence function,其实说白了就是MLE,来寻找最佳的超参数α,β....。相比于把线性参数w,以及各种超参数α,β.....全部作为放入到贝叶斯网络中,这样的做法显然简化了模型,降低了贝叶斯网络的复杂性。这个技巧也在多处的论文中出现。
从隐变量的角度来看,由于BLR模型相对简单,其中并没有随机隐变量,仅仅是一些参数w,以及各种超参数α,β..的环境隐变量。
4.3 序列模型:隐马尔可夫链HMM与条件随机CRF

隐马尔可夫链HMM这个模型是一个有向图模型,典型的贝叶斯网络,只不过这个网络是一个线性链(linear chains),因此可以进行分析上推断,要知道对于一般网络,并不存在通用的实用的inference算法。因为HMM是一个有向图模型。但是(1)在PRML书中,以及李航《统计学习》中并没有把其当作一个贝叶斯网络来进行处理,对所有的参数比如发射概率,转移矩阵概率都是模型的参数,而不是通过赋予一个先验分布,从而纳入到贝叶斯网络框架之中。因此对于模型而言,关键的便是通过MLE最大化P(X)来学习模型的参数,因为这里的有隐变量,因此在PRML,以及《统计学习》中都是通过EM算法做的。(2)其实,HMM是一个典型的线性链式的贝叶斯网络,因此对于通过对其参数赋予先验分布,进而从贝叶斯的角度,来对模型进行推断是一个非常自然的想法。我在论文Sharon Goldwater, Thomas L Griffiths 论文 A Fully Bayesian Approach to Unsupervised Part-of-Speech Tagging,中作者采用了Bayesian HMM 重新做了POS任务。作者在文中还详细罗列了Bayesian HMM 相比普通的HMM的优点:(a)可以使用先验知识,例如在POS中语言的认知可以加入到先验分布之中,而且(b)贝叶斯的推断,是通过一个后验分布推断参数,相比MLE点估计,会更加准确。对于贝叶斯的推断,作者在文中使用了Gibbs sample抽样实现了数值采样推断模型。最后作者比较了Gibbs sample+Bayesian HMM和普通的HMM +EM,在POS任务效果更加好。另外,对于本论文的作者Thomas L Griffiths,第一次接触这个学者,是在读Gibbs sample in LDA这篇文章,作者推导了LDA的各种的条件分布,然后基于Gibbs sample 进行采样,记得Github上有Java版的实现代码,其推导十分严谨,并且有代码辅助,是学习LDA的一个捷径。在近似推断方面可以看出Thomas L Griffiths是一个坚定的数值采样学派,而LDA的开山之作《Latent Dirichlet Allocation 》的作者David M. Blei,看了作者部分文章以后,发现这个人是在近似推断方面是一个变分法的坚定学派,在《Latent Dirichlet Allocation 》之中,便是通过变分法进行推断了,David M. Blei还写了一个关于变分法的入门讲义pdf,网上可以搜到。所以回看我们概率图视角,做机器学习推断是不可避免的,有的是变分法近似,有的是数值采样近似,也有的是EM算法试一试。至于选择哪一种,就看你的问题哪一个比较简单了。但是好像有的人对这些方面各有偏爱。
再说一下条件随机场CRF,相比与HMM,这也是一个序列模型,在很多的NLP任务中,CRF都是state of art 的算法,毕竟人家可以方便的特征工程嘛。但是这种日子被深度学习取代了,在NLP方面,RNN(递归神经网络)要比CRF表现更好,见我之前博文基于RNN做语义理解和词向量。先不说这么远,CRF的模型架构上是一个典型的无向的链式概率图模型,因此,(回看我们概率图的视角),CRF的关键问题便是如何进行学习了P(X),好在求其该模型直接求其梯度并没有太大的困难,具体可以参见李航的《统计学习》。
5 结束语

这篇文章,从概率图,隐变量两个视角对PRML中各个章节进行了串联,并以RBM,BLR,序列模型(HMM&CRF)具体说明这种串联。

阅读全文

与blda算法相关的资料

热点内容
安卓路由表怎么看 浏览:74
10个小孩分糖果python 浏览:823
安卓app小红点怎么取消 浏览:286
马哥linux面授 浏览:768
2345程序员 浏览:371
怎么开启网速显示安卓 浏览:204
索尼950app怎么样 浏览:391
计算机毕设论文源码 浏览:148
小米手机怎么下载易媒体App 浏览:191
还原系统设计可以怎样清理文件夹 浏览:670
北京时间校准服务器云服务器 浏览:844
pythonexcel数据计算 浏览:49
内医附院党建APP怎么下载 浏览:356
荣耀v20刷加密门禁卡 浏览:329
app缓冲视频怎么保存在手机 浏览:433
广度优先算法c语言 浏览:680
提高程序员竞争力 浏览:108
nfc可以开加密门卡吗 浏览:675
如何知道网页使用的服务器是什么 浏览:224
单片机接反电源会烧吗 浏览:287