EM算法总结
如何优雅地手推SVM
PCA(主成分分析)学习总结(原理+代码)
是什么
提到**Principal component analysis (PCA)**,大家会先想到“降维”,其准确的定义是:
1 | PCA is a statistical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components. |
翻译:
PCA是一种统计过程,它使用正交变换,将一系列可能相关的变量的观测转换到另外一系列的线性无关的变量,这些线性无关的变量称为主成分。
Logistic Regression VS Max Entropy 和 Theano实现
动机
首先,来说说为什么要写LR和ME。最近在研究《 An Introduction to Conditional Random Fields for Relational Learning》,发现了一张神图。
稍微解释一下:我们把机器学习模型分为两类,一类是生成模型,一类是判别模型。第一行的都是生成模型,第二行的都是判别模型。所谓生成模型是通过建模$P(x,y)$,判别模型是直接建模$P(y|x)$。把这两种建模思维和图模型相结合,我们可以描述随机变量之间的关系,使得模型变得复杂。一般这些随机变量是同一类型的在不同时间序列上的变量,具体关系由图模型描述。
从图上看,关系最简单的,是朴素贝叶斯模型和LR(ME)模型。这里把LR和ME归为了一类,这是因为LR和ME在本质上是等价的(虽然他们的建模思想完全不同),都是属于对数线性模型,也都是判别模型。朴素贝叶斯很简单了,就不多说了,LR和ME却还可以引申出很多知识点,比如拉格朗日对偶,最优化方法。这些都在后面的博文中详细描述。这里专注把LR和ME的思路理清,以及它们背后的intuition。最后使用Theano实现。
机器学习中的Monte Carlo(笔记和python实现)
机器学习中的Monte-Carlo
来说一下机器学习中Monte-Carlo中用在什么地方:
- 贝叶斯推论和学习:
- 归一化:$p(x | y) =\frac{p(y | x)p(x)}{\int_Xp(y| x’)p(x’)dx’}$
- 边缘概率的计算:$p(x | y) = \int_Z p(x, z | y)dz$
- 求期望:$E_{p(x|y)}(f(x)) = \int_Xf(x)p(x|y)dx$
- 上面三处都用到了积分,Monte-Carlo的核心思想即用样本的和去近似积分。
随机采样介绍
所谓采样,实际上是指根据某种分布去生成一些数据点,比如“石头剪刀布”的游戏,服从均匀分布,且概率都是三分之一,采样即希望随机获得一个“石头”或者“剪刀”或者“布”,并且每中情况出现的机会应该是一样的。也就是说,这是我们根据观察数据再确定分布的过程的逆过程。
神经网络基础(BP算法推导和基本的神经网络的实现)
用python编写一个本地论文管理器
1. 介绍和引入
最近初学NLP相关的深度学习,下了很多论文,数量一多,发现论文管理是个问题。
首先论文数目一多,必须要按类别放到子文件夹下。但是某一篇论文,往往有多个主题。比如说某论文使用word2vec给短文本分类,那这篇论文既可以放在word2vec的目录下,也可以放在短文本的目录下,也可以放在分类的目录下。当你有天想去看了,往往又忘了是放在哪个子目录下了。再比如说,你下载了一些论文,下载的时候你知道这些论文的重要性(引用次数或者对项目的重要性)和紧急性(比如你三天之内都要看完)。但是当你把它放在某个子目录以后,当你有时间去看的时候,你忘了你当时最想看的那篇论文是什么了。
为此,我决定开发一个小工具来帮助我管理我的paper。我的思路是这样的:给每篇论文打上tag,标上重要程度和紧急程度。这样当我没有特定目的的时候,我就可以根据重要程度和紧急程度看小工具推荐的paper;当我想看某方面的paper时,我只需要查询下tag就可以找到相关主题的paper。
OK,有了思路,就可以着手实现了。