标签归档:Deep Learning

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[……]

    继续阅读

  • Machine Learning-Photo OCR(图片文字识别)

    今天来总结一下Coursera Machine Learning最后一周week 11的内容:图像文字识别(photo OCR),这个问题是机器学习在计算机视觉(computer vision)领域里的一个很常见的应用。本章我们会介绍如何使用机器学习算法解决这个问题,以及什么是人工数据合成(artificial data synthesis)。

    The Photo OCR problem
    Photo OCR全称是:photo optical character recognition,照片光学字符识别,意思就是从照片里识别字符信息,比如我们有如下图片:

    那么OCR解决的问题就是把照片中红框内的文字识别出来。

    Photo OCR pipeline
    这是一个较为复杂的机器学习应用,我们可以把它分为几个小模块,然后组成一个流水线(pipeline)来解决问题。具体地,分为以下几个步骤:

    • 文字区域检测(text detection),找到图片中属于文字的部分,并把它抠出来:
    • 字符分割(character segmentation),把上一步得到的图片分割成包含单个[……]

      继续阅读