CS229 笔记05

生成学习方法

判别学习方法的主要思想是假设属于不同target的样本,服从不同的分布。

例如 \(P(x|y=0) \sim {\scr N}(\mu_1,\sigma_1^2)\) , \(P(x|y=1) \sim {\scr N}(\mu_2,\sigma_2^2)\) 。

  • Gaussian Discriminant Analysis(高斯判别分析)

    在这里还是讨论 \(y\in\{0,1\}\) 的二元分类问题, \(P(y)=\phi^y(1-\phi)^{1-y}\)。

    由于 \(x\) 是一个向量,所以需要用到多元高斯分布。

    假设 \(P(x|y=0) \sim {\scr N}(\vec{\mu_0}, \Sigma)\) , \(P(x|y=0) \sim {\scr N}(\vec{\mu_1}, \Sigma)\) 。

    \[
    \begin{eqnarray*}
    l(\phi\mu_0\mu_1\Sigma)&=&\log\prod_{i=1}^{m}P(x^{(i)},y^{(i)}) \\[1em]
    &=&\log\prod_{i=1}^{m}P(x^{(i)}|y^{(i)})P(y^{(i)}) \\[1em]
    &=&\log\prod_{i=1}^{m}P(y^{(i)})\left[I\{y^{(i)}=1\}P(x^{(i)}|y^{(i)}=1)+I\{y^{(i)}=0\}P(x^{(i)}|y^{(i)}=0)\right] \\[1em]
    &=&\log\prod_{i=1}^{m}\left\{\frac{y\phi}{\sqrt{2\pi|\Sigma|}}\left[(x^{(i)}-\mu_1)^{\rm T}\Sigma^{-1}(x^{(i)}-\mu_1)\right]+\frac{(1-y)(1-\phi)}{\sqrt{2\pi|\Sigma|}}\left[(x^{(i)}-\mu_0)^{\rm T}\Sigma^{-1}(x^{(i)}-\mu_0)\right]\right\} \\[1em]
    \end{eqnarray*}\\
    {\text{...}}\\
    {\text{To be continue}}\\
    {\text{...}}
    \]

    通过改变 \(\phi,\mu_0,\mu_1,\Sigma\) 的值,使得似然函数 \(l(\phi\mu_0\mu_1\Sigma)\) 最大化,此时各参数为:

    \[
    \begin{eqnarray*}
    \phi&=&\frac{\sum_i^my^{(i)}}{m}=\frac{\sum_i^mI\{y^{(i)}=1\}}{m} \\[1em]
    \mu_0&=&\frac{\sum_i^m\left(I\{y^{(i)}=0\}\cdot x^{(i)}\right)}{\sum_i^mI\{y^{(i)}=0\}} \\[1em]
    \mu_1&=&\frac{\sum_i^m\left(I\{y^{(i)}=1\}\cdot x^{(i)}\right)}{\sum_i^mI\{y^{(i)}=1\}} \\[1em]
    \end{eqnarray*}
    \]

    训练完成之后,对于一个新样本,只需要看该样本更符合哪一个模型即可:

    \[
    \begin{eqnarray*}
    h(x)&=&\arg \max_y P(y|x) \\[1em]
    &=&\arg \max_y \frac{P(x|y)P(y)}{P(x)} \\[1em]
    &=&\arg \max_y P(x|y)P(y) \\[1em]
    \end{eqnarray*}
    \]

  • 高斯判别分析与逻辑回归的关系

    若样本的两部分分别来自两个参数不同的高斯分布,则后验分布函数 \(P(y=1|x)\) 就是Logistic函数。

    \[
    \begin{eqnarray*}
    P(y=1|x)&=&\frac{P(x|y=1)P(y=1)}{P(x)}\\[1em]
    &=&\frac{\frac{\phi}{\sqrt{2\pi|\Sigma|}}\left((x-\mu_1)^{\rm T}\Sigma^{-1}(x-\mu_1)\right)}{\frac{\phi}{\sqrt{2\pi|\Sigma|}}\left((x-\mu_1)^{\rm T}\Sigma^{-1}(x-\mu_1)\right)+\frac{1-\phi}{\sqrt{2\pi|\Sigma|}}\left((x-\mu_0)^{\rm T}\Sigma^{-1}(x-\mu_0)\right)}\\[1em]
    &=&\frac{\phi\left((x-\mu_1)^{\rm T}\Sigma^{-1}(x-\mu_1)\right)}{\phi\left((x-\mu_1)^{\rm T}\Sigma^{-1}(x-\mu_1)\right)+(1-\phi)\left((x-\mu_0)^{\rm T}\Sigma^{-1}(x-\mu_0)\right)}\\[1em]
    \end{eqnarray*}\\
    {\text{...}}\\
    {\text{To be continue}}\\
    {\text{...}}
    \]

    不仅如此,若样本的两部分分别来自两个参数不同的同样的指数分布族分布,则后验分布函数 \(P(y=1|x)\) 也是Logistic函数。

    因此“假设样本的两部分都来自高斯分布”比“假设样本的后验分布函数是Logistic函数”有更强的约束性,利用了更多的已知信息,所以相对来说高斯判别分析需要较少的训练样本就能达到较好的效果。

    当决定采用逻辑回归,就意味着选择了一个约束较少的假设,这样就会有更强的泛化能力。与此同时也就意味着需要更多的样本来训练模型。

