机器学习算法之逻辑回归(一)

标题:

分类问题

二元分类

Sigmoid函数

算法导出

梯度上升

我们曾经介绍过,机器学习中最常见的问题有两大类,一类是回归问题,一类是分类问题。回归问题我们在前面关于线性回归的讨论中想必已经初步了解了,这一次我们就来看一看在监督学习中更为常见的分类问题。

分类问题

分类问题其实和回归问题很相似,但是它的输出值y值(也即是说我们打算预测的值)只是少量的一些离散值,像是如果我们只是想要机器通过“观察”某个西瓜的一些特征从而来告诉我们这个西瓜是好是坏,那么我们就可以设输出值y为0表示坏瓜,1表示好瓜,那么判断这个西瓜好坏的过程其实就是一个分类问题,它的输出值就是离散的(仅为0或者1) 。

二元分类

而分类问题中最简单的是二元分类,顾名思义,就是输出值只有两个,就像上面那个例子,结果只有好瓜和坏瓜,不会输出“不好不坏的”这种莫名其妙的瓜。

在二元分类中,我们常常用0和1来限定y值,继续套用上面那个分瓜的例子,我们假设x(i)表示西瓜的特征,那么y就被称作西瓜的标签(也就是类别),y的0值往往被称作西瓜的“负类”,1值便称作西瓜的“正类”。有时候我们还会用“+”和“-”来代替1和0,像是在图上的时候,这样会表现的更清楚。

Sigmoid函数

既然分类问题和回归问题的区别仅仅是输出值不同,那么线性回归是不是也能拿来当作分类问题的模型使用呢?就像是那个西瓜,我们如果先用线性回归学习一批好瓜和坏瓜的特征,然后似乎就可以用训练好的模型来预测一个新出现的西瓜是更接近好瓜还是坏瓜了。

这样做确实可以,但得到的结果往往非常不理想。既然我们已经很清楚的知道y要么是0要么是1,就没有必要再用这种吃力不讨好的方式去强行拟合一条回归曲线。但“回归”的假设函数hθ(x)的原理是没有毛病的,因此,我们只需要对原来的线性回归的假设函数做出一些修改:

就可以让原来的“回归”曲线变成一条分类曲线。

这里的也被叫做逻辑函数Sigmoid函数,它的图像如下:

这个时候g(z)在z∞的时候趋向于1,在z−∞的时候趋向于0而且除了g(z),它上面的函数h(x)也被限制在区间(0,1)之间取值。这个sigmoid函数是一个非常神奇的函数,它不仅把输出y映射在了0,1之内,还是一个非常符合“自然”的函数,因为它默认了样本服从高斯分布——太详细的内容我们在之后的“广义生成模型”中讨论,现在讲这个就跑的太远啦。目前的话,我们就先姑且认为我们通过一个神奇的函数把线性回归变成了用于解决分类问题的逻辑回归。

像之前一样,我们让x=1,可以得到:

然后,又因为sigmoid函数拥有的优良求导性质:

我们就可以利用这个函数来拟合逻辑回归模型了。

算法导出

根据我们对线性回归应用的在一系列假设的情况下求极大似然的方式,我们可以赋予我们的分类模型一系列概率假设,然后通过最大似然来估计拟合参数。假设:

当然,这个两个式子可以合为:

假设训练集中的m个训练样本是相互独立的,我们可以这样写出参数的似然估计:

同线性回归中的运算方式一样,我们取对数似然函数:

梯度上升

为了让l(θ)取到最大值,我们这次使用梯度上升法,它与梯度下降一样,只不过方向θ要增大,因此,θ的梯度更新方程为:

这个方程中我们使用了加号(线性回归中的梯度下降我们用的是负号),因为我们想要求的是函数的最大值。(这也是它被称为梯度上升的原因)。

假设训练集中只有一个训练样本(x,y),我们对l(θ)求导以此来获得随机梯度上升的规则:

然后,我们将得出的结果应用到随机梯度上升的θ更新公式:

若是应用到批梯度上升则是:

将他们和之前的最小均方法里面的梯度下降的θ的更新公式作比较,会发现二者一模一样。但是,事实上这里的hθ(x)已经变为关于θTx(i)的非线性函数(它的函数式和线性回归地h(x)是不一样的),所以这与我们的线性回归并不是同一个算法。

如果你还关注过其它的一些关于机器学习的消息的话,你会觉得这个函数很眼熟,因为这个函数,事实上也是大名鼎鼎的神经网络中单个神经元常用的激励函数。

资料来源:

CS99 Machine Learning Course Materials Lecture notes1

(http://cs229.stanford.edu/notes/cs229-notes1.pdf)

线性回归的概率解释、局部加权回归、逻辑回归

(http://nbviewer.jupyter.org/github/zlotus/notes-LSJU-machine-learning/blob/master/chapter03.ipynb)

周志华著.机器学习, 清华大学出版社

李航著.统计学习方法, 清华大学出版社

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Brian

深度学习笔记-深度学习实战

2426
来自专栏SIGAI学习与实践平台

基于内容的图像检索技术综述-CNN方法

传统方法在图像检索技术上一直表现平平。比如传统方法常用的SIFT特征,它对一定程度内的缩放、平移、旋转、视角改变、亮度调整等畸变,都具有不变性,是当时最重要的图...

2525
来自专栏红色石头的机器学习之路

台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine

关于台湾大学林轩田老师的《机器学习基石》课程,我们已经总结了16节课的笔记。这里附上基石第一节课的博客地址: 台湾大学林轩田机器学习基石课程学习笔记1 – Th...

2640
来自专栏人工智能头条

人脸识别技术大总结1——Face Detection &Alignment

2485
来自专栏AI科技评论

张钹、朱军团队最新论文:深度隐式模型+概率图模型=Graphical-GAN

AI 科技评论按:近日张钹院士和朱军教授团队在 arXiv 上贴出一篇论文《Graphical Generative Adversarial Networks》...

970
来自专栏iOSDevLog

人工智能-深度学习

1622
来自专栏鸿的学习笔记

分类问题中的维度诅咒(下)

换句话说,如果可用训练数据的数量是固定的,我们继续添加维度的话,则会发生过拟合。另一方面,如果我们不断增加维度,训练数据的数量需要快速增长以保持相同的覆盖,并避...

1251
来自专栏小鹏的专栏

trick—Data Augmentation

海康威视经验 ?         数据增强对最后的识别性能和泛化能力都有着非常重要的作用。我们使用下面这些数据增强方法。第一,对颜色的数据增强,包括色彩的饱和...

5226
来自专栏PPV课数据科学社区

机器学习常见的算法面试题总结

摘要:包含机器学习常见算法公式、原理和优缺点比较,简介清洗,适合作为面试和考试前速查和记忆使用。 朴素贝叶斯 P(A∩B)=P(A)*P(B|A)=P(B)*P...

1.2K5
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 10 - NN基本功:反向传播的推导

上一篇 9 “驱魔”之反向传播大法引出了反向传播算法——神经网络的引擎,并在最后窥探了它的全貌。本篇将详细的讨论反向传播各方面的细节。尽管它被TensorFl...

4226

扫码关注云+社区

领取腾讯云代金券