神经网络的基础-逻辑回归

练习数据和代码那必须是每一期都有的,文末查看获取方式。

大家好,今天给大家介绍的算法叫做逻辑回归

从名字入手,逻辑回归嘛,它肯定是回归的一种,还记得我们之前讲过的线性回归吧,原理上这两个算法是一样的。那什么叫逻辑呢,在计算机里,逻辑常常被理解为0、1值,也就是说我们得到的结果不能像线性回归一样得到一些任意的值,逻辑回归的结果应该是0或者1,这也就导致逻辑回归最适用的场景是二分类问题

回顾一下线性回归,我们要做的是求一组参数θ和b,然后利用Y=θx + b这个函数根据x的值预测Y的值(θ和b都可以是向量)。现在我们对这个式子进行一个变形,使得预测的结果在0到1之间:

y=h(z)

z=θx + b

这个过程呢相当于先对数据进行线性回归,然后对回归的结果进行一种函数变换使得结果在0-1之间。我们的函数h是这样的:

函数h叫做“sigmoid函数”或者“S型函数”,里面的e叫自然对数,是一个常量,值大约为2.7多,函数长这个样子:

我们可以看到当自变量为0时,该函数的函数值为0.5,自变量大于0时函数值迅速向1靠拢,小于0时函数值迅速向0靠拢。

至于我们为什么要在逻辑回归里选择这个函数,大家不必深究,只需要知道他的样子和公式就可以,实际上这个函数的选择不仅可以满足我们对输出结果取值范围的要求,也为我们计算提供了很多方便。

这样经过一个下线性回归,再把线性回归的结果用sigmoid函数进行处理,得到0-1之间的值,就完成了逻辑回归的过程。当然这样得到的逻辑回归值可能是0-1之间的任意值,对于二分类问题的话,我们把两个类别分别叫做“0类”和“1类”,比较回归值与0.5之间的大小关系,大于0.5的话就把当前样本分类为1类,否则分类结果为0类。

整个的思路和过程就是这样,我们再来看看想要实现这个模型需要哪些东西吧。

再次回顾线性回归,我们在使用数据对模型进行参数确定的时候是定义了一个代价函数L(θ,b),通过最小化L得到的两个参数的拟合值。同样地,我们在逻辑回归里也需要这样一个代价函数L。其实,在今后的算法中大家也可以细心观察,许多算法的思路都是这样的,确定思路,找到一个合适的代价函数L,使用数据去拟合参数使得L取的最小值,最终就得到了结果。

那么逻辑回归的代价函数应该怎么确定呢,先给出答案:

其中m为训练集中样本的个数,yi表示样本i的真实类别(0或者1),hi(z)是我们逻辑回归运算的结果。

我们来分析一下函数L,对于一个样本来说,如果他的真实分类应该是0,也就是yi=0,那么对这个样本来说,Li=- log(1-hi(z))。而对于一个样本yj=1,来说,Lj=- log(hj(z))。

我们来看一下log函数:

a表示底数,我们在文中省略掉了,默认使用的底数是e,也就是前面提到的自然对数。

在我们这里呢,由于h(z)的结果是在0-1之间的,所以log函数的值总是小于0的,这也就是为什么我们在L函数中有一个负号。这样的话对于上述的样本i来说,预测的hi(z)越接近0,Li就越小;同理对样本j,预测的hj(z)越接近1,Lj就越小。这就验证了我们代价函数选择的合理性,同样的,代价函数为什么是这个形状大家完全可以不必考虑,数学上可以有很多解释来支持他,我们只要知道他是合理的、易于计算的一种形式就可以啦。

Ok,现在我们有了代价函数,有了训练数据,下一步该做什么呢?

这里就可以用我们之前讲过的利器-梯度下降法求解。

我们把函数L对θ和b分别求导:

有微积分基础的同学看懂这个应该不难,当然没有的同学也不必纠结,如果只是应用层面的去理解这个算法的话,直接记住结果绝对是最实用的解决措施。

好啦,大家可以自己回顾一下梯度下降算法的主要思路,完成对参数的优化。

最后,对一个待分类的样本,将其属性输入到逻辑回归模型中,将得到的数与0.5进行比较就可以啦!

不论是对代码还是对教程有疑问的话可以随时在后台提问!

为了方便大家进一步的学习,在接下来的几次文章中我会讲述一些机器学习方面需要的数学基础,大家敬请期待!

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张洁的专栏

线性回归的高斯假设

在线性回归问题中,我们定义了损失函数,但是为什么用最小二乘(而不是三次方等)作为损失函数? 我们来尝试解决一个完整的线性回归问题。

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

Coursera吴恩达《神经网络与深度学习》课程笔记(4)-- 浅层神经网络

上节课我们主要介绍了向量化、矩阵计算的方法和python编程的相关技巧。并以逻辑回归为例,将其算法流程包括梯度下降转换为向量化的形式,从而大大提高了程序运算速度...

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

反向传播算法推导-卷积神经网络

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

1080

Keras中神经网络模型的5阶段生命周期

使用Python的Keras库可以很容易创建和评测深度学习神经网络,但是您必须遵循严格的模型生命周期。

2569
来自专栏鸿的学习笔记

LSTMs

由于使用权重矩阵的方式,会对典型RNN可以学习的模式类型存在一些显着的限制。因此,对于称为长短期存储器网络(Long Short-Term Memory net...

901
来自专栏AI研习社

视频 | 手把手教你构建图片分类器,备战 kaggle 大赛!

AI 研习社按:今天为大家带来硅谷深度学习网红 Siraj 的一则教学视频:如何从零开始构建一个图像分类器来对猫和狗进行分类。(内心OS:终于要开始图像部分了!...

3264
来自专栏AI科技大本营的专栏

深度学习入门必须理解这25个概念

1)神经元(Neuron):就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们...

1083
来自专栏YG小书屋

深度学习之Logistic Regression

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

RNN入门与实践

作者:叶虎 编辑:黄俊嘉 引言 递归神经网络(Recurrent Neural Network, RNN)是神经网络家族的重要成员,而且也是深度学习领域中的得...

3007
来自专栏深度学习自然语言处理

详解循环神经网络RNN(理论篇)

让我们从一个问题开始,你能理解下面这句英文的意思吗?“working love learning we on deep”,答案显然是无法理解。那么下面这个句子呢...

903

扫码关注云+社区