朴素贝叶斯

首先定义符号:

训练样本为 \(\left(x^{(1)},y^{(1)}\right),\left(x^{(2)},y^{(2)}\right),\cdots,\left(x^{(m)},y^{(m)}\right)\) , \(x^{(i)}\in\{0,1\}^n\) , \(y^{(i)}\in\{0,1\}\) 。

  • 假设

    朴素贝叶斯方法一个很重要的特点是,它有一个很强的假设:

    假设给定 \(y\) 之后, \(x_j\) 之间是彼此条件独立的,即:

    \[
    P(x_1,x_2,\cdots,x_n|y)=P(x_i|y)P(x_2|y) \cdots P(x_n|y)
    \]

  • 参数及其训练推导

    朴素贝叶斯算法中有如下参数:

    \[
    \begin{eqnarray*}
    \phi_{j|y=0}&=&P(x_j|y=0)\\[1em]
    \phi_{j|y=1}&=&P(x_j|y=1)\\[1em]
    \phi_{y=1}&=&P(y=1)\\[1em]
    \phi_{y=0}&=&1-P(y=1)\\[1em]
    \end{eqnarray*}
    \]

    似然函数:

    \[
    \begin{eqnarray*}
    l(\phi_{y=0}\phi_{y=1}\phi_{j|y=0}\phi_{j|y=1}\cdots)&=&\log\prod_i^mP(x^{(i)},y^{(i)})\\[1em]
    &=&\log\prod_i^m\left[P(x^{(i)}|y^{(i)}=0)P(y^{(i)}=0)+P(x^{(i)}|y^{(i)}=1)P(y^{(i)}=1)\right]\\[1em]
    &=&\log\prod_i^m\left[\prod_j^nP(x^{(i)}_j|y^{(i)}=0)P(y^{(i)}=0)+\prod_j^nP(x^{(i)}_j|y^{(i)}=1)P(y^{(i)}=1)\right]\\[1em]
    &=&\log\prod_i^m\left[\prod_j^n\phi_{j|y=0}\phi_{y=0}+\prod_j^n\phi_{j|y=1}\phi_{y=1}\right]\\[1em]
    \end{eqnarray*}\\
    {\text{...}}\\
    {\text{To be continue}}\\
    {\text{...}}
    \]

    最大化似然函数,求得:

    \[
    \begin{eqnarray*}
    \phi_{j|y=0}&=&\frac{\sum_i^mI\{x^{(i)}_j=1,y^{(i)}=0\}}{\sum_i^mI\{y^{(i)}=0\}}\\[1em]
    \phi_{j|y=1}&=&\frac{\sum_i^mI\{x^{(i)}_j=1,y^{(i)}=1\}}{\sum_i^mI\{y^{(i)}=1\}}\\[1em]
    \phi_{y=0}&=&\frac{\sum_i^mI\{y^{(i)}=0\}}{m}\\[1em]
    \phi_{y=1}&=&\frac{\sum_i^mI\{y^{(i)}=1\}}{m}\\[1em]
    \end{eqnarray*}
    \]

  • 预测

    预测函数为:

    \[
    \begin{eqnarray*}
    h(x)&=&\arg \max_y P(y|x)\\[1em]
    &=&\arg \max_y \frac{P(x|y)P(y)}{P(x)}\\[1em]
    &=&\arg \max_y P(x|y)P(y)\\[1em]
    &=&\arg \max_y \prod_j^nP(x_j|y)P(y)\\[1em]
    &=&\arg \max_y \prod_j^n\phi_{j|y}\phi_y\\[1em]
    \end{eqnarray*}
    \]

  • Laplace Smoothing

    当遇到一些在训练集未出现过的样本时,以上的算法会失效,所以可以考虑在估计参数时增加一些噪声。

