逻辑回归(下): Sigmoid 函数的发展历史

背景

闲来无事翻了一下之前买的一个机器学习课程及之前记录的网络笔记,发现遇到公式都是截图,甚至是在纸上用笔推导的。重新整理一遍之前逻辑回归函数的学习笔记,主要是为了玩一下 LaTex 语法,写公式挺有意思的。

整理之前三篇笔记汇总如下:

  1. 逻辑回归(上):函数求导过程自推 LaTex 语法
  2. 逻辑回归(中):数学公式学习笔记 LaTeX 版
  3. 逻辑回归(下): Sigmoid 函数的发展历史

逻辑回归 S 曲线的发展历史

Sigmoid 这个S 形是怎么发展的呢?又怎么想到用它来做分类的呢?罗马不是一天建成的,Sigmoid 函数也不是一天形成的。逻辑回归的历史相当悠久,迄今大概已经有200年。它的前身,则在18世纪就已经出现了。

18世纪,随着工业革命的深入;世界经济、科技的发展;美洲的发现,以及随之而来的大移民和北美人口迅猛增长……各个学科对于统计学的工具性需求越来越强烈。到了19世纪,为了研究人口增长以及化学催化反应与时间的关系,人们发明了逻辑函数。

指数函数

这个大家都不陌生,这就是传说中增长最快的曲线,它的数学表达式为:
f ( x ) = a x f(x)=a^x f(x)=ax

最初,学者们将人口(或化合物)的数量与时间的函数定义为 W ( t ) W(t) W(t) t t t 代表时间变量, W ( t ) W(t) W(t) 代表总量,用指数函数表示为:
W ( t ) = a e b t ,其中 a , e , b 均为模型参数, t 为模型变量。 W(t)=ae^{bt},其中 a,e,b 均为模型参数,t 为模型变量。 W(t)=aebt,其中aeb均为模型参数,t为模型变量。

该函数在坐标系中的表现为:
在这里插入图片描述

用该模型为一个国家的人口进行建模,已经被证明在一个国家新建早期人口增长状况是复合该模型的。马尔克斯的人口论中讲述的「在没有任何外界阻碍的情况下,人口将以几何级增长」正是基于指数模型。

我还想到了各种投资理论提倡的复利、非线性增长等,也是基于这个模型。

