您的位置:

gibbs采样代码python(多维gibbs采样实例)

本文目录一览:

pattern recognition and machine learning这本书怎么看

作者:Richardmore

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

1. 排除两块内容

现排除第五章的内容神经网络,之所以把神经网络先单列出来,原因一是一个比较独立的研究脉络,二是因为这部分因为深度学习的原因太热了,所以我认为在学习机器学习中把神经网络单列出来学习,在交大的研究生课程安排中,神经网络是机器学习的后续课程。

对于第6,7章,也不在下面的学习路线中,因为这部分是关于核技巧方面的,主要是就是高斯过程回归,高斯过程分类以及SVM等内容。

2. 一个概率图框架为中心视角

排除了上面几章的内容,PRML书中可以用下面的学习路线图覆盖,通过这个图可以理清楚了各个内容的不同角色。

img src="" data-rawwidth="1888" data-rawheight="412" class="origin_image zh-lightbox-thumb" width="1888" data-original=""

说明:

(1)一般模型中都会有隐变量因此,,因此对于P(X)的采用MLE学习的另一个技巧,便是第九章 EM算法。条件是在M步时,Q要可以被analytically computed。

(2)至于为什么近似,Exact Inference is hard we resort to approximation

3. 隐变量技巧

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

img src="" data-rawwidth="1764" data-rawheight="422" class="origin_image zh-lightbox-thumb" width="1764" data-original=""

说明:

(1)这里所谓的结合模型中,在PRML中最后一章仅仅提到了以加法的方式进行模型集合,也就是mixture of experts,在论文Hinton G E. Training products of experts by minimizing contrastive divergence[J]. Neural computation, 2002, 14(8): 1771-1800. 提出了product of experts 模型,也就是以乘法的方式进行结合,RBM就是一种特殊的product 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="" data-rawwidth="834" data-rawheight="94" class="origin_image zh-lightbox-thumb" width="834" data-original=""

很难计算,没有在RBM的学习中不能像高斯混合模型那样可以采取EM算法。因此只能采取最为标准的做法,求取P(X)的梯度,结果梯度公式如下:

img src="" data-rawwidth="800" data-rawheight="90" class="origin_image zh-lightbox-thumb" width="800" data-original=""

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

gibbs图用什么软件出图

CAM系统软件。

Gibbs是一种基于微机平台并居于技术发展前沿的CAM系统软件。拥有机械专家专为机械行业用户所设计的图形用户界面,使得软件的应用既亲近熟悉,又快捷高效。

在许多论文中,都通过对Gibbs分布采样来得到一幅合成图像,将这幅合成图像作为我们前面所指的“标准”。

人工智能一些术语总结

随着智能时代慢慢的到来,有一些基本概念都不知道真的是要落伍了,作为正在积极学习向上的青年,我想总结一份笔记,此份笔记会记录众多AI领域的术语和概念,当然,学一部分记录一部分,并且可能会夹杂着自己的一些理解,由于能力有限,有问题希望大家多多赐教。当然,由于内容太多,仅仅只是记录了中英名对照,有的加上了简单的解释,没加的后续大家有需求,我会慢慢完善~~。目录暂定以首字母的字典序排序。可以当作目录方便以后查阅~~建议收藏加点赞哈哈哈

------------------------------------------------这里是分割线--------------------------------------------------

A

准确率(accuracy)

分类模型预测准确的比例。

二分类问题中,准确率定义为:accuracy = (true positives +true negatives)/all samples

多分类问题中,准确率定义为:accuracy = correctpredictions/all samples

激活函数(activation function)

一种函数,将前一层所有神经元激活值的加权和 输入到一个非线性函数中,然后作为下一层神经元的输入,例如 ReLU 或 Sigmoid

AdaGrad

一种复杂的梯度下降算法,重新调节每个参数的梯度,高效地给每个参数一个单独的学习率。

AUC(曲线下面积)

一种考虑到所有可能的分类阈值的评估标准。ROC 曲线下面积代表分类器随机预测真正类(Ture Positives)要比假正类(False Positives)概率大的确信度。

Adversarial example(对抗样本)

Adversarial Networks(对抗网络)

Artificial General Intelligence/AGI(通用人工智能)

Attention mechanism(注意力机制)

Autoencoder(自编码器)

Automatic summarization(自动摘要)

Average gradient(平均梯度)

Average-Pooling(平均池化)

B