CS229 笔记05的更多相关文章

  1. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  2. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  3. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  4. JAVA自学笔记05

    JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...

  5. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  6. CS229 笔记08

    CS229 笔记08 Kernel 回顾之前的优化问题 原始问题为: \[ \min_{w,b} \frac{1}{2}||w||^2\\[1.5em] {\text{s.t.}}y^{(i)}\le ...

  7. CS229 笔记07

    CS229 笔记07 Optimal Margin Classifier 回顾SVM \[ \begin{eqnarray*} h_{w,b}&=&g(w^{\rm T}x+b)\\[ ...

  8. CS229 笔记06

    CS229 笔记06 朴素贝叶斯 事件模型 事件模型与普通的朴素贝叶斯算法不同的是,在事件模型中,假设文本词典一共有 \(k\) 个词,训练集一共有 \(m\) 封邮件,第 \(i\) 封邮件的词的个 ...

  9. CS229 笔记04

    CS229 笔记04 Logistic Regression Newton's Method 根据之前的讨论,在Logistic Regression中的一些符号有: \[ \begin{eqnarr ...

随机推荐

  1. Kubernetes并发控制与数据一致性的实现原理

    在大型分布式系统中,定会存在大量并发写入的场景.在这种场景下如何进行更好的并发控制,即在多个任务同时存取数据时保证数据的一致性,成为分布式系统必须解决的问题.悲观并发控制和乐观并发控制是并发控制中采用 ...

  2. 笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)

    初识遗传算法Genetic Algorithm(GA) 遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种.进化算法借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传.突变.自然选 ...

  3. Spring学习总结之高级装配

    1.  profile profile可以决定bean在什么环境下才被装配(开发环境.测试环境.线上环境等) @Profile(“dev”)可以用在class之前,也可以用在类之前(Spring3.2 ...

  4. 第二个spring冲刺第6天

    今天的进展不多,对代码重新进行了整合,看起了比较简洁

  5. HDU 2015 偶数求和

    http://acm.hdu.edu.cn/showproblem.php?pid=2015 Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的 ...

  6. Mac OS X使用简介

    一.OS X 版本以大型猫科动物命名 10.0   猎豹(Cheetah) 10.1   美洲狮(Puma) 10.2   美洲虎(Jaguar) 10.3   黑豹(Panther) 10.4   ...

  7. php常用几种设计模式的应用场景

    1.单例设计模式 所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中! 单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接. ...

  8. 关于PSP(个人软件过程)

    在第一堂课时,杨老师就提到了PSP(个人软件过程),但是我从2016年3月10日才开始进行粗略的PSP时间管理统计,这是长迭代,用老师的话“差评”.然后在2016年3月11日下午的软件项目管理上,老师 ...

  9. Allowed Letters CodeForces - 1009G(状压思维)

    题意: 给出一个字符串 给出几个定点必须是哪个字母(或者是几个字母中的一个)  然后求在满足所有定点后的最小字符串 解析: 没错 这题是暴力 用状压暴力 “a - f” 用”0 - 5“ 这几个数字代 ...

  10. GCD LCM UVA - 11388 (思维。。水题)

    两个数的最小公倍数和最大公约数肯定是倍数关系 然后又让求使得a最小  因为 a = m * gcd 令m = 1 时 a取得最小  即gcd 则b = lcm #include <iostrea ...