CS229 Lecture 02
最近忙成狗,各种意义上。第二章其实之前已经看过了但是已经完全忘记了,于是重新看了一遍当复习。
判别学习算法:直接学习$p(y|x)$,或学习一个假设$h_{\theta}(x)$输出结果
生成学习算法:对$p(x|y)$进行建模(feature, class label),然后根据$p(y|x)=\frac{p(x|y)p(y)}{p(x)}$和$p(x)=p(x|y=1)p(y=1)+p(x|y=0)p(y=0)$计算结果。
高斯判别分析
假设p(x|y)服从多元高斯分布$z~N(\mu,\Sigma)$。其中$\mu$为均值,$\Sigma=E[(x-\mu)(x-\mu)^{T}]$为协方差矩阵。
假设y服从伯努利分布。即$p(y)=\phi^{y}(1-\phi)^{1-y}$。
则其服从高斯分布的模型:
$p(x|y=0)=\frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0))$
$p(x|y=1)=\frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1))$
则其似然函数为:$l(\phi, \mu_0, \mu_1, \Sigma)=log\prod p(x^{(i)},y^{(i)})=log\prod p(y^{(i)}|x^{(i)},\theta)$
与此相比,logistic回归的似然函数为:$log\prod p(y^{(i)}|x^{(i)}, \theta)$
此时,各参数结果如下:
$\phi=\frac{1}{m}\sum_{i=1}^{m}1\{y^{(i)}=1\}$
$\mu_0=\frac{\sum_{i=1}^{m}1\{y^{(i)}=0\}x^{(i)}}{\sum_{i=1}^{m}1\{y^{(i)}=0\}}$
$\mu_1=\frac{\sum_{i=1}^{m}1\{y^{(i)}=1\}x^{(i)}}{\sum_{i=1}^{m}1\{y^{(i)}=1\}}$
$\Sigma=\frac{1}{m}\sum_{i=1}^{m}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T$
预测公式如下:$argmax_y p(y|x)=argmax_y \frac{p(x|y)p(y)}{p(x)}=argmax_y p(x|y)p(y)$
当y服从均匀分布时,p(y)相同,公式可简化为$argmax_y p(x|y)$
高斯分布模型与Sigmoid函数的对比:
对于$P(y=1|x)=\frac{p(x|y=1)p(y=1)}{p(x)}$来说,其越接近一侧时,值越接近0;越接近另一侧时,值越接近1。这与Sigmoid函数的情况是类似的。
这里$P(x)=P(x|y=1)p(y=1)+P(x|y=0)p(y=0)$。
相比与logistic,高斯分布是一个更强的假设。即,对于未知的数据,如果假设其服从高斯分布,但是其实际是服从泊松分布的。那么此时logistic回归仍然能取得不错的效果。但如果数据确实服从高斯分布,则利用高斯分布模型可以取得更好的效果。
事实证明,生成算法的优点在于需要更少的数据,logistic回归的优点在于假设更少,模型更健壮。
另,若x|y=1和x|y=0均服从指数分布族,那么p(y=1|x)为logistic回归函数。
朴素贝叶斯
应用:垃圾邮件分类。
若假设y=0或1,1表示是垃圾邮件,0表示不是垃圾邮件。那么首先问题在于,如何确定一封邮件的特征向量。
遍历词典,若该词出现则为1,未出现则为0。
对于一个50000词的词典,其模型应该如下:$p(x|y), x\in{0, 1}^n, n=50000$。那么若采用多项式模型,其共有$2^{50000}-1$个参数(所有参数的和为1)。
若使用朴素贝叶斯模型,则需要做一个非常强的假设(朴素贝叶斯假设):给定y的时候,$x_i$是条件独立的。
即$p(x_1,...,x_{50000}|y)=p(x_1|y)p(x_2|y, x_1)...p(x_{50000}|y, x_1, x_2,...,x_{49999})$
$=p(x_1|y)p(x_2|y)...p(x_{50000}|y)=\prod_{i=1}^{n}p(x_i|y)$
这个假设意味着:某个单词在邮件中是否出现,对其他单词是否出现没有影响。这个假设显然是不符合实际的,但是其仍然是一个有效的算法。这个模型跟贝叶斯网络类似。
模型参数如下:$\phi_{i|y=1}=p(x_i=1|y=1)$,$\phi_{i|y=0}=p(x_i=1|y=0)$,$\phi_y=p(y=1)$。
joint似然性:$L(\phi_y,\phi_{i|y=0},\phi_{i|y=1})=\prod_{i=1}^{m}p(x^{(i)},y^{(i)})$。
则极大似然的参数为:$\phi_{j|y=1}=\frac{\sum_{i=1}^{m}1\{x_{j}^{(i)}=1\wedge y^{(i)}=1\}}{\sum_{i=1}^{m}1\{y^{(i)}=1\}}$(垃圾邮件中某词出现的比例)
$\phi_{j|y=0}=\frac{\sum_{i=1}^{m}1\{x_{j}^{(i)}=1\wedge y^{(i)}=0\}}{\sum_{i=1}^{m}1\{y^{(i)}=0\}}$(非垃圾邮件中某词出现的比例)
$\phi_{y}=\frac{\sum_{i=1}^{m}1\{y^{(i)}=1\}}{m}$(垃圾邮件占所有邮件的比例)
若预测一封邮件是否为垃圾邮件,即需要计算p(y=1|x)
$p(y=1|x)=\frac{p(x|y=1)p(y=1)}{p(x)}=\frac{(\prod_{i=1}^{n}p(x_i|y=1))p(y=1)}{(\prod_{i=1}^{n}p(x_i|y=1))p(y=1)+(\prod_{i=1}^{n}p(x_i|y=0))p(y=0)}$
Laplace平滑
对于$p(y=1)=\frac{\#"1"s}{\#"0"s+\#"1"s}$, 对每一项都加1,即$p(y=1)=\frac{\#"1"s+1}{\#"0"s+1+\#"1"s+1}$
更一般的,如果y可以取k种值,则$p(y=j)=\frac{\sum_{j=1}^{m}1\{y^{(i)}=j\}+1}{m+k}$
朴素贝叶斯的一个变种
$x\in\{1,2,...,k\}$,此时$p(x|y)=\prod_{i=1}^{k}p(x_i|y)$,这里的$x_i$服从多项式分布(代替伯努利分布)。
对于连续的数据,可以先将其离散化。
对于词汇序列的分类(多元伯努利事件模型)
之前的对垃圾邮件的分类方法,丢失了单词出现次数的信息。
多项式事件模型
对于第i个数据(邮件),其特征向量为$\{x_1^{(i)},...,x_{n_i}^{(i)}\}$,其中$x_i$为第i个数据的单词个数。$x_j\in\{1,2,...,50000\}$为单词在字典中的索引。
此时,$p(x,y)=p(y)\prod_{i=1}^{n}p(x_i|y)$,n是邮件的长度。
其参数为:$\phi_{k|y=1}=p(x_j=k|y=1)$
$\phi_{k|y=0}=p(x_j=k|y=0)$
$\phi_y=p(y=1)$
其极大似然函数为$\phi_{k|y=1}=\frac{\sum_{i=1}^{m}1\{y^{(i)}=1\}\sum_{j=1}^{n}1\{x_{j}^{(i)}=k\}}{\sum_{i=1}^{m}1\{y^{(i)}=1\}\cdot n}$(垃圾邮件中词k出现的次数占总垃圾邮件长度的百分比)
$\phi_{k|y=0}=\frac{\sum_{i=1}^{m}1\{y^{(i)}=0\}\sum_{j=1}^{n}1\{x_{j}^{(i)}=k\}}{\sum_{i=1}^{m}1\{y^{(i)}=0\}\cdot n}$(非垃圾邮件中词k出现的次数占总非垃圾邮件长度的百分比)
$\phi_y=\frac{\sum_{i=1}^{m}1\{y^{(i)}=1\}}{m}$(垃圾邮件占总邮件数的百分比)
上述极大似然估计也可以使用Laplace平滑。
非线性分类器:
对于logistic回归$h_{\theta}(x)=\frac{1}{1+e^{-\theta^{T}x}}$,可以认为假设值大于0.5时分类为1,小于0.5时分类为0.
根据之前提到的指数分布族的知识,服从指数分布族的分布都可以看作logistic后验分布。朴素贝叶斯也属于这类模型,所以其本质还是线性分类器。
神经网络:多个Sigmoid函数,value函数与反向传播。
CS229 Lecture 02的更多相关文章
- CS229 笔记02
CS229 笔记02 公式推导 $ {\text {For simplicity, Let }} A, B, C \in {\Bbb {R}}^{n \times n}. $ $ {\bf {\t ...
- ML Lecture 0-2: Why we need to learn machine learning?
在Github上也po了这个系列学习笔记(MachineLearningCourseNote),觉得写的不错的小伙伴欢迎来给项目点个赞哦~~ ML Lecture 0-2: Why we need t ...
- CS229 Lecture 01
CS229 Lecture notes 01 机器学习课程主要分为4部分:监督学习:学习理论:无监督学习:增强学习. $x^{(i)}$表示特征,$y^{(i)}$表示目标,$i=1...m$.m是训 ...
- 李宏毅老师机器学习课程笔记_ML Lecture 0-2: Why we need to learn machine learning?
引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...
- [Stats385] Lecture 01-02, warm up with some questions
Theories of Deep Learning 借该课程,进入战略要地的局部战斗中,采用红色字体表示值得深究的概念,以及想起的一些需要注意的地方. Lecture 01 Lecture01: De ...
- K-Means 聚类算法
K-Means 概念定义: K-Means 是一种基于距离的排他的聚类划分方法. 上面的 K-Means 描述中包含了几个概念: 聚类(Clustering):K-Means 是一种聚类分析(Clus ...
- 【十大经典数据挖掘算法】EM
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 极大似然 极大似然(Maxim ...
- 在线最优化求解(Online Optimization)之一:预备篇
在线最优化求解(Online Optimization)之一:预备篇 动机与目的 在实际工作中,无论是工程师.项目经理.产品同学都会经常讨论一类话题:“从线上对比的效果来看,某某特征或因素对xx产品的 ...
- 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型
本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...
随机推荐
- CentOs 7 安装mysql5.7.18(二进制版本)
1.下载二进制版本安装包.搜狐开源镜像站:http://mirrors.sohu.com/mysql/MySQL-5.7/ , 找 mysql-5.7.18-linux-glibc2.5-x86_ ...
- 二、集群配置SSH免密登录
一.以3个几点为例,分别为master.slave01.slave02 1.分别生成自己节点密钥对 master: 创建dsa免密代码:ssh-keygen -t dsa -P '' -f ~/.ss ...
- [Abp]Abp 新手入门随记
项目结构说明 *.Application 应用服务实现 *.Application.Contracts 包含DTO及应用服务接口 *.DbMigrator 数据迁移项目 开发和生产环境迁移数据库架构和 ...
- SAAS云平台搭建札记: (三) AntDesign + .Net Core WebAPI权限控制、动态菜单的生成
我们知道,当下最火的前端框架,非蚂蚁金服的AntDesign莫属,这个框架不仅在国内非常有名,在国外GitHub上React前端框架也排名第一.而且这个框架涵盖了React.Vue.Angular等多 ...
- PHP 插件资源
PHP jsonRPC 百度云网盘地址 https://pan.baidu.com/s/1itCIhrdd5bPGJMefNUuKvw 提取码 : ax4d PHP Excel 百度云网盘 ...
- Oracle误删数据的恢复
Oracle误删数据的恢复,分为两种方法:SCN和时间戳两种方法恢复. 一.通过SCN恢复删除且已提交的数据 1.获得当前数据库的SCN号 select current_scn from v$data ...
- 【Flutter】可滚动组件之ListView
前言 它可以沿一个方向线性排布所有子组件,并且它也可以支持基于Sliver的延迟构建模型. 接口描述 ListView({ Key key, // 可滚动widget公共参数 Axis scrollD ...
- 通过写n本书的积累,我似乎找到了写好技术文章的方法(回复送我写的python股票电子书)
我写的书不算少,写的博文就更多了,但大多数书的销量也就一般,而我写的技术文章里,虽然也有点击过万的,但不少点击量也就只有三位数. 通过不断反思,也通过对比了一些畅销书和顶流文章,我似乎找到了一些原因, ...
- [从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐
[从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐 目录 [从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐 0x00 摘要 0x01 业务范畴 1.1 失效剔除 1.2 服务续约 ...
- 【System】I/O密集型和CPU密集型工作负载之间有什么区别
CPU密集型(CPU-bound) CPU密集型也叫计算密集型,指的是系统的硬盘.内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/ ...