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. Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较

    说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...

  2. 20135202闫佳歆--week5 分析system_call中断处理过程--实验及总结

    week 5 实验:分析system_call中断处理过程 一.使用gdb跟踪分析一个系统调用内核函数(上周选择那一个系统调用)--getpid 复习视频: 如何实现? - 更新menu代码到最新版 ...

  3. 《Linux内核分析》 第三周 构造一个简单的Linux系统MenuOS

    Linux内核分析 第三周 构造一个简单的Linux系统MenuOS 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  4. scrapy 爬虫怎么写入日志和保存信息

    写入日志: 首先我的爬虫 name= article scrapy crawl article -s LOG_FILE=wiki.log 输出为不同格式: scrapy crawl article - ...

  5. THE LAST ONE!! 2017《面向对象程序设计》课程作业八

    THE LAST ONE!! 2017<面向对象程序设计>课程作业八 031602230 卢恺翔 GitHub传送门 题目描述 1.时间匆匆,本学期的博客作业就要结束了,是否有点不舍,是否 ...

  6. Spherical Hashing,球哈希

    1. Introduction 在传统的LSH.SSH.PCA-ITQ等哈希算法中,本质都是利用超平面对数据点进行划分,但是在D维空间中,至少需要D+1个超平面才能形成一个封闭.紧凑的区域.而球哈希方 ...

  7. springmvc关于redisCluster的使用及配置

    首先附上maven仓库jar包的下载地址:https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-loca ...

  8. 1-Python3从入门到实战—基础之语法

    Python从入门到实战系列--目录 编码格式 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串 # -*- coding=utf-8 -*- 也可以 ...

  9. 『编程题全队』Alpha 阶段冲刺博客Day6

    1.每日站立式会议 1.会议照片 2.昨天已完成的工作统计 孙志威: 1.添加JSON处理模块 2.添加了团队看板中的添加团队任务功能 3.添加了团队看板中的添加按钮 孙慧君: 1.个人任务框UI的设 ...

  10. 【python】自学笔记

    参考文献 1.环境安装 1.1 python 工作环境 2.7.14 1.2 pycharm community2018.1.1 4 x64 2.第一行代码 2.1 python交互模式, >& ...