CS229 笔记06
CS229 笔记06
朴素贝叶斯
事件模型
事件模型与普通的朴素贝叶斯算法不同的是,在事件模型中,假设文本词典一共有 \(k\) 个词,训练集一共有 \(m\) 封邮件,第 \(i\) 封邮件的词的个数为 \(n_i\) ,则 \(x^{(i)} \in \{1,2,\cdots,k\}^{n_i}\) 。
此时模型的参数为:
\[
\begin{eqnarray*}
\phi_{k|y=0}&=&P(x_j=k|y=0)\\[1em]
\phi_{k|y=1}&=&P(x_j=k|y=1)\\[1em]
\phi_{y=0}&=&P(y=0)\\[1em]
\phi_{y=1}&=&P(y=1)\\[1em]
P(x,y)&=&\left(\prod_{j=1}^nP(x_j|y)\right)P(y)
\end{eqnarray*}
\]
神经网络
简介
这部分并没有详细讲。
支持向量机
记号的声明
\[
\begin{eqnarray*}
x,W&\in&{\Bbb R}^n\\[1em]
y&\in&\{-1,1\}\\[1em]
b&\in&{\Bbb R}\\[1em]
g(z)&=&\begin{cases}1&z\geq0\\[1em]-1&z<0\end{cases}\\[1em]
h_{W,b}(x)&=&g(W^{\rm T}x+b)
\end{eqnarray*}
\]超平面 \((W,b)\) 与一个样本 \((x^{(i)},y^{(i)})\) 的Functional Margin(函数间隔) \(\hat{\gamma}^{(i)}\) 定义为:
\[
\hat\gamma^{(i)}\xlongequal{def}y^{(i)}\left(W^{\rm T}x+b\right)
\]超平面 \((W,b)\) 与整个训练集的函数间隔 \(\hat{\gamma}\) 定义为:
\[
\hat\gamma\xlongequal{def}\min_i\hat\gamma^{(i)}
\]超平面 \((W,b)\) 与一个样本 \((x^{(i)},y^{(i)})\) 的Geometric Margin(几何间隔) \(\gamma^{(i)}\) 定义为样本 \((x^{(i)},y^{(i)})\) 与超平面 \((W,b)\) 之间的距离,则样本在超平面上的投影为:
\[
x^{(i)}-\frac{W}{||W||}\gamma^{(i)}
\]该点满足:
\[
\begin{eqnarray*}
W^{\rm T}\left(x^{(i)}-\frac{W}{||W||}\gamma^{(i)}\right)+b&=&0\\[1em]
W^{\rm T}x^{(i)}+b&=&\frac{W^{\rm T}W}{||W||}\gamma^{(i)}\\[1em]
W^{\rm T}x^{(i)}+b&=&||W||\gamma^{(i)}\\[1em]
\gamma^{(i)}&=&\left(\frac{W}{||W||}\right)^{\rm T}x^{(i)}+\frac{b}{||W||}\\[1em]
\end{eqnarray*}
\]更一般地(为了考虑分类结果的正误),将几何间隔 \(\hat\gamma^{(i)}\) 定义为:
\[
\gamma^{(i)}\xlongequal{def}y^{(i)}\left[\left(\frac{W}{||W||}\right)^{\rm T}x^{(i)}+\frac{b}{||W||}\right]
\]而一般会将参数 \(||W||\) 归一化使其等于1,此时几何等于函数间隔:
\[
\gamma^{(i)}\xlongequal{def}y^{(i)}\left(W^{\rm T}x+b\right)
\]超平面 \((W,b)\) 与整个训练集的几何间隔 \(\gamma\) 定义为:
\[
\gamma\xlongequal{def}\min_i\gamma^{(i)}
\]学习算法的目的就是最大化几何间隔。
CS229 笔记06的更多相关文章
- 《30天自制操作系统》笔记(06)——CPU的32位模式
<30天自制操作系统>笔记(06)——CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件 ...
- 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)
强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...
- JAVA自学笔记06
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记
机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...
- CS229 笔记08
CS229 笔记08 Kernel 回顾之前的优化问题 原始问题为: \[ \min_{w,b} \frac{1}{2}||w||^2\\[1.5em] {\text{s.t.}}y^{(i)}\le ...
- CS229 笔记07
CS229 笔记07 Optimal Margin Classifier 回顾SVM \[ \begin{eqnarray*} h_{w,b}&=&g(w^{\rm T}x+b)\\[ ...
- CS229 笔记05
CS229 笔记05 生成学习方法 判别学习方法的主要思想是假设属于不同target的样本,服从不同的分布. 例如 \(P(x|y=0) \sim {\scr N}(\mu_1,\sigma_1^2) ...
- CS229 笔记04
CS229 笔记04 Logistic Regression Newton's Method 根据之前的讨论,在Logistic Regression中的一些符号有: \[ \begin{eqnarr ...
- CS229 笔记03
CS229 笔记03 局部加权线性回归 Non-Parametric Learning Algorithm (非参数学习方法) Number of parameters grows with the ...
随机推荐
- 2. Python3 基础入门
Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...
- 这个C#程序真了不起
(1)在2~31中,这个数不能且仅不能被两个相邻数整除 (2)2 123 581 660 200 (2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,19,20,21,22,2 ...
- 共享服务Samba,实现liunx与Windows文件共享
Samba服务程序 是一款SMB协议并有服务器和客户端组成的开源文件共享软件,实现了Linux 与Windows系统之间的文件共享 Samba的配置文件有太多注释的东西,为了方便使用下面的命令,可以更 ...
- 技术分享会:深度学习Deep Leanring
作为宴会的散席,技术老大给大家分享了:Deep Leanring Machine Learning是Deep Learning的一个超集. Deep Leanring,依赖于神经网络,当前的技术优势是 ...
- mysql 列转行处理
CREATE TABLE `table1` ( `id` ) DEFAULT NULL, `name` ) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISA ...
- 正则的replace函数传参使用
<script> var str = "a1ba2b"; var reg = /a.b/g; str = str.replace(reg,function(a,b){ ...
- [转帖]Kubernetes及容器编排的总体介绍【译】
Kubernetes及容器编排的总体介绍[译] 翻译自The New Stack<Kubernetes 生态环境>作者:JANAKIRAM MSV和 KRISHNAN SUBRAMANIA ...
- Thinkphp中import的几个用法详细介绍
下面附上import的几个用法介绍 1.用法一 import('@.Test.Translate');@,表示项目根目录.假定根目录是:App/导入类库的路径是:App/Lib/Test/Transl ...
- Spring之jdbcTemplate:增删改
JdbcTemplate增删改数据操作步骤:1.导入jar包:2.设置数据库信息:3.设置数据源:4.调用jdbcTemplate对象中的方法实现操作 package helloworld.jdbcT ...
- js数组去重五种方法
今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5). 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, ...