反向传播(Backpropagation/BP)

神经网络中完成梯度下降的重要算法。首先,在前向传播的过程中计算每个节点的输出值。然后,在反向传播的过程中计算与每个参数对应的误差的偏导数。

基线(Baseline)

被用为对比模型表现参考的简单模型。

批量(Batch)

模型训练中一个迭代(指一次梯度更新)使用的样本集。

批量大小(Batch size)

一个批量中样本的数量。例如,SGD 的批量大小为 1,而 mini-batch 的批量大小通常在 10-1000 之间。

偏置(Bias)

与原点的截距或偏移量。

二元分类器(Binary classification)

一类分类任务,输出两个互斥类别中的一个。比如垃圾邮件检测。

词袋(Bag of words/Bow)

基学习器(Base learner)

基学习算法(Base learning algorithm)

贝叶斯网络(Bayesian network)

基准(Bechmark)

信念网络(Belief network)

二项分布(Binomial distribution)

玻尔兹曼机(Boltzmann machine)

自助采样法/可重复采样/有放回采样(Bootstrap sampling)

广播(Broadcasting)

C

类别(Class)

所有同类属性的目标值作为一个标签。

分类模型(classification)

机器学习模型的一种,将数据分离为两个或多个离散类别。

收敛(convergence)

训练过程达到的某种状态,其中训练损失和验证损失在经过了确定的迭代次数后,在每一次迭代中,改变很小或完全不变。

凸函数(concex function)

一种形状大致呈字母 U 形或碗形的函数。然而,在退化情形中,凸函数的形状就像一条线。

成本(cost)

loss 的同义词。深度学习模型一般都会定义自己的loss函数。

交叉熵(cross-entropy)

多类别分类问题中对 Log 损失函数的推广。交叉熵量化两个概率分布之间的区别。

条件熵(Conditional entropy)

条件随机场(Conditional random field/CRF)

置信度(Confidence)

共轭方向(Conjugate directions)

共轭分布(Conjugate distribution)

共轭梯度(Conjugate gradient)

卷积神经网络(Convolutional neural network/CNN)

余弦相似度(Cosine similarity)

成本函数(Cost Function)

曲线拟合(Curve-fitting)

D

数据集(data set)

样本的集合

深度模型(deep model)

一种包含多个隐藏层的神经网络。深度模型依赖于其可训练的非线性性质。和宽度模型对照(widemodel)。

dropout 正则化(dropoutregularization)

训练神经网络时一种有用的正则化方法。dropout 正则化的过程是在单次梯度计算中删去一层网络中随机选取的固定数量的单元。删去的单元越多,正则化越强。

数据挖掘(Data mining)

决策树/判定树(Decisiontree)

深度神经网络(Deep neural network/DNN)

狄利克雷分布(Dirichlet distribution)

判别模型(Discriminative model)

下采样(Down sampling)

动态规划(Dynamic programming)

E

早期停止法(early stopping)

一种正则化方法,在训练损失完成下降之前停止模型训练过程。当验证数据集(validationdata set)的损失开始上升的时候,即泛化表现变差的时候,就该使用早期停止法了。

嵌入(embeddings)

一类表示为连续值特征的明确的特征。嵌入通常指将高维向量转换到低维空间中。

经验风险最小化(empirical risk minimization,ERM)

选择能使得训练数据的损失函数最小化的模型的过程。和结构风险最小化(structualrisk minimization)对照。

集成(ensemble)

多个模型预测的综合考虑。可以通过以下一种或几种方法创建一个集成方法:

设置不同的初始化;

设置不同的超参量;

设置不同的总体结构。

深度和广度模型是一种集成。

样本(example)

一个数据集的一行内容。一个样本包含了一个或多个特征,也可能是一个标签。参见标注样本(labeledexample)和无标注样本(unlabeled example)。

F

假负类(false negative,FN)

被模型错误的预测为负类的样本。例如,模型推断一封邮件为非垃圾邮件(负类),但实际上这封邮件是垃圾邮件。

假正类(false positive,FP)

被模型错误的预测为正类的样本。例如,模型推断一封邮件为垃圾邮件(正类),但实际上这封邮件是非垃圾邮件。

假正类率(false positive rate,FP rate)

ROC 曲线(ROC curve)中的 x 轴。FP 率的定义是:假正率=假正类数/(假正类数+真负类数)

特征工程(feature engineering)

