#2 大话机器学习中的贝叶斯 Bayesian

#2 大话机器学习中的贝叶斯 Bayesian
/

这一期, 我们来谈一谈机器学习中的贝叶斯. 概率论中贝叶斯理论, 作为概率的一种“思考方式”, 十分通用. 当机器学习应用中, 贝叶斯的强大理论提现在多个领域, 包括超参数贝叶斯, 贝叶斯推断, 非参贝叶斯等等…

入门

机器学习中的贝叶斯, 首先要区分概率中频率学派和贝叶斯学派的. 网上有各种各样的解释, 其实, 我们可以从机器学习的角度去解释.

机器学习问题可以总结为: 找到一个好的 \theta 代表一个模型, \theta 表示这个模型的所有参数, 而这个模型就是我们能够训练出的最好模型(至少我们认为是最好的).  什么是最好的模型? 假设有未知数据集 X_{unknown} , 如果 P\left(X_{unknown}\middle|\theta\right) = 1 , 那么这个模型就是最好的. 当然这是不可能的, 也许只有上帝才能对所有的未知100%准确预测. 但我们一定是希望 P\left(X_{unknown}\middle|\theta\right) 越大越好, 趋向于1.

如何做到使得 P\left(X_{unknown}\middle|\theta\right) 越大越好 ? 这就引出了概率论中的两大学派: 传说中的”频率学派”和”贝叶斯学派”. 两大学派区别在哪里? 看下面这个公式:

P\left(\theta\middle|X_{train}\right) = \frac{P\left(X_{train}\middle|\theta\right)P\left( \theta\right)}{P\left(X_{train}\right)}

没错! 这就是大名鼎鼎的贝叶斯公式 ! 机器学习中,  X_{train} 是真实的训练数据或者抽样数据 . P\left(\theta\middle|X_{train}\right) 是后验概率(posterior)分布 . P\left(X_{train}\middle|\theta\right)是似然概率(likelihood).   P\left( \theta\right) 是先验概率分布(prior). P\left(X_{train}\right)是归一化”证据”(evidence)因子.

“频率学派”认为, 后验概率和先验概率都是不存在的, 模型 \theta 不论简单复杂, 参数已经是上帝固定好了的, 只要根据大数定理, 当训练数据足够大, 我们就能找到那个最好的 \theta . 于是公式变为:

 P\left(X_{train}\right) = P\left(X_{train}\middle|\theta\right)

无论有没有 \theta , 抽样数据 X_{train} 出现的概率都是一样的, 因为任何数据都是从上帝指定的模型中生成的. 于是我们找到 \theta 的任务就很简单, 最大化 P\left(X_{train}\middle|\theta\right) 似然概率就行了. 数据量越大, 模型拟合度越高, 我们越相信得到的 \theta 越接近上帝指定的那个 \theta. 所以”频率学派”预测投硬币正反的概率的方法就是, 投10000次硬币吧, 看看正面出现多少次. 这种基于统计的预测有很多缺点, 首先它指定了一个固定概率, 如果上帝指定的模型不是固定的呢? 另外, 如果数据量不足够大, 预测会不会非常不准确? 当数据维数增大时, 实际计算量也会变得非常大.

“贝叶斯学派”认为, 人类的知识是有限的, 我们不知道上帝的安排, 就先假设一个先验(我们已有的知识), 再根据训练数据或抽样数据, 去找到后验分布, 就能知道模型最可能是个什么样子. 继续阅读#2 大话机器学习中的贝叶斯 Bayesian

机器学习 常见面试题 总结

前言:

找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大。

纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大点的公司里百度,阿里,腾讯,网易,搜狐,华为(华为的岗位基本都是随机分配,机器学习等岗位基本面向的是博士)等会有相关职位,另外一些国内的中小型企业和外企也会招一小部分。当然了,其中大部分还是百度北京要人最多,上百人。阿里的算法岗位很大一部分也是搞机器学习相关的。

下面是在找机器学习岗位工作时,总结的常见机器学习算法(主要是一些常规分类器)大概流程和主要思想,希望对大家找机器学习岗位时有点帮助。实际上在面试过程中,懂这些算法的基本思想和大概流程是远远不够的,那些面试官往往问的都是一些公司内部业务中的课题,往往要求你不仅要懂得这些算法的理论过程,而且要非常熟悉怎样使用它,什么场合用它,算法的优缺点,以及调参经验等等。说白了,就是既要会点理论,也要会点应用,既要有点深度,也要有点广度,否则运气不好的话很容易就被刷掉,因为每个面试官爱好不同。

朴素贝叶斯:

有以下几个地方需要注意:

1. 如果给出的特征向量长度可能不同,这是需要归一化为统一长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。

2. 计算公式如下:29224144-9bad2a8789f549cd88a567a7c2ca7465

其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是P\left(w\middle|c_i\right)的计算方法, 而由朴素贝叶斯的前提假设可知: P\left(w_0,w_1,w_2...w_N\middle|c_i\right) =P\left(w_0\middle|c_i\right)P\left(w_1\middle|c_i\right)P\left(w_2\middle|c_i\right)...P\left(w_N\middle|c_i\right)

因此一般有两种,一种是在类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本的总和;第二种方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。

3. 如果P\left(w\middle|c_i\right)中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace光滑, 分母加k的原因是使之满足全概率公式)。

朴素贝叶斯的优点:

对小规模的数据表现很好,适合多分类任务,适合增量式训练。

缺点

对输入数据的表达形式很敏感。 继续阅读机器学习 常见面试题 总结

快速入门机器学习 图解机器学习10张经典图片

入门机器学习, 总有几张图片, 令人印象深刻. 以下是十张经典图片, 图解机器学习, 非常有 启发性:

1.  训练错误和测试错误。这张图告诉我们训练错误越小,不一定是最好的。训练误差和测试误差要达到一个平衡,才是最好的。下图展示了ESL 图 2.11, 训练错误和测试错误与模型复杂度的关系.

Test and training error
Test and training error

2. 欠拟合”和”过拟合”. 出自PRML 图1.4. 下图数据点是从绿色曲线生成的. 拟合参数是M,  通过M得到的模型是红色曲线. 可见, 如果M过小, 得到的模型不够复杂, 不能还原真实模型, 也就是”欠拟合”. 如果M太大, 得到的曲线复杂度过高, 也不能真实还原模型, 也就是”过拟合”. 猜到了吧? 还是要在”欠拟合”和”过拟合”之间找到一个平衡呀~

Under and overfitting
Under and overfitting

3. 奥卡姆剃刀(Occam’s razor). 出自ITILA 图 28.3. 为什么贝叶斯推断包含着奥卡姆剃刀的原理 ? 下图展示了为什么复杂的模型会变得低效。横轴代表了贝叶斯理论的汇报模型在可能数据集上被准确预测的可能性。P\left(D\middle|H_1\right) 代表了使用复杂模型H_1情况下,数据集D被准确预测的概率和置信度(Evidence);P\left(D\middle|H_2\right) 代表了使用较简单模型H_2情况下,数据集D被准确预测的概率和置信度(Evidence)。可见复杂模型H_1在预测时,一些数据置信度,或者信心很高,但是其实整体准确度, 不如模型H_2 。说什么来着? 模型复杂度也要平衡哦~
继续阅读快速入门机器学习 图解机器学习10张经典图片