逻辑回归算法背后的数学


看完Andrew Ng老师的机器学习公开课后,对于逻辑回归部分,打算写篇学习笔记记录总结一下,也和大家共同分享。


1

基本思能


逻辑回归(Logistic Regression)和线性回归(Linear Regression)的模型和原理是相似的(哈哈,给我的感觉就像是街霸游戏里的Ryu和Ken),按照我的理解,算法大致可以分为以下步骤:


(1)构造一个合适的预测函数,假设记为h函数。该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程非常关键,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式(走势),比如是线性函数还是非线性函数。(例如y=x,y=x2,y=x3…… 等形式的函数)

(2)构造一个损失函数(loss function)并合成一个代价函数(cost function)。损失函数是表示每一个样本上,预测的输出h与训练数据类别(即真实值)y之间的偏差,可以是二者之间的差(h-y),也可以是(h-y)2(貌似这种常用一点,避免了可能出现负数的情况)或者是其他的形式。综合考虑所有训练数据的“损失”,将其求和或者求平均,就变成了代价函数,记为J(θ)函数(这里的参数θ是指预测函数里面的系数)

(3)寻找代价函数最小值并确定参数。显然,我们希望J(θ)函数的值越小越好,因为这表示我们预测的和实际值越小了,预测函数的表现效果就越好,所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,这里要提到的是梯度下降法(Gradient Descent),当然也有其他优秀的算法。



2

推导过程

1

 构造预测函数


逻辑回归是一种分类方法,用于两分类问题(即输出只有两种,表示为0和1)。根据上面步骤,需要先找到一个预测函数hθ(x),在这里,我们假设是线性边界的情况,表示形式为:



因为逻辑回归的输出必须是两个值,所以要利用Logistic函数(或称为Sigmoid函数),把输出控制在0到1之间,函数形式为:



它的函数图像为:



结合这两个函数,我们可以得到:



好了,到了这里我们已经定义了一个预测函数,应当注意,hθ(x)的输出值的含义是:它表示结果取1的概率。

 


2

构造损失函数和代价函数


按照直观思想,或是参照线性回归的代价函数,我们可以写出以下的代价函数:


这个代价函数在线性回归里表现的很好,但是用于逻辑回归的话,会变成参数θ的非凸函数。也就是说,假如我们把用在线性回归那一套用在逻辑回归上的话,那么可能会出现下面的情况:



即函数会出现多个局部最优解,这样的函数就是非凸函数。显然,如果我们使用梯度下降法求解的话,往往不能保证它能收敛到全局最小值(因为算法终止条件是导数为0或接近0)。相应地,我们希望代价函数可以是一个凸函数,图像是这样的:



这样一来,我们一旦使用梯度下降法的时候就可以保证能收敛到全局最优解了。之所以会出现非凸函数的问题,是因为在逻辑回归里引入了Sigmoid函数,但它作用在上面的那个J(θ)后,就会出现多个局部最小值的情况。

为了解决这个问题,在极大似然法的基础上,人们提出了运用在逻辑回归的损失函数是:


整合成一个式子就是:



所以最后代价函数的形式是:



为了帮助理解这个cost函数,我们使用Python的matplotlib画一下两种情况的相关图像。


y=1时:


y=0时:

由此我们可以看出,无论是y=0还是y=1的情况,当我们的预测值越接近真实值时,误差会越来越小,当离真实值越远时,误差便越来越大,趋于无穷。结合图像一起看,应该不难理解这个函数了。


3

 求解代价函数最小值和参数


在这里,我们用到的是梯度下降法。我们这里只讨论系数是一维的情况,主要是考虑到比较容易理解,也容易用图像表达出来。其实,假如系数是多维的话,核心的思想也是一样的,说白了就是求得导数(多维时就是偏导数)为0(或者设置一个阈值接近0)即可。


接下来就来具体讨论一下。

首先看一下梯度下降法的模式,它的本尊长这样:



其中θ是我们要求解的系数,α是学习步长。接下来看一下为什么可以用这一条公式来求解最小值(假设此时代价函数已经是凸函数)。


上面说过,我们只讨论最简单的一种情况,即一维系数。我们分两种情况来看一下。

第一种情况,假设我们的θ初始值大于最优解,那么我们可以得到这样的图像:


 


这张图像很好地解释了这个公式的可行性:如果此时的θ在最优解的右边,我们对其进行求导,显然此刻导数为正,那么根据上面的公式,就会减小θ,使其向最优解的方向靠拢。


第二种情况,θ初始值小于最优解,那么我们可以得到这样的图像:



