Sigmoid函数与逻辑回归

文章目录

      • (1). Sigmoid函数的由来——伯努利分布的衍生物
          • 1.1 为什么会有 sigmoid 函数的出现?
          • 1.2 sigmoid 函数推导过程
          • 1.3 sigmoid 函数求导
      • (2). 逻辑回归(Logistic Regression)
          • 2.1 逻辑回归算法的最终本质——求决策边界
          • 2.2 逻辑回归算法中的重要组成部分

(1). Sigmoid函数的由来——伯努利分布的衍生物

1.1 为什么会有 sigmoid 函数的出现?

考虑一个事件X,其发生的概率为p,不发生的概率为1-p,如下表所示:

X01
发生概率1 - pp

通过上述事件我们能够得到当事件一定发生(x=1)一定不发生(x=0) 的概率,但很多时候事件不一定是一个非0即1的事件,而是一个连续取值的事件。当x的取值在(0,1)之间时,如x=0.5时,我们就无法判断该事件是判定为发生还是不发生了。为此,我们期望找到连续变量 x 和发生概率 p 之间的对应关系,使得每一个 xxx 取值都有一个对应的事件发生概率 ppp,根据发生概率 ppp 来推测事件发生还是不发生。例如,当 p=0.8p=0.8p=0.8 时判断该事件发生,p=0.2p=0.2p=0.2 时判断该事件不发生。如何寻找这个对应关系呢,sigmoid 函数的求解过程就是在寻找这个对应关系,sigmoid 最终的求解形式就描述连续变量 xxx 和发生概率 ppp 关系:
p=11+e−xp = \frac{1}{1 + e^{-x}} p=1+ex1

1.2 sigmoid 函数推导过程

由上一节中的表可以得到,f(x)f(x)f(x) 分布函数可以写成:

f(x)={1−p;x=0p;x=1f(x) = \left\{ \begin{array}{rcl} 1-p; \qquad x=0 \\ p; \qquad x=1 \end{array} \right. f(x)={1p;x=0p;x=1

进一步的我们可这个分段函数写成一个函数:

f(x)=px∗(1−p)1−xf(x) = p^x*(1-p)^{1-x} f(x)=px(1p)1x

接着我们在这个式子上进行推导:

f(x)=elnpx(1−p)1−x=elnpx+ln(1−p)1−x=ex⋅lnp+(1−x)⋅ln(1−p)=ex[lnp−ln(1−p)]+ln(1−p)=ex⋅lnp1−p+ln(1−p)\begin{aligned} f(x) &= e^{lnp^x (1-p)^{1-x}} \\ &= e^{lnp^x + ln(1-p)^{1-x}} \\ &= e^{x·lnp + (1-x)·ln(1-p)} \\ &= e^{x [ lnp - ln(1-p)] + ln(1-p)} \\ &= e^{x·ln\frac{p}{1-p} + ln(1-p)} \end{aligned} f(x)=elnpx(1p)1x=elnpx+ln(1p)1x=exlnp+(1x)ln(1p)=ex[lnpln(1p)]+ln(1p)=exln1pp+ln(1p)

我们找出跟 xxx 变量相关的系数 lnp1−pln\frac{p}{1-p}ln1pp,令其等于 η\etaη,反解 η\etaη:
η=lnp1−peη=p1−pp=11+e−η\begin{aligned} \eta &= ln\frac{p}{1-p} \\ e^\eta &=\frac{p}{1-p} \\ p &= \frac{1}{1+e^{-\eta}} \end{aligned} ηeηp=ln1pp=1pp=1+eη1

最后计算出的形式就是sigmoid函数的函数形式,将 η\etaη 换成 xxx 后就得到了连续变量 xxx 和事件发生概率 ppp 之间的函数关系(至于为什么可以把 η\etaη 换成 xxx 这里我想了很久也没想通,如果有大佬希望可以指点下)。

1.3 sigmoid 函数求导

在逻辑回归中,构造函数选用的就是sigmoid函数。我们都知道在机器学习中会不断通过求解梯度来进行函数的参数更新,那么sigmoid作为目标函数,不可避免的就会涉及到sigmoid的求导,sigmoid函数求导结果如下:

f′(x)=(11+e−x)′=e−x(1+e−x)2=11+e−x⋅(1−11+e−x)=f(x)⋅(1−f(x))\begin{aligned} f'(x) &= (\frac{1}{1+e^{-x}})' \\ &= \frac{e^{-x}}{(1+e^{-x})^2} \\ &= \frac{1}{1+e^{-x}}·(1 - \frac{1}{1+e^{-x}}) \\ &= f(x)·(1-f(x)) \end{aligned} f(x)=(1+ex1)=(1+ex)2ex=1+ex1(11+ex1)=f(x)(1f(x))

(2). 逻辑回归(Logistic Regression)

2.1 逻辑回归算法的最终本质——求决策边界

逻辑回归中使用 sigmoid 函数 11+e−w⋅x\frac{1}{1 + e^{-w·x}}1+ewx1 来预测事件发生的概率,如下图所示,当纵坐标取值大于0.5时则判断事件发生(y=1),当纵坐标小于0.5时则判断事件不发生(y=0)。

我们仔细观察,整个式子 yyy 的取0还是取1完全取决于 w⋅xw·xwx 的取值是>0还是<0,于是我们就可以通过判断一个样本点是在直线 z=w⋅xz=w·xz=wx 的上半边还是下半边来判断 yyy 的取值了。这样一来,我们求解的最根本的问题就是求解一条直线 z=w⋅xz = w·xz=wx,使得在直线一边的数据点全为正样本,另一边的数据点全为负样本。因此,逻辑回归算法算法的本质其实是去求解一个“边界”,这个边界不仅能够保证数据分类的正确性,还能保证所有分类后的数据的 cost 值最小,如下图所示(这和SVM的最小间隔距离非常相似):

决策边界由函数:w⋅X=0w·X = 0wX=0 来确定,其中参数 www是我们需要学习的参数,因此核心问题就成了求解边界:
z=w⋅X=w0+w1⋅X1+w2⋅X2+...z = w·X = w_0 + w_1·X_1 + w_2·X_2 + ... z=wX=w0+w1X1+w2X2+...

2.2 逻辑回归算法中的重要组成部分

对于任何一个算法来说,通常都需要考虑的3个部分:

  • 构建基本函数(就是用来预测最终yyy值的函数)
  • 构建目标函数(目标函数=损失函数 + 正则项)
  • 构建优化方法(也叫优化器optimizer)

逻辑回归中的基本构造函数

在逻辑回归算法中,选用的基本函数就是sigmoid函数 hθ(x)=11+e−xh_{\theta}(x) = \frac{1}{1 + e^{-x}}hθ(x)=1+ex1,该函数用于预测输入 xxx 后标签 yyy 的概率,注意,这里的 xxx 并非是数据集的原始数据输入,而是乘以了参数 θ\thetaθ 之后的值,即 x=X⋅θx = X · \thetax=Xθ,因此逻辑回归的基本函数为:
hθ(X)=11+e−θXh_{\theta}(X) = \frac{1}{1+e^{-\theta X}} hθ(X)=1+eθX1

逻辑回归中的损失函数

逻辑回归的损失函数为:

loss(yi,yi′)=−∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i))loss(y_i, y_i') = -\sum_{i=1}^my^{(i)}logh_{\theta}(x^{(i)}) + (1 - y^{(i)})log(1-h_{\theta}(x^{(i)}) loss(yi,yi)=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))
其中,hθ(X)=11+e−θXh_{\theta}(X) = \frac{1}{1+e^{-\theta X}}hθ(X)=1+eθX1,这个式子可以从两个思路推导出来:最大似然估计、交叉熵损失函数,下面分别从这两个方面进行推导。

  • 通过极大似然估计来解释损失函数

首先我们需要知道极大似然估计是什么,举个例子:假设取球事件为y,取到白球时y=1,概率为p,取到黑球时y=0,概率为1-p。由于是独立事件,三次拿球两黑一白的概率可以表示为:P(y=0∣p)P(y=0∣p)P(y=1∣p)=(1−p)(1−p)p=p3−2p2+pP(y = 0 | p)P(y = 0 | p)P(y = 1 | p) = (1 - p)(1 - p)p = p^3 - 2p^2 + pP(y=0p)P(y=0p)P(y=1p)=(1p)(1p)p=p32p2+p。白球的极大似然估计就是求使得这个概率表达式最大的p值,对上式求导,求此一元二次方程的根得p=1/3或p=1,可知原式在[0, 1/3]区间单调递增,在[1/3, 1]区间单调递减。因此,在白球概率范围[0.2,0.8]内,当p=1/3时表达式取得最大值,取得白球的概率的极大似然估计为1/3(例子引自这里)。通过这个例子可以看到,最大似然估计其实是在给定了若干个事实后(去了三次球两黑一白),对事件发生的最大可能概率(取到白球的概率)进行估计。

那么在逻辑回归中,假定每一个数据样本相互独立,则取了 mmm 个样本后,得到的似然函数为根据每一个数据样本标签计算出的概率值相乘:
L(θ)=∏i=1mpiyi(1−pi)1−yil(θ)=∑i=1mln[piyi(1−pi)1−yi]L(\theta) = \prod_{i=1}^m p_i^{y_i} (1-p_i)^{1-y_i}\\ l(\theta) = \sum_{i=1}^mln[p_i^{y_i}(1-p_i)^{1-y_i}] L(θ)=i=1mpiyi(1pi)1yil(θ)=i=1mln[piyi(1pi)1yi]
式子 L(θ)L(\theta)L(θ) 就等于上面白球例子中的:(1−p)(1−p)p(1 - p)(1 - p)p(1p)(1p)pl(θ)l(\theta)l(θ)是对原式求对数,把累成变为累加,这个式子也叫对数似然估计。我们现在假设 ppp 服从 11+e−θX\frac{1}{1+e^{-\theta X}}1+eθX1分布(其实真正的 ppp 并不是等于这个式子的,因为 θ\thetaθ 参数是不准确的,是需要学习的),这样一来,我们就有了损失函数:
loss(yi,yi′)=−l(θ)=−∑i=1mln[(11+e−θx)yi(11+eθx)1−yi]=−∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i))\begin{aligned} loss(y_i, y_i') &= -l(\theta) \\ &= -\sum_{i=1}^mln[(\frac{1}{1+e^{-\theta x}})^{y_i} (\frac{1}{1+e^{\theta x}})^{1-y_i} ]\\ &=-\sum_{i=1}^my^{(i)}logh_{\theta}(x^{(i)}) + (1 - y^{(i)})log(1-h_{\theta}(x^{(i)}) \end{aligned} loss(yi,yi)=l(θ)=i=1mln[(1+eθx1)yi(1+eθx1)1yi]=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))

怎么理解这个式子呢?这样想,我们按照服从 11+e−θX\frac{1}{1+e^{-\theta X}}1+eθX1的分布概率 p′p'p 来进行估测的结果并不是真实标签 yiy_iyi,而是有偏估计 yi′y_i'yi,因为我们的参数 θ\thetaθ 是有偏的。而原本的极大似然估计的本质是,在使用真实的分布概率 ppp 去做预测时,是可以得到正确的预测标签 yiy_iyi 的。因此,使用有偏概率 p′p'p 去做估计得到结果,就是有偏预测结果 y′y'y 和真实标签数据 yyy 之间的偏差值,也就是损失函数的结果。

  • 通过交叉熵来解释损失函数

损失函数的定义是:如果我们预测类型接近真实类型,则损失函数值非常小;如果预测类型偏离真是类型很多,则损失函数非常大。我们再列出最终的loss函数来看看:
loss(yi,yi′)=−∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i))loss(y_i, y_i') = -\sum_{i=1}^my^{(i)}logh_{\theta}(x^{(i)}) + (1 - y^{(i)})log(1-h_{\theta}(x^{(i)}) loss(yi,yi)=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))

可以发现其实这个函数可以拆成两个部分(图片引自这里):

分别代表当样本的真实标签 y=1y=1y=1 时,对应的损失函数为:−log(hθ(x))-log(h_{\theta}(x))log(hθ(x)),当样本的真实标签 y=0y=0y=0 时对应的损失函数为: −log(1−hθ(x))-log(1-h_{\theta}(x))log(1hθ(x))。如下图所示(图片引自这里):

这个图非常直观的表示了损失函数与预测准确度的关系,例如当y = 1时,如果 hθ(x)h_{\theta}(x)hθ(x) 的预测值越接近 1,则得到的损失函数值越小,若预测结果越接近 0,则得到的损失函数值越大。而从上面可以看出,不管是 y=1y=1y=1 还是 y=0y=0y=0 的情况,均使用 −log-loglog 来进行损失函数的定义,为什么呢?这就涉及到香农熵的问题了,香农信息量用来度量不确定性的大小:一个事件的香农信息量等于0,表示该事件的发生不会给我们提供任何新的信息,例如确定性的事件,发生的概率是1,发生了也不会引起任何惊讶;当不可能事件发生时,香农信息量为无穷大,这表示给我们提供了无穷多的新信息,并且使我们无限的惊讶,而 −log-loglog 函数恰恰能很好的表达在 xxx 取值接近 1 时函数值接近于 0,反之 xxx 取值接近 0 时函数值接近于无穷大。

逻辑回归中的优化方法

使用 SGD 随机梯度下降的方法来优化参数 θ\thetaθ:

θj:=θj+α⋅loss(yi,yi′)\theta_j: = \theta_j + \alpha·loss(y_i, y_i') θj:=θj+αloss(yi,yi)

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

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

相关文章

Avalonia跨平台入门第二十二篇之人脸检测

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖动、语音发送、语音播放、语音播放问题、玩…

pkpm板按弹性计算还是塑性_PKPM中的S\R验算显红原因分析

PKPM软件砼结构施工图中的&#xff0c;梁的配筋面积中&#xff0c;SR验算&#xff0c;经常会有个别构件显红的情况。查了一下PKPM说明书&#xff0c;并没有针对此情况的详细说明。根据本人的实际经验&#xff0c;总结了一下解决此问题的主要方法&#xff1a;一.超筋SR的值显示为…

多智能体连续行为空间问题求解——MADDPG

目录1. 问题出现&#xff1a;连续行为空间出现2. DDPG 算法2.1 DDPG 算法原理2.2 DDPG 算法实现代码2.2.1 Actor & Critic2.2.2 Target Network2.2.3 Memory Pool2.2.4 Update Parameters&#xff08;evaluate network&#xff09;2.2.5 Update Parameters&#xff08;targ…

在.NET 6 中如何创建和使用 HTTP 客户端 SDK

如今&#xff0c;基于云、微服务或物联网的应用程序通常依赖于通过网络与其他系统通信。每个服务都在自己的进程中运行&#xff0c;并解决一组有限的问题。服务之间的通信是基于一种轻量级的机制&#xff0c;通常是一个 HTTP 资源 API。从.NET 开发人员的角度来看&#xff0c;我…

ttl接地是高电平还是低电平_功放技术参数1——高电平

在汽车音响中的功放或者DSP再或者是DSP功放中我们都会遇到高电平信号或者低电平信号输入&#xff0c;我们该如何判断主机输出的到底是高电平信号还是低电平信号呢&#xff1f;我们可以用一个很简单的方法来鉴定&#xff0c;那就是主机输出能够直接驱动喇叭的为高电平信号输出&a…

MultiProcessing中主进程与子进程之间通过管道(Pipe)通信

Python 中 Multiprocessing 实现进程通信1. 如何建立主进程与子进程之间的通信管道&#xff1f;2. 为什么一定要将Pipe中的某些端close()?本文参考自&#xff1a;python 学习笔记 - Queue & Pipes&#xff0c;进程间通讯 1. 如何建立主进程与子进程之间的通信管道&#xf…

如何为 .NET 项目自定义强制代码样式规则

前言每个人都有自己的代码样式习惯:命名约定、大括号、空格、换行等。但是&#xff0c;作为一个团队来说&#xff0c;应该使用同样的代码样式规则。这样可以有效减少编译器的警告/建议&#xff0c;保证阅读代码的人员理解一致。今天我们介绍一种为单独的 .NET 项目定义代码样式…

我是如何帮助创业公司改进企业工作的

前段时间在一家创业公司实习&#xff0c;几十个人的团队&#xff0c;正处在规模逐渐扩大的阶段&#xff0c;但是整个公司的协作工作和日常管理却越来越麻烦&#xff0c;鉴于我以前对Saas和协作平台都有过一点研究&#xff0c;于是leader叫我去找一个“简单&#xff0c;好用&…

PHP单例模式(精讲)

2019独角兽企业重金招聘Python工程师标准>>> 首先我们要明确单例模式这个概念&#xff0c;那么什么是单例模式呢&#xff1f; 单例模式顾名思义&#xff0c;就是只有一个实例。作为对象的创建模式&#xff0c;单例模式确保某一个类只有一个实例&#xff0c;而且自行…

【QMIX】一种基于Value-Based多智能体算法

文章目录1. QMIX 解决了什么问题&#xff08;Motivation&#xff09;2. QMIX 怎样解决团队收益最大化问题&#xff08;Method&#xff09;2.1 算法大框架 —— 基于 AC 框架的 CTDE&#xff08;Centralized Training Distributed Execution&#xff09; 模式2.2 Agent RNN Netw…

增强型的for循环linkedlist_LinkedList的复习

先摘选一段Testpublic void test_LinkedList() { // 初始化100万数据 List list new LinkedList(1000000);// 遍历求和int sum 0;for (int i 0; i sum list.get(i); }}乍一看可能觉得没什么问题&#xff0c;但是这个遍历求和会非常慢。主要因为链表的数据结构…

3月更新来了!Windows 11正式版22000.556发布

面向 Windows 11 正式版用户&#xff0c;微软现已发布累积更新 KB5011493&#xff0c;更新后版本号升级至 Build 22000.556。主要变化1.微软正在改变 Windows 11 "开始"菜单中推荐模块有关 Office 文件的打开方式。如果文件被同步到 OneDrive&#xff0c;“开始”菜单…

[C/C++]重读《The C Programming Language》

第一次读这本书的时候是大三初&#xff0c;现在打算重读一遍&#xff01;。 第一章 导言 1. 学习一门新程序设计语言的唯一途径就是用它来写程序。 2. 每个程序都从main函数的起点开始执行。 3. 在C语言中&#xff0c;所有变量必须先声明后使用。 4. C语言中的基本数据类型的大…

115怎么利用sha1下载东西_618“甩”度娘,拥抱115,体验和价格才是王道

网盘价钱​前天618&#xff0c;圈子里的朋友几乎都“甩”了度娘一巴掌&#xff0c;我才知道115搞活动&#xff0c;由原来500元1年的钻石会员&#xff0c;变成500元3年&#xff0c;算起来每天不到0.5元&#xff0c;确实比度娘实惠了很多&#xff0c;而且活动持续到6月底。自从发…

安装宝塔面板

安装宝塔面板&#xff1a; 1. 宝塔面板网站&#xff1a; https://www.bt.cn/ 2.安装教程 https://www.bt.cn/bbs/thread-1186-1-1.html 3.1 使用远程工具连接执行以下命令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh &&…

【COMA】一种将团队回报拆分为独立回报的多智能体算法

文章目录1. COMA 解决了什么问题&#xff08;Motivation&#xff09;2. COMA 怎么解决独立回报分配问题&#xff08;Method&#xff09;2.1 核心思想 counterfactual baseline 的提出2.2 算法大框架 —— 基于 AC 框架的 CTDE&#xff08;Centralized Training Distributed Exe…

C#解析Markdown文档,实现替换图片链接操作

前言又是好久没写博客了其实也不是没写&#xff0c;是最近在「做一个博客」&#xff0c;从2月21日开始&#xff0c;大概一个多星期的时间&#xff0c;疯狂刷进度&#xff0c;边写代码边写了一整系列的博客开发笔记&#xff0c;目前为止已经写了16篇了&#xff0c;然后上3月之后…

LoadRunner测试下载功能点脚本(方法一)

性能需求&#xff1a;对系统某页面中&#xff0c;点击下载功能做并发测试&#xff0c;以获取在并发下载文件的情况下系统的性能指标。 备注&#xff1a;页面上点击下载时的文件可以是word、excel、pdf等。 问题1&#xff1a;录制完下载的场景后&#xff0c;发现脚本里面并没有包…

海南橡胶机器人成本_「图说」海垦看点:海南橡胶联合北京理工华汇智能科技首创我国林间智能割胶机器人...

1 海垦南繁产业集团长期以来高度重视改善职工居住条件&#xff0c;于去年启动了海燕队保障性住房项目&#xff0c;项目建成后将有效解决职工住房问题。图为近日正在加紧施工的建设工地。 蒙胜国 摄2 海南橡胶联合北京理工华汇智能科技有限公司&#xff0c;研发出来的最新一代林…

数据挖掘在轨迹信息上的应用实验

文章目录1. 实验概览2. 数据集下载3. 数据预处理3.1 异常点去除3.2 停留点检测与环绕点检测3.3 轨迹分段4. 基于轨迹信息的数据挖掘4.1 路口检测4.1.1 地图分割与轨迹点速度计算4.2 偏好学习通常&#xff0c;我们将一个连续的GPS信号点序列称为一个轨迹&#xff08;Trajectory&…