当前位置: 首页 > news >正文

机器学习算法详解3:逻辑回归

机器学习算法详解3:逻辑回归

前言

​ 本系列主要对机器学习上算法的原理进行解读,给大家分享一下我的观点和总结。

本篇前言

​ 本篇对逻辑回归的算法原理进行解读。

目录结构

文章目录

    • 机器学习算法详解3:逻辑回归
      • 1. 引子
      • 2. sigmoid函数
      • 3. 原理推导
      • 4. 交叉熵损失函数推导
        • 4.1 信息熵
        • 4.2 KL散度
        • 4.3 交叉熵推导
        • 4.4 交叉熵损失函数推导
      • 5. 为什么选用sigmoid函数?
      • 6. 总结

1. 引子

​ 在上一篇提及一个概念广义线性回归,而逻辑回归也是与之相关。

​ 假设我们有一个曲线,如下:

在这里插入图片描述

​ 假设它的表达式为y=wx,其中y的值是符合lnx的分布的。那么,可以进行线性映射lny = wx ,变为y=e^(wx)即真正的表达式y=e^(wx)可以变为最初的广义线性形式y=wx(只是此处的y符合lnx分布而已)

​ 换而言之,我们可以将e^(wx)看作是一个普通的ax,那么逻辑回归就是将这个普通的ax作为某个函数的输入,让函数的输出在[0,1]之间,相当于输出的是概率值,就成了。

2. sigmoid函数

​ 上面提及某函数,那么选择什么样的函数呢?

​ 首先,函数必须满足的要求是:输出值在[0,1]之间。满足这个要求的函数非常多,比如符号函数:

在这里插入图片描述

​ 但是,这个函数有一个重要缺点:不是连续可导的(在x=0这个点)。这样会导致我们在优化损失函数的时候,无法直接求导,需要分情况进行求导。其次,这个函数有个小缺点:太僵硬了,只能取1、0这两个值

​ 针对上述情况,我们提出这个函数要满足的新要求:连续可导,最好是光滑曲线

​ 那么,前人们找到一个函数,名为 sigmoid函数,公式如下:

在这里插入图片描述

​ 函数图像如下:

在这里插入图片描述

​ 并且,值得注意的一点是,sigmoid函数的导数非常特殊,其倒数公式如下:
在这里插入图片描述

3. 原理推导

​ 基本的导数求法,非常的简单。

在这里插入图片描述

4. 交叉熵损失函数推导

4.1 信息熵

​ 要对交叉熵进行推导,首先需要明白什么是信息熵。(本来应该在决策树那里讲的)

​ 熵,大家应该都明白,就是描述一个系统的混乱程度。那么信息熵,就相当于描述一个信息的有用程度。

​ 公式如下:

在这里插入图片描述

4.2 KL散度

​ 有时候也称之为KL距离,但是其实并不是真正的距离,因为不符合距离的对称性质。

其衡量两个分布P、Q的相似程度,公式如下:

在这里插入图片描述

​ 举个计算的例子:

在这里插入图片描述

4.3 交叉熵推导

在这里插入图片描述

4.4 交叉熵损失函数推导

​ 该损失函数的推导可以从三个角度入手,分别是sigmoid入手、极大似然估计入手和KL散度入手。这里我接受最后一种推导。

​ 逻辑回归损失函数即衡量真实分布和预测分布的相似性——即KL散度,那么推导过程和上面相似,只是把P and Q换为了y and y^,通过上面可以知道最后的KL散度与交叉熵的值正相关,因此我们可以通过交叉熵构建出损失函数来代替KL散度以衡量真实分布和预测分布的相似程度,即公式:(下面分为两个部分是因为一个为正样本、一个为负样本而已)

在这里插入图片描述

5. 为什么选用sigmoid函数?

​ 这个问题也可以这么问:sigmoid函数怎么推出来的?这个是我偶然看视频发现的,我个人觉得有一定的道理,所以在这里分享一下:

​ 对于真实大数据场景,数据的每个特征基本都符合正太分布,并且一般标准差相同而均值不同(感觉上是对的,但是没有证明),那么如下图推导过程:

在这里插入图片描述

6. 总结

​ 本篇讲解了逻辑回归的原理,逻辑回归主要应用于二分类任务,也是分类任务中常用的一个算法。

​ 下一篇,讲解支持向量机算法。

http://www.lryc.cn/news/164599.html

相关文章:

  • linux命令集合
  • 实现卓越供应链:RFID技术的革命性应用
  • 从JVM角度看继承
  • 基于Python和mysql开发的看图猜成语微信小程序(源码+数据库+程序配置说明书+程序使用说明书)
  • Unity入门教程||创建项目(上)
  • Openbmc编译
  • 美国CN2服务器速度怎么样
  • K8S原理架构与实战教程
  • 基于C#的图书管理系统数据库设计报告
  • 【Express.js】pm2进程管理
  • Nginx部署前后端分离项目(Linux)
  • Docker网络
  • 第15章_瑞萨MCU零基础入门系列教程之Common I2C总线模块
  • 《TCP/IP网络编程》阅读笔记--多播与广播
  • 聚观早报|华为Mate 60 Pro支持面容支付;特斯拉重回底特律车展
  • 本地缓存Caffeine的缓存过期淘汰策略
  • 激光焊接汽车尼龙塑料配件透光率测试仪
  • 2023年高校大数据实验室建设方案
  • 计网第五章(运输层)(一)
  • ILS解析漏洞复现
  • 0067__Git学习(1.本地仓库与暂存区)
  • Mac端交互式原型设计 Axure RP 8 for Mac汉化
  • GO语言网络编程(并发编程)Sync
  • 如何在 Ubuntu 上安装 Nagios?
  • 汽车技术发展趋势及我国节能与新能源汽车技术
  • 如何实现负载均衡
  • Jetsonnano B01 笔记3:GPIO上拉下拉-输入输出读取
  • COMO-ViT论文阅读笔记
  • 智慧燃气:智慧燃气发展的讨论
  • 音视频会议需要哪些设备配置