此时的θ在最优解的左边,我们对其进行求导,显然此刻导数为负,那么根据公式,就会增大θ,使其向最优解的方向靠拢。


当然,严格来讲还有第三种,就是我们初始化参数的时候,可以刚刚好满足了我们的要求,然而这个通常不大可能,运气得多好啊,哈哈。。。


所以,这就是梯度下降法的核心思想(看到这里有没有感觉其实也不是很难),我们接下来把它运用到逻辑回归的代价函数里,可以得到这样一个式子:



这就是逻辑回归中梯度下降更新系数θ的公式了。


写到这里已经快接近尾声了,在梯度下降法中,还要一点点小问题,就是关于步长α的取值,需要注意的是,当α过大时,可能会不小心就错过了最优解,因为步子迈得大了;α过小时,算法在收敛上会变慢,因为每次只前进那么一点点。所以这个貌似要看经验,并且一般都会试一下好几个不同的步长α来检验算法,避免偶然性。

对于梯度下降而言,因为每次要涉及计算到全部的样本,一旦你的样本数多,拟合的参数多,并且步长设置的也小了一点,那么算法会计算很久。于是现在也有其他的算法用于计算类似的问题,各位小伙伴有兴趣也可以了解一下。


3

小结


这一篇介绍了逻辑回归背后的数学原理,篇幅比较长,可能读起来会比较久,因为大多是公式和原理,所以需要慢慢看,仔细理解。当然,里面还是省略了一些更为仔细的推导部分,主要是导数(偏导数)推导方面的,但基本不会影响到理解这个算法的数学原理。另外,可能有些地方写得还不够透彻,或者写得还不够好,又或者是有出现错误的地方,请大家能多多包涵,多多指教,共同学习,共同进步!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置DNS辅助服务器:DNS系列之四

配置DNS辅助服务器在前面的博文中,我们介绍了如何在DNS服务器中创建常用的DNS记录,本文中我们要为大家介绍如何配置DNS的辅助服务器,同时也要介绍一下和辅助区域类似的存根区域。DNS辅助服务器是一种容错设计,考虑的是一旦DNS主服…

笑出腹肌的程序猿搞笑趣图

客户需求 vs 最终产品 requirements vs. implementation 程序员的一天 The Programmers life 寂寞的时候干什么? 写程序写程序写程序 失恋的时候干什么? 写程序写程序写程序 发骚的时候干什么? 写程序写程序写程序 剩下的时候干什么&#xff…

Java图形 图像与多媒体基础,十一. 图形、图像与多媒体1.绘图基础

要在平面上显示文字和绘图,首先要确定一个平面坐标系。Java语言约定,显示屏上一个长方形区域为程序绘图区域,坐标原点(0,0)位于整个区域的左上角。一个坐标点(x,y)对应屏幕窗口中的一个像素,是整数。如图12.1所示。窗口大小由超文…

程序员快来看!经典代码替你省去多少时间?

作为一名程序员,每天坐在电脑前敲敲打打那些重复重复再重复的语句,习惯性的思维总是被套进去,有些时候很容易把简单的事情想复杂了!不过,我们反其道而行之,新手们只要是把下面的语句牢记,很多情…

php中sql删除,学习猿地-php sql删除语句是什么

php sql删除语句是“DELETE FROM”,该语句用于从数据库表中删除行,其语法是“DELETE FROM table_name WHERE column_name some_value”。PHP MySQL Delete FromDELETE FROM 语句用于从数据库表中删除行。删除数据库中的数据DELETE FROM 语句用于从数据库…

一张图看懂新一代人工智能知识体系

关于人工智能的前世今生、内涵意义,下图可以说是相当清楚全面了。人工智能是未来一大热点,连腾讯、阿里、百度这些科技公司都各自成立了人工智能实验室,如果你也看好这一趋势,不妨把这张图收藏起来慢慢看。 来源:智能…

android java 面试题,Android java 高级面试题库

(一) java基础面试知识点1,java中和equals和hashCode的区别?1、“”是运算符,用来比较两个值、两个对象的内存地址是否相等。2、“equals()”:equals是Object类的方法,默认情况下比较两个对象是否是同一个对象&#xf…

促进新一代人工智能产业发展三年行动计划_工信部新一代人工智能产业创新重点揭榜任务——中国联通智能化网络基础设施及开放平台启动会成功召开...

4月2日,工信部新一代人工智能产业创新重点揭榜任务(下称“人工智能重点揭榜任务”)——中国联通智能化网络基础设施及开放平台在线启动会成功召开。来自中国联通网络技术研究院、联通集团智能网络中心网络AI中心、中国联通智能城市研究院、广东联通、中讯邮电咨询设…