在训练模型的时候,挖掘对模型效果有利的特征。

前馈神经网络(Feedforward Neural Networks/FNN )

G

泛化(generalization)

指模型利用新的没见过的数据而不是用于训练的数据作出正确的预测的能力。

广义线性模型(generalized linear model)

最小二乘回归模型的推广/泛化,基于高斯噪声,相对于其它类型的模型(基于其它类型的噪声,比如泊松噪声,或类别噪声)。广义线性模型的例子包括:

logistic 回归

多分类回归

最小二乘回归

梯度(gradient)

所有变量的偏导数的向量。在机器学习中,梯度是模型函数的偏导数向量。梯度指向最陡峭的上升路线。

梯度截断(gradient clipping)

在应用梯度之前先修饰数值,梯度截断有助于确保数值稳定性,防止梯度爆炸出现。

梯度下降(gradient descent)

通过计算模型的相关参量和损失函数的梯度最小化损失函数,值取决于训练数据。梯度下降迭代地调整参量,逐渐靠近权重和偏置的最佳组合,从而最小化损失函数。

图(graph)

在 TensorFlow 中的一种计算过程展示。图中的节点表示操作。节点的连线是有指向性的,表示传递一个操作(一个张量)的结果(作为一个操作数)给另一个操作。使用 TensorBoard 能可视化计算图。

高斯核函数(Gaussian kernel function)

高斯混合模型(Gaussian Mixture Model)

高斯过程(Gaussian Process)

泛化误差(Generalization error)

生成模型(Generative Model)

遗传算法(Genetic Algorithm/GA)

吉布斯采样(Gibbs sampling)

基尼指数(Gini index)

梯度下降(Gradient Descent)

H

启发式(heuristic)

一个问题的实际的和非最优的解,但能从学习经验中获得足够多的进步。

隐藏层(hidden layer)

神经网络中位于输入层(即特征)和输出层(即预测)之间的合成层。一个神经网络包含一个或多个隐藏层。

超参数(hyperparameter)

连续训练模型的过程中可以拧动的「旋钮」。例如,相对于模型自动更新的参数,学习率(learningrate)是一个超参数。和参量对照。

硬间隔(Hard margin)

隐马尔可夫模型(Hidden Markov Model/HMM)

层次聚类(Hierarchical clustering)

假设检验(Hypothesis test)

I

独立同分布(independently and identicallydistributed,i.i.d)

从不会改变的分布中获取的数据,且获取的每个值不依赖于之前获取的值。i.i.d. 是机器学习的理想情况——一种有用但在现实世界中几乎找不到的数学构建。

推断(inference)

在机器学习中,通常指将训练模型应用到无标注样本来进行预测的过程。在统计学中,推断指在观察到的数据的基础上拟合分布参数的过程。

输入层(input layer)

神经网络的第一层(接收输入数据)。

评分者间一致性(inter-rater agreement)

用来衡量一项任务中人类评分者意见一致的指标。如果意见不一致,则任务说明可能需要改进。有时也叫标注者间信度(inter-annotator agreement)或评分者间信度(inter-raterreliability)。

增量学习(Incremental learning)

独立成分分析(Independent Component Analysis/ICA)

独立子空间分析(Independent subspace analysis)

信息熵(Information entropy)

信息增益(Information gain)

J

JS 散度(Jensen-ShannonDivergence/JSD)

K

Kernel 支持向量机(KernelSupport Vector Machines/KSVM)

一种分类算法,旨在通过将输入数据向量映射到更高维度的空间使正类和负类之间的边际最大化。例如,考虑一个输入数据集包含一百个特征的分类问题。为了使正类和负类之间的间隔最大化,KSVM 从内部将特征映射到百万维度的空间。KSVM 使用的损失函数叫作 hinge 损失。

核方法(Kernel method)

核技巧(Kernel trick)

k 折交叉验证/k 倍交叉验证(K-fold cross validation)

K - 均值聚类(K-MeansClustering)

K近邻算法(K-Nearest NeighboursAlgorithm/KNN)

知识图谱(Knowledge graph)

知识库(Knowledge base)

知识表征(Knowledge Representation)

L

L1 损失函数(L1 loss)

损失函数基于模型对标签的预测值和真实值的差的绝对值而定义。L1 损失函数比起 L2 损失函数对异常值的敏感度更小。

L1 正则化(L1regularization)