对该函数求微分,就可以得到增长率函数:
W ′ ( t ) = d W ( t ) d t W^{'}(t)=\frac{dW(t)}{dt} W(t)=dtdW(t)

修正指数函数

19世纪早期,开始有数学家、统计学家质疑上述模型:任何事物,如果真的按照几何级数任意增长下去,都会达到不可思议的数量。

然而,在自然界中,并没有什么东西是在毫无休止地增长的。当一种事物数量越来越多以后,某种阻力也会越来越明显地抑制其增长。

比利时数学家 Verhulst 给出了一个新的模型:

W ′ ( t ) = b W ( t ) − g ( W ( t ) ) W'(t)=bW(t)-g(W(t)) W(t)=bW(t)g(W(t))

其中, g ( W ( t ) ) g(W(t)) g(W(t))是以 W ( t ) W(t) W(t)为自变量的函数,它代表随着总数增长出现的阻力。

Verhulst 尝试了几种不同的阻力函数后,发现 g(W(t)) 是 W(t) 的平方形式时,新模型显示了它的逻辑性。对人口增长率公式修正,取 g ( ( W ( t ) ) = b ( W ( t ) ) 2 L g((W(t))=\frac{b(W(t))^2}{L} g((W(t))=Lb(W(t))2,其中 L 为 W(t) 的上限,增长率函数为:

W ′ ( t ) = b W ( t ) − b ( W ( t ) ) 2 L = b W ( t ) ( 1 − W ( t ) L ) \begin{align} W^{'}(t)&=bW(t)-\frac{b(W(t))^2}{L}\newline &=bW(t)(1-\frac{W(t)}{L})\newline \end{align} W(t)=bW(t)Lb(W(t))2=bW(t)(1LW(t))

这个公式将增长率表现为总量 W(t)、极限值L、总量和极限值之间的差比之间的关系。

P ( t ) = W ( t ) L P(t)=\frac{W(t)}{L} P(t)=LW(t),使用商的求导公式 u = W ( t ) , v = L u=W(t),v=L u=W(t),v=L 计算该函数的微分:
P ′ ( t ) = W ′ ( t ) ∗ L + 0 ∗ L L 2 = W ′ ( t ) L 2 = W ′ ( t ) L \begin{align} P^{'}(t)&=\frac{W^{'}(t)*L+0*L}{L^2}\newline&=\frac{W^{'}(t)}{L^2}\newline &=\frac{W^{'}(t)}{L} \end{align} P(t)=L2W(t)L+0L=L2W(t)=LW(t)

将公式 (2)代入公式(5)中,可以得到:
P ′ ( t ) = W ′ ( t ) L = b W ( t ) L ( 1 − W ( t ) L ) = b P ( t ) ( 1 − P ( t ) ) \begin{align} P^{'}(t)&=\frac{W^{'}(t)}{L} \newline&=\frac{bW(t)}{L}(1-\frac{W(t)}{L}) \newline&= bP(t)(1-P(t)) \end{align} P(t)=LW(t)=LbW(t)(1LW(t))=bP(t)(1P(t))

P ′ ( t ) = b P ( t ) ( 1 − P ( t ) ) P'(t)=bP(t)(1-P(t)) P(t)=bP(t)(1P(t)),这是一个一阶自治微分方程,导数是自身的函数,结合前面 逻辑回归(上):函数求导过程自推 LaTex 语法 的推导结果,可知,这里 P(t) 就是逻辑回归函数:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1

模型含义

意义:当一个物种迁入到一个新生态系统中后,其数量会发生变化。假设该物种的起始数量小于环境的最大容纳量,则数量会增长。该物种在此生态系统中有天敌、食物、空间等资源也不足(非理想环境),则增长函数满足逻辑斯谛方程,图像呈S形,此方程是描述在资源有限的条件下种群增长规律的一个最佳数学模型。

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

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

相关文章

鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息

本文将通过MethodChannel获取设备信息,以此来演练MethodChannel用法。 建立channel flutter代码: MethodChannel methodChannel MethodChannel("com.xmg.test"); ohos代码: private channel: MethodChannel | null nullthis.c…

使用JavaScript写一个网页端的四则运算器

目录 style(内联样式表部分) body部分 html script 总的代码 网页演示 style(内联样式表部分) <style>body {font-family: Arial, sans-serif;display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;}.calculator {…

Pikachu-目录遍历

目录遍历&#xff0c;跟不安全文件上传下载有差不多&#xff1b; 访问 jarheads.php 、truman.php 都是通过 get 请求&#xff0c;往title 参数传参&#xff1b; 在后台&#xff0c;可以看到 jarheads.php 、truman.php所在目录&#xff1a; /var/www/html/vul/dir/soup 图片…

golang gin入门

gin是个小而精的web开发框架 官方文档 安装 go get -u github.com/gin-gonic/gin最简单的起手代码 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/ping", func(c *gin.Context) {c.JSON…

openpnp - 图像传送方向要在高级校正之前设置好

文章目录 openpnp - 图像传送方向要在高级校正之前设置好笔记图像传送方向的确定END openpnp - 图像传送方向要在高级校正之前设置好 笔记 图像传送方向和JOG面板的移动控制和实际设备的顶部摄像头/底部摄像头要一致&#xff0c;这样才能和贴板子时的实际操作方向对应起来。 …

大数据新视界 --大数据大厂之 从 Druid 和 Kafka 到 Polars:大数据处理工具的传承与创新

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【Vue】vue-admin-template项目搭建

准备 node环境 node&#xff1a;v16.12.0npm&#xff1a;8.1.0 vue-element-admin下载 官网&#xff1a;https://panjiachen.github.io/vue-element-admin-site/guide/ 我这边下载的是4.4.0版本的&#xff0c;使用其他版本可能会因为所需要的node和npm版本过低或过高导致异常…

【包教包会】2D图片实现3D透视效果(支持3.x、支持原生、可合批)

将去年写的SpriteFlipper从2.x升级到3.x。 如果需要2.x版本或需要了解算法思路&#xff0c;请移步&#xff1a;https://blog.csdn.net/weixin_42714632/article/details/136745051 优化功能&#xff1a;可同时绕X轴和Y轴旋转&#xff0c;两者效果会叠加。 完美适配Web、原生…

Gridview配置数据源--信任服务器证书

目录 背景过程Gridview配置数据源GridView与数据源&#xff1a;数据库连接与安全&#xff1a;信任服务器证书&#xff1a;配置信任服务器证书&#xff1a;注意事项&#xff1a; 生成连接字符串程序运行报错问题解决 总结 背景 Gridview配置数据源之后&#xff0c;程序报错 过…

k8s的pod的管理和优化

资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务 所谓的部署服务&#xff0c;其实就是在kubernetes集群中运行一个个的容器…

C++ | Leetcode C++题解之第456题132模式

题目&#xff1a; 题解&#xff1a; class Solution { public:bool find132pattern(vector<int>& nums) {int n nums.size();vector<int> candidate_i {nums[0]};vector<int> candidate_j {nums[0]};for (int k 1; k < n; k) {auto it_i upper_…

动态规划基础一>面试题 08.01. 三步问题

1.题目&#xff1a; 2.解析&#xff1a; 代码&#xff1a; public int waysToStep(int n) {/**1.创建dp表2.初始化3.填表4.返回值*/int MOD (int)1e9 7;//注意不能超出int范围&#xff0c;每做一次操作要取模//处理边界情况if(n 1 || n 2) return n;if(n 3) return 4;//1…

【Kubernetes】常见面试题汇总(五十七)

目录 125. K8S 创建服务 status 为 ErrlmagePull&#xff1f; 126.不能进入指定容器内部&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 …

Django学习笔记二:数据库操作详解

Django框架提供了一个功能强大的ORM&#xff08;对象关系映射&#xff09;系统&#xff0c;使得开发者可以使用Python代码来操作数据库&#xff0c;而无需编写复杂的SQL语句。以下是Django数据库操作的一些基本概念和方法&#xff1a; 模型定义 在Django中&#xff0c;模型是…

两数相除(c语言)

1.//给你两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求 不使用 乘法、除法和取余运算。 //整数除法应该向零截断&#xff0c;也就是截去&#xff08;truncate&#xff09;其小数部分。 // 例如&#xff0c;8.345 将被截断为 8 &#xff0c;…

内网穿透工具ngrok

写作背景 最近在公司内购淘了个MAC电脑&#xff0c;想当个Linux服务器起Docker搭建环境用&#xff0c;现在问题是如何在公网上能访问到MAC这个机器上的资源。 之前写了一篇文章Mac当作云服务器&#xff0c;你真的会搞吗 最近想重启一下这台老伙计了&#xff0c;发现ngrok还是…

视频加字幕用什么软件最快?12款工具快速添加字幕!

对于大多数同学来讲&#xff0c;剪辑中比较头疼的就是如何给视频加字幕和唱词啦&#xff0c;特别是用Pr或者FCXP等专业剪辑软件&#xff0c;加字幕也是特别费时的&#xff0c;哪怕是有批量添加的功能orz... 虽然关于这方面的内容已经很多啦&#xff0c;但是真正全面的内容还特…

VTC视频时序控制器,TPG图像测试数据发生器,LCD驱动——FPGA学习笔记19

详情可以见LCD篇 LCD彩条显示——FPGA学习笔记10_依次显示红绿蓝三个通道-CSDN博客 一、VTC简介 Video Timing Controller 缩写 VTC 是我们在所有涉及 FPGA 图像、 FPGA 视频类方案中经常用到的一种用于产生视频时序的控制器。 本课以 VGA 为切入点&#xff0c; 学习视频传输…

[Linux]:线程(三)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. POSIX 信号量 1.1 信号量的概念 为了解决多执行流访问临界区&#xff0c…

基于SpringBoot+Vue的酒店客房管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…