数学家破解婚恋网站配对程序,90天找到灵魂伴侣

找个合适或者善良的另一半比什么都强,谁说搞技术的情商低?他们可以靠高超的技能来弥补,照样能找到优秀的灵魂伴侣! 凌晨三点,在加州大学洛杉矶分校(UCLA)数学系大楼五楼的一个拥挤小隔间里&…

Appointment over SMS on Windows Mobile

设想这样一个场景,早上出门的时候,手机里一个Appointment提醒弹了出来,恰好昨天还没有来得及通知参与该会议的几个重要成员,而这时候身边又没有可以接入的Wi-Fi。这时,给成员们发送一条短信提醒一下,也算是…

oracle grid需要安装,Oracle 11g Grid for Linux安装指南

Oracle 11g Grid for Linux安装指南1、创建oracle用户及用户组groupadd oinstallgroupadd dbauseradd -g oinstall -G dba -m oracle设置oracle用户的口令:passwd oracle我这里设置为oracle2、创建相关目录mkdir -p /u01chown -R oracle.oinstall /u013、修改oracle用户环境变量…

uc3842开关电源电路图_UC3842 的原理及应用详解 (上)

▲ 点击上方 21Dianyuan 关注我们本文是 21Dianyuan 社区 原创 技术文章,作者伟林电源,感谢作者的辛苦付出。 UC3842内部工作原理图1 示出了 UC3842 内部框图和引脚图。图1 UC3842 内部原理框图UC3842 采用固定工作频率脉冲宽度可控调制方式,…

谁的代码注释我都不服,就服你的!

什么是代码注释,如何在代码中添加注释,相信每一位了解编程的人并不陌生。注释里往往有很多有趣的脑洞和「真心话」。今天我们一起去看看那些6到飞起,被玩坏了的幽默注释吧。 信息量太大的注释系列—— 01 你造么?我是菜鸟&#xf…

墨迹天气语音包_小米有品“智能AI翻译机”评测,还内置了语音助手,随身WiFi功能...

出国旅游时,我们需要面对的最大问题应该就是言语沟通了,毕竟想要掌握一门新的语言不是什么容易的事情。近期,小米科技旗下的小米有品平台上线了一款新品:Langogo智能AI翻译机,对于想出国游玩或工作的朋友们而言&#x…

如何解读决策树和随机森林的内部工作机制?

随机森林在过去几年里得到了蓬勃的发展。它是一种非线性的基于树的模型,往往可以得到准确的结果。但是,随机森林的工作过程大都处于黑箱状态,往往难以解读和完全理解。近日,Pivotal Engineering Journal 网站发表了一篇文章&#…

sql datetime 排序_超全的数据库建表/SQL/索引规范,建议贴在工位上!

作者:浮雷来源:juejin.im/post/6871969929365553165「背景」因为工作岗位的原因,负责制定了关于后端组数据库的规约规范,作为所有产品线的规范,历经几版的修改,最终形成下边的文本。规范在整个后端执行也有…

有了它,从此成为自带BGM的主角~

有了它 自带BGM不是事儿 这还是一篇卖货的文章 welcome 炎热的夏天,一场雷阵雨也浇灭不了的躁动,何不来点音乐啤酒,点燃内心的蠢蠢欲动, 放肆的音乐节奏,张扬的夏日心情。 然而单独用手机音乐播放器听,单薄…

oracle导入视图报错,exp/imp 报错处理(EXP-00003 / IMP-00019 / IMP-00058)

MOS 文章参考OERR: EXP 3 "no storage definition found for segment(%lu, %lu)" (文档 ID 21599.1)EXP-00003 When Exporting From 9.2.0.5.0 Or Any Higher Release With A Pre-9.2.0.5.0 Export Client (文档 ID 274076.1)一、EXP 导出报错(数据库版本 11.2.0.4.0…

重磅大礼!100本《机器学习》by周志华,免费送!

我 相 信 这 么 优秀 的 你 已 经 置 顶 了 我 亲爱的小伙伴们~ 我可想死你们啦! 福利小编再次上线 继续给大家送温暖~ 100本! 《机器学习》 by 周志华 内容简介 机器学习是计算机科学与人工智能的重要分支领域. 本书作为该领域的入门教材&a…

动态箭头gif图标_别以为只有专业人士才能做出酷炫的#动态跑分图#

如果经常关注数据可视化的话,你可能会发现一种流行的动态图表形式——动态跑分图(bar chart race)。这种动态图表的精髓是,通过数据范围的变化(通常是以日期为主),以条形图展现各数据序列间的关…