一种正则化,按照权重绝对值总和的比例进行惩罚。在依赖稀疏特征的模型中,L1 正则化帮助促使(几乎)不相关的特征的权重趋近于 0,从而从模型中移除这些特征。

L2 损失(L2 loss)

参见平方损失。

L2 正则化(L2regularization)

一种正则化,按照权重平方的总和的比例进行惩罚。L2 正则化帮助促使异常值权重更接近 0 而不趋近于 0。(可与 L1 正则化对照阅读。)L2 正则化通常改善线性模型的泛化效果。

标签(label)

在监督式学习中,样本的「答案」或「结果」。标注数据集中的每个样本包含一或多个特征和一个标签。在垃圾邮件检测数据集中,特征可能包括主题、发出者何邮件本身,而标签可能是「垃圾邮件」或「非垃圾邮件」。

标注样本(labeled example)

包含特征和标签的样本。在监督式训练中,模型从标注样本中进行学习。

学习率(learning rate)

通过梯度下降训练模型时使用的一个标量。每次迭代中,梯度下降算法使学习率乘以梯度,乘积叫作 gradient step。学习率是一个重要的超参数。

最小二乘回归(least squares regression)

通过 L2 损失最小化进行训练的线性回归模型。

线性回归(linear regression)

对输入特征的线性连接输出连续值的一种回归模型。

logistic 回归(logisticregression)

