Javen Chen's Blog

Tech and Life~

基础介绍

首先看下模型结构,对模型有一个直观的概念:

描述下这个图:
分成两排,第一排是$y$序列,第二排是$x$序列。每个$x$都只有一个$y$指向它,每个$y$也都有另一个$y$指向它。

OK,直觉上的东西说完了,下面给出定义(参考《统计学习方法》):

Read more »

在概率模型中,最常用的模型参数估计方法应该就是最大似然法
EM算法本质上也是最大似然,它是针对模型中存在隐变量的情况的最大似然

下面通过两个例子引入。

没有隐变量的硬币模型

假设有两个硬币,$A$和$B$,这两个硬币具体材质未知,即抛硬币的结果是head的概率不一定是50%。

Read more »

图模型的引入

首先总结一下图模型,所谓图模型,其实就是在统计建模的时候,结合图论的思想。

$图模型=概率论+图论$

Read more »

1.手推失败原因总结

  1. 没有重点。完整的推倒过程非常复杂,全部讲清楚是一个大工程,如何选择重点非常重要,如果只是花时间去记具体细节的公式化简,很容易手推失败。
  2. 先验知识掌握不牢。 比如KKT/Hinge Loss/kernel。 这些知识应该拆开来分块学,避免学混了,以为kernel就是给SVM用的。
  3. 在模型中使用trick的地方没有着重记忆。

2.先验知识

2.1 拉格朗日对偶性

原始问题

Read more »

是什么

提到**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是一种统计过程,它使用正交变换,将一系列可能相关的变量的观测转换到另外一系列的线性无关的变量,这些线性无关的变量称为主成分

Read more »

动机

首先,来说说为什么要写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实现。

Read more »

机器学习中的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的核心思想即用样本的和去近似积分

随机采样介绍

所谓采样,实际上是指根据某种分布去生成一些数据点,比如“石头剪刀布”的游戏,服从均匀分布,且概率都是三分之一,采样即希望随机获得一个“石头”或者“剪刀”或者“布”,并且每中情况出现的机会应该是一样的。也就是说,这是我们根据观察数据再确定分布的过程的逆过程

Read more »

1. 介绍和引入

最近初学NLP相关的深度学习,下了很多论文,数量一多,发现论文管理是个问题。

首先论文数目一多,必须要按类别放到子文件夹下。但是某一篇论文,往往有多个主题。比如说某论文使用word2vec给短文本分类,那这篇论文既可以放在word2vec的目录下,也可以放在短文本的目录下,也可以放在分类的目录下。当你有天想去看了,往往又忘了是放在哪个子目录下了。再比如说,你下载了一些论文,下载的时候你知道这些论文的重要性(引用次数或者对项目的重要性)和紧急性(比如你三天之内都要看完)。但是当你把它放在某个子目录以后,当你有时间去看的时候,你忘了你当时最想看的那篇论文是什么了。

为此,我决定开发一个小工具来帮助我管理我的paper。我的思路是这样的:给每篇论文打上tag,标上重要程度和紧急程度。这样当我没有特定目的的时候,我就可以根据重要程度和紧急程度看小工具推荐的paper;当我想看某方面的paper时,我只需要查询下tag就可以找到相关主题的paper。

OK,有了思路,就可以着手实现了。

Read more »

概述

1
2
3
自然语言分类是指按照预先定义的主题类别,为文档集合中的每个文档确定一个类别。
本文将介绍一个限定类别的自然语言分类器的原理和实现。采用Python作为编程语言,采用朴素贝叶斯作为分类器,使用jieba进行分词,并使用scikit-learn实现分类器。
训练数据来自于凤凰网,最终交叉验证的平均准确率是0.927。

一、训练数据获取

中文自然语言分类现成可用的有搜狗自然语言分类语料库、北京大学建立的人民日报语料库、清华大学建立的现代汉语语料库等。

由于语言在使用过程中会不断演进,具有一定的时效性,我们最终决定自己开发爬虫爬取训练数据。

Read more »
0%