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. Houdini Linux Crack

    安装 破解停止服务 /etc/init.d/sesinetd stop 刪除sesinetd | 拷贝破解文件sesinetd | 修改sesinetd的权限(读写权限) cd /usr/lib/se ...

  2. React笔记-事件注册

    事件机制 本系列以React v16.8.3为基础进行源码分析 React事件主要分为两部分: 事件注册与事件分发.下面先从事件注册说起. 事件注册 假设我们的程序如下: <!DOCTYPE h ...

  3. Network Mapper 嗅探工具

    1. nmap (目标ip地址 xxx.xxx.xxx.xxx) - 例子:nmap xxx.xxx.xxx.xxx2. nmap自定义扫描 - 例子:nmap -p(端口号) xxx.xxx.xxx ...

  4. HDU Ignatius's puzzle

    链接 [http://acm.hdu.edu.cn/showproblem.php?pid=1098] 分析: 数学归纳法 f(1) = 18 + ka; 假设f(x) = 5x^13+13x^5+k ...

  5. Linux第二章读书笔记

    1.获取内核源码 1.1Git 分布式的:下载和管理Linux内核源代码: - 获取最新提交到版本树的一个副本 $ git clone git://git.kernel.org/pub/scm/lin ...

  6. OFART: OpenFlow-Switch Adaptive Random Testing

    文章名称:OFART: OpenFlow-Switch Adaptive Random Testing 发表时间:2017 期刊来源:--- 摘要 问题: 如果转发设备的正确性没有验证,这将影响这个网 ...

  7. Linux命令常用

    数据库:查看日志 vim /var/log/mysqld.log

  8. codeforces71A

    Way Too Long Words CodeForces - 71A XUPT_ACM的杨队是一个强迫症晚期的大神,他特别反感长单词,就像 "localization" 和&qu ...

  9. Continuation-passing style

    Continuation-passing style 参考书籍: EOPL (  Essentials of Programming Languages, 3rd Edition ) 作者:知乎用户链 ...

  10. 【刷题】BZOJ 1023 [SHOI2008]cactus仙人掌图

    Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌图(cactus).所谓简单回路就是指在图上不重复经过任何一个顶点的 ...