将 sigmoid 函数应用于线性预测,在分类问题中为每个可能的离散标签值生成概率的模型。尽管 logistic 回归常用于二元分类问题,但它也用于多类别分类问题(这种情况下,logistic回归叫作「多类别 logistic 回归」或「多项式 回归」。

对数损失函数(Log Loss)

二元 logistic 回归模型中使用的损失函数。

损失(Loss)

度量模型预测与标签距离的指标,它是度量一个模型有多糟糕的指标。为了确定损失值,模型必须定义损失函数。例如,线性回归模型通常使用均方差作为损失函数,而 logistic 回归模型使用对数损失函数。

隐狄利克雷分布(Latent Dirichlet Allocation/LDA)

潜在语义分析(Latent semantic analysis)

线性判别(Linear Discriminant Analysis/LDA)

长短期记忆(Long-Short Term Memory/LSTM)

M

机器学习(machine learning)

利用输入数据构建(训练)预测模型的项目或系统。该系统使用学习的模型对与训练数据相同分布的新数据进行有用的预测。机器学习还指与这些项目或系统相关的研究领域。

均方误差(Mean Squared Error/MSE)

每个样本的平均平方损失。MSE 可以通过平方损失除以样本数量来计算。

小批量(mini-batch)

在训练或推断的一个迭代中运行的整批样本的一个小的随机选择的子集。小批量的大小通常在10 到 1000 之间。在小批量数据上计算损失比在全部训练数据上计算损失要高效的多。

机器翻译(Machine translation/MT)

马尔可夫链蒙特卡罗方法(Markov Chain Monte Carlo/MCMC)

马尔可夫随机场(Markov Random Field)

多文档摘要(Multi-document summarization)

多层感知器(Multilayer Perceptron/MLP)

多层前馈神经网络(Multi-layer feedforward neuralnetworks)

N

NaN trap

训练过程中,如果模型中的一个数字变成了 NaN,则模型中的很多或所有其他数字最终都变成 NaN。NaN 是「Not aNumber」的缩写。

神经网络(neural network)

该模型从大脑中获取灵感,由多个层组成(其中至少有一个是隐藏层),每个层包含简单的连接单元或神经元,其后是非线性。

神经元(neuron)

神经网络中的节点,通常输入多个值,生成一个输出值。神经元通过将激活函数(非线性转换)应用到输入值的加权和来计算输出值。

归一化(normalization)

将值的实际区间转化为标准区间的过程,标准区间通常是-1 到+1 或 0 到 1。例如,假设某个特征的自然区间是 800 到 6000。通过减法和分割,你可以把那些值标准化到区间-1 到+1。参见缩放。

Numpy

Python 中提供高效数组运算的开源数学库。pandas 基于 numpy 构建。

Naive bayes(朴素贝叶斯)

Naive Bayes Classifier(朴素贝叶斯分类器)

Named entity recognition(命名实体识别)

Natural language generation/NLG(自然语言生成)

Natural language processing(自然语言处理)

Norm(范数)

O

目标(objective)

算法尝试优化的目标函数。

one-hot 编码(独热编码)(one-hotencoding)

一个稀疏向量,其中:一个元素设置为 1,所有其他的元素设置为 0。。

一对多(one-vs.-all)

给出一个有 N 个可能解决方案的分类问题,一对多解决方案包括 N 个独立的二元分类器——每个可能的结果都有一个二元分类器。例如,一个模型将样本分为动物、蔬菜或矿物,则一对多的解决方案将提供以下三种独立的二元分类器:

动物和非动物

蔬菜和非蔬菜

矿物和非矿物

过拟合(overfitting)

创建的模型与训练数据非常匹配,以至于模型无法对新数据进行正确的预测

Oversampling(过采样)

P

pandas

一种基于列的数据分析 API。很多机器学习框架,包括 TensorFlow,支持 pandas 数据结构作为输入。参见 pandas 文档。

参数(parameter)

机器学习系统自行训练的模型的变量。例如,权重是参数,它的值是机器学习系统通过连续的训练迭代逐渐学习到的。注意与超参数的区别。

性能(performance)

在软件工程中的传统含义:软件运行速度有多快/高效?

在机器学习中的含义:模型的准确率如何?即,模型的预测结果有多好?

困惑度(perplexity)

对模型完成任务的程度的一种度量指标。例如,假设你的任务是阅读用户在智能手机上输入的单词的头几个字母,并提供可能的完整单词列表。该任务的困惑度(perplexity,P)是为了列出包含用户实际想输入单词的列表你需要进行的猜测数量。

流程(pipeline)

机器学习算法的基础架构。管道包括收集数据、将数据放入训练数据文件中、训练一或多个模型,以及最终输出模型。

Principal component analysis/PCA(主成分分析)

Precision(查准率/准确率)

Prior knowledge(先验知识)

Q

Quasi Newton method(拟牛顿法)

R

召回率(recall)

回归模型(regression model)

一种输出持续值(通常是浮点数)的模型。而分类模型输出的是离散值。

正则化(regularization)

对模型复杂度的惩罚。正则化帮助防止过拟合。正则化包括不同种类:

L1 正则化

L2 正则化

dropout 正则化

early stopping(这不是正式的正则化方法,但可以高效限制过拟合)

正则化率(regularization rate)

一种标量级,用 lambda 来表示,指正则函数的相对重要性。从下面这个简化的损失公式可以看出正则化率的作用:

minimize(loss function + λ(regularization function))

提高正则化率能够降低过拟合,但可能会使模型准确率降低。

表征(represention)

将数据映射到有用特征的过程。

受试者工作特征曲线(receiver operatingcharacteristic/ROC Curve)

反映在不同的分类阈值上,真正类率和假正类率的比值的曲线。参见 AUC。

Recurrent Neural Network(循环神经网络)

Recursive neural network(递归神经网络)

Reinforcement learning/RL(强化学习)

Re-sampling(重采样法)

Representation learning(表征学习)

Random Forest Algorithm(随机森林算法)

S

缩放(scaling)

特征工程中常用的操作,用于控制特征值区间,使之与数据集中其他特征的区间匹配。例如,假设你想使数据集中所有的浮点特征的区间为 0 到 1。给定一个特征区间是 0 到 500,那么你可以通过将每个值除以 500,缩放特征值区间。还可参见正则化。

scikit-learn

一种流行的开源机器学习平台。网址:。

序列模型(sequence model)

输入具有序列依赖性的模型。例如,根据之前观看过的视频序列对下一个视频进行预测。

Sigmoid 函数(sigmoid function)

softmax

为多类别分类模型中每个可能的类提供概率的函数。概率加起来的总和是 1.0。例如,softmax 可能检测到某个图像是一只狗的概率为 0.9,是一只猫的概率为 0.08,是一匹马的概率为 0.02。(也叫作 full softmax)。

结构风险最小化(structural risk minimization/SRM)

这种算法平衡两个目标:

构建预测性最强的模型(如最低损失)。

使模型尽量保持简单(如强正则化)。

比如,在训练集上的损失最小化 + 正则化的模型函数就是结构风险最小化算法。更多信息,参见 。可与经验风险最小化对照阅读。

监督式机器学习(supervised machine learning)

利用输入数据及其对应标签来训练模型。监督式机器学习类似学生通过研究问题和对应答案进行学习。在掌握问题和答案之间的映射之后,学生就可以提供同样主题的新问题的答案了。可与非监督机器学习对照阅读。

Similarity measure(相似度度量)

Singular Value Decomposition(奇异值分解)

Soft margin(软间隔)

Soft margin maximization(软间隔最大化)

Support Vector Machine/SVM(支持向量机)

T

张量(tensor)

TensorFlow 项目的主要数据结构。张量是 N 维数据结构(N 的值很大),经常是标量、向量或矩阵。张量可以包括整数、浮点或字符串值。

Transfer learning(迁移学习)

U

无标签样本(unlabeled example)

包含特征但没有标签的样本。无标签样本是推断的输入。在半监督学习和无监督学习的训练过程中,通常使用无标签样本。

无监督机器学习(unsupervised machine learning)

训练一个模型寻找数据集(通常是无标签数据集)中的模式。无监督机器学习最常用于将数据分成几组类似的样本。无监督机器学习的另一个例子是主成分分析(principal componentanalysis,PCA)

W

Word embedding(词嵌入)

Word sense disambiguation(词义消歧)

LDA漫游系列(四)-Gibbs Sampling

随机模拟方法有一个很酷的别名是蒙特卡罗方法。这个方法的发展始于20世纪40年代。

统计模拟中有一个很重要的问题就是给定一个概率分布p(x),我们如何在计算机中生成它的样本,一般而言均匀分布的样本是相对容易生成的,通过线性同余发生器可以生成伪随机数,我们用确定性算法生成[0,1]之间的伪随机数序列后,这些序列的各种统计指标和均匀分布Uniform(0,1)的理论计算结果非常接近,这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。

而我们常见的概率分布,无论是连续的还是离散的分布,都可以基于Uniform(0, 1) 的样本生成,比如正态分布可以通过著名的 Box-Muller变换得到。其他几个著名的连续分布,包括指数分布,Gamma分布,t分布等,都可以通过类似的数学变换得到,不过我们并不是总这么幸运的,当p(x)的形式很复杂,或者p(x)是个高维分布的时候,样本的生成就可能很困难了,此时需要一些更加复杂的随机模拟方法来生成样本,比如MCMC方法和Gibbs采样方法,不过在了解这些方法之前,我们需要首先了解一下马尔可夫链及其平稳分布。

马尔可夫链通俗说就是根据一个转移概率矩阵去转移的随机过程(马尔可夫过程),该随机过程在PageRank算法中也有使用,如下图所示:

通俗解释的话,这里的每个圆环代表一个岛屿,比如i到j的概率是pij,每个节点的出度概率之和=1,现在假设要根据这个图去转移,首先我们要把这个图翻译成如下的矩阵:

上面的矩阵就是状态转移矩阵,我身处的位置用一个向量表示π=(i,k,j,l)假设我第一次的位置位于i岛屿,即π0=(1,0,0,0),第一次转移,我们用π0乘上状态转移矩阵P,也就是π1 = π0 * P = [pii,pij,pik,pil],也就是说,我们有pii的可能性留在原来的岛屿i,有pij的可能性到达岛屿j...第二次转移是,以第一次的位置为基础的到π2 = π1 * P,依次类推下去。

有那么一种情况,我的位置向量在若干次转移后达到了一个稳定的状态,再转移π向量也不变化了,这个状态称之为平稳分布状态π*(stationary distribution),这个情况需要满足一个重要的条件,就是 Detailed Balance 。

那么什么是 Detailed Balance 呢?

假设我们构造如下的转移矩阵:

再假设我们的初始向量为π0=(1,0,0),转移1000次以后达到了平稳状态(0.625,0.3125,0.0625)。

所谓的 Detailed Balance 就是,在平稳状态中:

为什么满足了Detailed Balance条件之后,我们的马尔可夫链就会收敛呢?下面的式子给出了答案:

下一个状态是j的概率,等于从各个状态转移到j的概率之和,在经过Detailed Balance条件变换之后,我们发现下一个状态是j刚好等于当前状态是j的概率,所以马尔可夫链就收敛了。

对于给定的概率分布p(x),我们希望能有便捷的方式生成它对应的样本,由于马尔可夫链能够收敛到平稳分布,于是一个很漂亮的想法是:如果我们能构造一个转移矩阵伪P的马尔可夫链,使得该马尔可夫链的平稳分布恰好是p(x),那么我们从任何一个初始状态x0出发沿着马尔可夫链转移,得到一个转移序列x0,x1,x2,....xn,xn+1,如果马尔可夫链在第n步已经收敛了,于是我们就得到了p(x)的样本xn,xn+1....

好了,有了这样的思想,我们怎么才能构造一个转移矩阵,使得马尔可夫链最终能收敛即平稳分布恰好是我们想要的分布p(x)呢?我们主要使用的还是我们的细致平稳条件(Detailed Balance),再来回顾一下:

假设我们已经又一个转移矩阵为Q的马尔可夫链(q(i,j)表示从状态i转移到状态j的概率),显然通常情况下:

也就是细致平稳条件不成立,所以p(x)不太可能是这个马尔可夫链的平稳分布,我们可否对马尔可夫链做一个改造,使得细致平稳条件成立呢?比如我们引入一个α(i,j),从而使得:

那么问题又来了,取什么样的α(i,j)可以使上等式成立呢?最简单的,按照对称性:

在改造Q的过程中引入的α(i,j)称为接受率,物理意义可以理解为在原来的马尔可夫链上,从状态i以q(i,j)的概率跳转到状态j的时候,我们以α(i,j)的概率接受这个转移,于是得到新的马尔可夫链Q'的转移概率q(i,j)α(i,j)。

假设我们已经又一个转移矩阵Q,对应的元素为q(i,j),把上面的过程整理一下,我们就得到了如下的用于采样概率分布p(x)的算法:

以上的MCMC算法已经做了很漂亮的工作了,不过它有一个小问题,马尔可夫链Q在转移的过程中接受率α(i,j)可能偏小,这样采样的话容易在原地踏步,拒绝大量的跳转,这是的马尔可夫链便利所有的状态空间要花费太长的时间,收敛到平稳分布p(x)的速度太慢,有没有办法提升一些接受率呢?当然有办法,把α(i,j)和α(j,i)同比例放大,不打破细致平稳条件就好了呀,但是我们又不能无限的放大,我们可以使得上面两个数中最大的一个放大到1,这样我们就提高了采样中的跳转接受率,我们取:

于是经过这么微小的改造,我们就得到了Metropolis-Hastings算法,该算法的步骤如下:

对于高维的情形,由于接受率的存在,Metropolis-Hastings算法的效率不够高,能否找到一个转移矩阵Q使得接受率α=1呢?我们从二维的情形入手,假设有一个概率分布p(x,y),考察x坐标相同的两个点A(x1,y1) ,B(x1,y2),我们发现:

基于以上等式,我们发现,在x=x1这条平行于y轴的直线上,如果使用条件分布p(y|x1)作为任何两个点之间的转移概率,那么任何两个点之间的转移满足细致平稳条件,同样的,在y=y1这条平行于x轴的直线上,如果使用条件分布p(x|y1) 作为,那么任何两个点之间的转移也满足细致平稳条件。于是我们可以构造平面上任意两点之间的转移概率矩阵Q:

有了上面的转移矩阵Q,我们很容易验证对平面上任意两点X,Y,满足细致平稳条件:

由二维的情形我们很容易推广到高维的情形:

所以高维空间中的GIbbs 采样算法如下:

Lotka-Volterra模型

种间竞争是指具有相似要求的物种,为了争夺空间和资源,而产生的一种直接或间接抑制对方的现象。

Lotka-Volterrra的种间竞争模型:

K是环境容纳量

N则是物种的种群数量

两者稳定共存的基本条件就是dN1/dt=0和dN2/dt=0

若dN1/dt=0,则K1-N1-αN2=0——①

若dN2/dt=0,则K2-N2-βN1=0——②

当环境全被N1占领则由②式得出N1=K2/β

当环境全被N2占领则由①式得出N2=K1/α

四种情况如图所示

吉布斯抽样是什么

吉布斯采样是生成马尔科夫链的一种方法,生成的马尔科夫链可以用来做蒙特卡洛仿真,从而求得一个较复杂的多元分布。

吉布斯采样的具体做法:假设有一个k维的随机向量,现想要构造一条有n个样本的k维向量(n样本马尔科夫序列),那么(随机)初始化一个k维向量,然后固定这个向量其中的k-1个元素,抽取剩下的那个元素(生成给定后验的随机数),这样循环k次,就把整个向量更新了一遍,也就是生成了一个新的样本,把这个整体重复n次就得到了一条马尔科夫链。