吴恩达“机器学习”——学习笔记五

朴素贝叶斯算法(Naive Bayes)(续学习笔记四)

两个朴素贝叶斯的变化版本

x_i可以取多个值,即p(x_i|y)是符合多项式分布的,不是符合伯努利分布的。其他的与符合伯努利的情况一样。(同时也提供一种思路将连续型变量变成离散型的,比如说房间的面积可以进行离散分类,然后运用这个朴素贝叶斯算法的变形)。

第二个朴素贝叶斯的变化形式专门用来处理文本文档,即对序列进行分类,被称为朴素贝叶斯的事件模型(event model)。这将使用一种不同的方式将邮件转化为特征向量。

之前的特征向量是:向量维度是字典的大小,此向量将会把邮件中出现的单词在字典中标记为1,未出现的单词标记为0。

现在将特征向量进行变化:向量维度是邮件的长度,向量中的每一个元素对应用邮件中的对应位置的单词。加入邮件是‘a nips’。假如a在字典中的位置是第一位,nips在字典中的位置是3500位。那么x_0=1,x_1=3500。对应的生成模型就变成了,n代表邮件单词的数量,xi服从多项式分布。对应的参数为φy = p(y),φi|y=1 = p(x_ j = i|y = 1) (for any j),φi|y=0 = p(x_ j = i|y = 0)。给出训练集合,可以求得参数的最大似然估计:

根据laplace平滑,可以得到,

神经网络(neural network)

可以生成非线性分类器。(生成学习算法中的高斯判别和朴素贝叶斯都是和logistics函数相关的线性分类器)

将特征先传递到中间层的sigmoid单元,在将中间层的sigmoid单元传递到输出层的sigmoid单元中。

对应的函数以及成本可以写成:

 

在神经网络中使用梯度下降算法,称为反向传播。

支持向量机(support vector machine)

另外一种可以生成非线性分类器的算法。

先进行线性分类器的说明。

考虑logistics回归,使用的是sigmoid函数,h>0.5时,我们就认为y为1,或者说,theta^T(x)>0时,我们就认为y为1。所以,如果theta^T(x)远大于0,我们就可以坚信y=1,如果theta^T(x)远小于0,我们就可以坚信y=0。这可以从sigmo图像中很容易得到。可以根据theta^T(x)=0,来找出一条边界线,距离这条边界线越远,我们就对它的预测值更有信心,离这条线越近,我们对它的预测值的信心就会减少。

在SVM中,改变了一些约束:y的取值变成了-1和1,不再是0与1了;预测值的参数也变成了w和b了g也不再是sigmoid函数了,而是g(z) = 1 if z ≥ 0, and g(z) = ?1 otherwise。

w^Tx+b与之前的θ^Tx本质上是一样的,只不过之前假设的是x_0等于1。w=[θ1 . . . θn] ^T,b=θ0。

函数间隔

给定训练样本,我们定义函数间隔为

如果y^(i)=1,为了让预测更加正确,应该要求w^Tx+b为一个很大的正数,如果y^(i)=-1,我们应该要求w^Tx+b为一个很小的负数。我们认为y^ (i) (w T x + b) > 0,那么我们的预测就是正确的。

如果有多个训练样本,就定义

即离分界线最近的一种情况,即最坏的情况。现在就转化为在最坏的情况下,使得函数间隔最大。但是,如果使得w和b同时加倍,此时的边界线不变,但是函数间隔会随着w和b的加倍而加倍,但是这种大的函数间隔是没什么用的。所以可以进行正规化处理解决这个问题。

几何间隔

A(x^(i),y^(i)),w是分界线的法向量,gamma是A与B之间的距离。那么B点就有同时B点存在所以可以得到更一般的,我们可以写成所以,几何间距是一个化归处理的函数间距。当有多个样本时,我们也定义

最大间隔分类器

SVM的前身

即选择gamma,w,b使得几何间隔最大(在满足 y (i) (w T x (i) + b) ≥ γ, i = 1, . . . , m ||w|| = 1.的条件下)。

原文地址:https://www.cnblogs.com/xxp17457741/p/8367571.html

时间: 2024-08-17 01:24:24

吴恩达“机器学习”——学习笔记五的相关文章

吴恩达“机器学习”——学习笔记二

