标签归档:Machine Learning

极大似然估计(Maximum Likelihood Estimation)

在统计学中,最大似然估计,也称为最大概似估计,是用来估计一个概率模型的参数的一种方法。也就是说,在模型已知的情况下,我们通过采样样本数据,反推出最有可能导致该数据服从该模型分布的参数值,简单来说就是:模型已定,参数未知,通过采样求解模型参数。

问题描述

给定一组数据\(X=X_1,X_2,…,X_n\) ,他们的概率分布为\(D\)(参数为\(\theta\)),以及其概率密度函数\(f_D\),求解模型\(D\)的参数\(\theta\)。

求解

  • 采样
    我们从\(X\)中采样出一组数据\(x=x_1,x_2,…,x_n\),如果\(n\)足够大的话,这组数据肯定是服从分布\(D\)的。我们假设这组数据的采样是互相独立的,那么他们同时被采集到的概率(联合概率密度:joint density function)就是:

    $$
    f(x_1,x_2,…,x_n|\theta) = f(x_1|\theta) \t[……]

    继续阅读

Word2vec初探

2018年1月13号更新:
1.可以结合阅读本人的另一篇文章:自然语言处理入门来理解本文。
2.Xin Rong童鞋在去年的一场飞机失事中不幸去世,非常可惜。

以下为正文:

这两天比较受挫,因为看了几篇paper都没怎么懂。昨天看了一篇论文里面提到了word2vec,于是就想简单了解下什么是word2vec(感觉好像挺出名的)?再加上自己本身对NLP技术也比较感兴趣,想了解下NLP到底是如何处理文本从而理解文本的。于是就找了几篇论文看起来,word2vec最初是由当时还在Google工作的Tomas Mikolov率先提出的:Efficient Estimation of Word Representations in Vector Space,然而我并没有看懂这篇论文,写的实在是太high-level,看不到细节。感觉侧重点在和之前的几个模型比较性能:模型的计算复杂度和最终的效果,并没有详细解释这两个模型是如何工作的。刚开始以为是自己background太差了,理解不了。后来在网上搜了搜发现有人专门写了一篇论文来解释这篇论文:word2vec Parameter Learni[……]

继续阅读

Factorization Machines

Factorization Machines
要真正理解这个东西,我们得先从线性回归和多项式回归说起。

  • 线性回归
    一个基本的线性回归模型可以表示为:
    $$
    \hat{y(x)} = w_{0} + \sum_{i=1}^{n}w_{i}x_{i}
    $$
  • 多项式回归
    那么多项式回归就是在此基础上增加交叉项(也就是多项式):
    $$
    \hat{y(x)} = w_{0} + \sum_{i=1}^{n}w_{i}x_{i} + \sum_{i=1}^{n}\sum_{j=i+1}^{n}w_{ij}x_{i}x_{j}
    $$
    后面增加的就是多项式交叉项,Factorization Machines的主要目的就是优化多项式交叉项。那么这个多项式交叉项有什么问题呢?为什么需要被优化呢?
  • 第一个明显的问题就是参数太多了,\(n\)个特征,两两交叉,参数个数就是\(n(n-1)/2\).

  • 各个参数\(w_{ij}\)之间是互相独立,并没有什么联系。
  • 在高度稀疏的训练样本中无法准确地学习得到这些参数。为什么?因为最终[……]

    继续阅读

理解PCA

引言
之前写过一篇关于PCA的文章,写完之后就以为自己已经完全理解这个东西了。直到最近data mining课上又讲到这个内容,和同学交流时才发现有些细节根本没有理解到位。上一篇文章主要介绍如何一步一步计算出一个PCA算法,而今天则侧重于从数学的角度讲讲为什么。

基本概念
再深入介绍之前,先理解几个基本的数学概念:
方差(Variance):
一个变量的方差可以看做是每个元素与变量均值的差的平方和的均值,即:$${\displaystyle \Sigma =\mathrm {cov} (X_{i},X_{i}) = \mathrm {E} {\begin{bmatrix}(X_{i}-\mu _{i})^{2}\end{bmatrix}} = \mathrm {E} {\begin{bmatrix}(X_{i}-\mu _{i})(X_{i}-\mu _{i})\end{bmatrix}}}
$$
其中,\(E\)表示的是均值函数,\(\mu_{j}\)表示的是样本的均值。方差用来度量单个变量样本数据的离散(偏离均值)的程度。

协方差(Covariance):
变量\(X_{i}\[……]

继续阅读

机器学习的一些建议

在全部学完课程里的机器学习算法之后,我们总结下Andrew Ng对于这门学科的一些建议,其实主要是线性回归和逻辑回归的一些debug技巧。本文覆盖Coursera Machine Learning Week 6的内容。

评估假设函数(Evaluating a hypothesis)
比如我们找到了合适的模型,经过训练得到了最终的假设函数,那我们该如何评估这个假设函数以判断他是否过拟合了或者欠拟合呢?很简单,我们把数据集分为两部分:训练集(training data set)测试集(test data set),这两者的比例大概是70%和30%。使用训练集学习得到参数\(\Theta\),使用测试集计算误差\(J_{test}(\Theta)\)。具体地,

  • 对于线性回归,我们计算:\(J_{test}(\Theta)= \frac{1}{2m_{test}}\sum_{i=1}^{m_{test}}(h_{\Theta}(x_{test}^{(i)})- y_{test}^{(i)})^{2}\)
  • 对于分类问题,我们先计算错误的分类误差(Misclassificat[……]

    继续阅读