线性回归回顾与logistic回归 | 机器学习笔记

01 再看线性回归

之前我们选择线性回归的时候,只是认为那些数据看上去很符合线性的样子,选择最小平方损失函数的时候,也是直接提出来的,没有考虑过为什么会是这个样子。接下来就从概率的角度来解释这些问题。

首先假设目标变量和输入与下面这个方程相关:

其中\varepsilon^{(i)} 是一个误差项(error term),来捕捉一些我们建模的时候故意或者无意忽略但是对于预测有影响的因素。有时候也可以作为一个随机的噪声(random noise)。“误差项(噪声项)”的引入允许我们获得参数值和预测的置信程度。

我们进一步假设\varepsilon^{(i)} 独立同分布且服从均值为0,方差为\sigma ^{2} 高斯分布,那么我们能够把这个假设写为\varepsilon^{(i)}\thicksim N(0,\sigma^{2}) ,即\varepsilon^{(i)} 的概率密度是:

那么根据高斯分布的性质,这时候的输出y也是一个随机变量。且有

,即:

这里提示一下,很重要的一个记号,在论文里面经常看见。

表示θ做参数,随机变量x^{(i)}y^{(i)} 的分布。 这里再提示一下,连续随机变量密度函数上的取值并不代表概率。连续随机变量在每一点上面的概率都是0。这是基础知识,别忘了。要是密度函数上面A点的值很大,B点的值很小。只能够说明在A点附近的可能性很大。也就是说,虽然在某点上的概率是多少是错的,但是我们还是需要在密度函数上面找最值,因为这个点“附近”的概率是最大的。

一般来说,我们感兴趣的并不是单个数据点的似然值,而是整个数据集上面所有点的似然值。要是有m个数据点,我们感兴趣的就是他们的联合条件密度,且因为各自独立,有:

上面那个记号就是联合条件密度的记号,不要在其中想太多。

写成向量更紧缩的形式:p(y|X;\theta) 其中,

同样也仅仅是写的更加简洁一点,也别在上面想太多。 令:

我们把这个函数叫做似然函数(likelihood function),是以θ为变量的函数。

通过前面的原理可以知道

本质就是把之前的几个公式代进去了而已,不用解释了。

这个公式的意思也很容易理解。怎么选择θ使得整个似然函数有最大的值,也就是让\theta^{T}x^{(i)} 更加接近于y^{(i)} 。这个地方有点难想,多理解几遍。

学过概率论的都知道,接下来要对数化一下,使得方程更加容易解出来。没有什么技巧,暴力推导如下:

我们的目的是要大化L(θ),那么只需要最小化

这个函数就行了。

对于这个函数是不是有点眼熟呢?就是之前的最小均方误差了。

因为这里是

这种形式,刚好和之前的是反的。所以在用梯度法求的时候,就不是梯度下降法了,而是梯度上升法。

到这里,对于线性回归的回顾就到这里了,这里引出了概率的方法来做机器学习的推导,对于理解下面的logistic的推导是有帮助的。

02

Logistic回归

1.背景

logistic回归是非常进经典的分类的方法,分类问题在第一个笔记有详细的介绍。他和回归的区别就是他的y值是离散的值,比如有3个类,分别是0类,1类和2类这样子。

我们这里讨论的分类问题主要是2分类问题,就是最后的结果只有两类,姑且定做0类(负类)和1类(正类)。那么y的值就为0或者1。

把hypotheses h_{\theta}(x) 改写成另外的形式

其中

这个函数就叫做logistic函数或者sigmoid函数

当的时候,sigmoid函数值为0.5.然后随着z的值越大,函数越趋向于1;随着x的值越小,x的值越趋向于0.

因为这样,那么当一个数据丢进sigmoid函数中得到的值大于0.5,那么就可以把它归为1类.反之,当得到的值小于0.5,那么就把它归为0类.

最终,不管你丢进去什么值,最终的结果就会在0和1之间。

然后这个函数的导数可以很容易推得

这个性质很重要,不管是在计算里面还是在证明里面。

2.梯度下降学习

首先我们假设

这个限制表示有且只会有两个结果。 上面的可以写为

假设我们提供的训练的例子都是独立同分布的。我们能够写出似然函数为:

对数似然函数为:

之前我们说过,我们想要得到参数的表达式,需要最大化(对数)似然函数。

如果你数学足够好的话,你也许能够手推上面这个似然函数的最值。但是,这几乎是没有意义的。

我们可以使用梯度上升的方法来逼近近似,这是计算机容易实现的,扩展性比手算要好的方式。

那么问题就转化为怎么算出某个\theta_{j} 的偏导。

暴力手推:

在上面的推导中,用到了前面提到的那个logistic函数导数的公式。 最终的梯度更新公式为

这个更新公式和线性回归的公式是差不多的。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

李理:从Image Caption Generation理解深度学习(part II)

1754
来自专栏用户2442861的专栏

聚类算法原理及python实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

594
来自专栏机器学习算法全栈工程师

你知道词袋模型吗?

词袋模型是一种在使用机器学习算法建模文本时表示文本数据的方式; 易于理解和实现,并且在语言建模和文档分类等问题上取得了巨大成功。

843
来自专栏企鹅号快讯

机器学习——神经网络代价函数、反向传播、梯度检验、随机初始化

机器学习(十二) ——神经网络代价函数、反向传播、梯度检验、随机初始化 (原创内容,转载请注明来源,谢谢) 一、代价函数 同其他算法一样,为了获得最优化的神经网...

2327
来自专栏专知

【干货】走进神经网络:直观地了解神经网络工作机制

【导读】1月4日,Mateusz Dziubek发布了一篇基础的介绍神经网络的博文,作者用一种直观的方法来解释神经网络以及其学习过程,作者首先探讨了导致神经网络...

35513
来自专栏ATYUN订阅号

【学术】如何在神经网络中选择正确的激活函数

在神经网络中,激活函数是必须选择的众多参数之一,以通过神经网络获得最优的成果和性能。 在这篇文章中,我将假设你已经理解了神经网络工作的基本原理,并将详细介绍涉及...

33710
来自专栏AI科技评论

干货 | CVPR Spotlight论文:当零示例学习遇上网络数据

AI 科技评论按:本文由美国莱斯大学博士后牛力为 AI 科技评论提供的独家稿件,未经许可不得转载。

803
来自专栏大数据挖掘DT机器学习

你看到的最直白清晰的,神经网络中的反向传播法讲解

最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的...

2845
来自专栏ATYUN订阅号

【行业】2018年你应该知道的十大机器学习算法

本文简要介绍一些最常用的机器学习算法,没有代码,没有抽象理论,只有图片和一些如何使用它们的例子。

984
来自专栏决胜机器学习

循环神经网络(二) ——GRU、LSTM、BRNN、deep RNN

循环神经网络(二) ——GRU、LSTM、BRNN、deep RNN (原创内容,转载请注明来源,谢谢) 一、概述 本文主要讲述RNN的其他结构,这些结构比RN...

3824

扫描关注云+社区