定义一些名词 欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数. 过拟合(overfitting):使用过量的特征集合,使模型过于复杂. 参数学习算法(parametric learning algorithms):用固定的参数进行数据的拟合.比如线性回归. 非参数学习算法(non-parametric learning algorithms):使用的参数随着训练样本的增多而增多. 局部加权回归(locally weighted r

吴恩达“机器学习”——学习笔记四

生成学习算法 判别算法:进行P(y|x)的计算或者是进行h(x)(其中h只会是0与1)的计算. 生成学习算法:进行P(x|y)的建模,即给定类的条件下,某种特征显示的结果.同时也会对P(y)进行建模. 根据贝叶斯公式,我们可以得到,其中p(x) = p(x|y = 1)p(y = 1) + p(x|y = 0)p(y = 0).实际上,如果我们计算P(y|x)进行预测,我们不必计算分母的值,因为x是独立于y的,所以argmax是当式子取到最大值时,对应参数的取值. 高斯判别分析 多元高斯分布 如

吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(二)

经典网络 LeNet-5 AlexNet VGG Ng介绍了上述三个在计算机视觉中的经典网络.网络深度逐渐增加,训练的参数数量也骤增.AlexNet大约6000万参数,VGG大约上亿参数. 从中我们可以学习到: 随着网络深度增加,模型的效果能够提升. 另外,VGG网络虽然很深,但是其结构比较规整.每经过一次池化层(过滤器大小为2,步长为2),图像的长度和宽度折半:每经过一次卷积层,输出数据的channel数量加倍,即卷积层中过滤器(filter)的数量. 残差网络(ResNet) 由于存在梯度消

吴恩达深度学习笔记(deeplearning.ai)之循环神经网络(RNN)(一)

1. RNN 首先思考这样一个问题:在处理序列学习问题时,为什么不使用标准的神经网络(建立多个隐藏层得到最终的输出)解决,而是提出了RNN这一新概念? 标准神经网络如下图所示: 标准神经网络在解决序列问题时,存在两个问题: 难以解决每个训练样例子输入输出长度不同的情况,因为序列的长度代表着输入层.输出层的维度,不可能每训练一个样例就改变一次网络结构. 标准的神经网络不能共享从文本不同位置上学到的特征.举例说明:如果Harry作为人名位于一个训练例子中的第一个位置,而当Harry出现在其他例子的不

吴恩达 深度学习笔记+作业 (一)

1.1.2 Building basic functions with numpy 1.1.2.2 numpy.exp, sigmoid, sigmoid gradient import numpy as np def sigmoid(x): s = 1/(1+np.exp(-x)) return s # 设sigmoid为s, s' = s*(1-s) def sigmoid_derivative(x): s = 1/(1+np.exp(-x)) ds = s*(1-s) return ds

吴恩达深度学习:1.2什么是神经网络

写在开头的话,本博客内容全部来自吴恩达深度学习教学课程,插图均来自吴恩达课件,在此说明来处,不喜勿喷! 一.什么是神经网络 1.我们从一个房屋加个预测的例子开始,假设有一个6间房间的数据集,已知房屋的面积单位是平方米或者平方英尺,已知房屋加个,现在想要找到一个函数,根据房屋面积来预测房屋价格的函数.如果有机器学习的只是,可以用线性回归得到这样的一条直线: 但是我们知道,价格永远不可能为一个负值,所以用一个直线的线性回归进行预测不太合适,我们可以在size轴将预测线弯曲一点,让他结束于0,我们所要

【吴恩达机器学习】学习笔记——2.1单变量线性回归算法

1 回顾1.1 监督学习定义:给定正确答案的机器学习算法分类:(1)回归算法:预测连续值的输出,如房价的预测(2)分类算法:离散值的输出,如判断患病是否为某种癌症1.2 非监督学习定义:不给定数据的信息的情况下,分析数据之间的关系.聚类算法:将数据集中属性相似的数据点划分为一类. 2 单变量线性回归算法2.1 符号定义m = 训练样本的数量x = 输入变量y = 输出变量2.2 工作方式训练集通过学习算法生成线性回归函数hypothesis  hθ(x) = θ0 + θ1x 原文地址:http

【吴恩达机器学习】学习笔记——梯度下降

梯度下降算法能够帮助我们快速得到代价函数的最小值 算法思路: 以某一参数为起始点 寻找下一个参数使得代价函数的值减小,直到得到局部最小值 梯度下降算法: 重复下式直至收敛,其中α为学习速率,表示找到局部最小值的速率 并且各参数θ0,...,θn必须同时更新,即所有的θj值全部都计算得到新值之后才将参数值代入到代价函数中 数学原理:沿梯度方向,函数变化率/方向导数最大 原文地址:https://www.cnblogs.com/JJJanepp/p/8454599.html

【吴恩达机器学习】学习笔记——1.5无监督学习

1 无监督学习:在不知道数据点的含义的情况下,从一个数据集中找出数据点的结构关系. 2 聚类算法:相同属性的数据点会集中分布,聚集在一起,聚类算法将数据集分成不同的聚类.也就是说,机器不知道这些数据点具体是什么属性,到底是干什么的,但是可以将具有相同属性的数据点归为一类. 3 无监督学习的应用: 大型计算机集群:找出趋于协同工作的机器,将其放在一起将提高效率 社交网络分析:找出哪些人之间是好朋友的关系,哪些仅仅是认识 市场分割:将客户分类,找出细分市场,从而更有效的进行销售 天文数据分析:星系是