分类问题经典算法 | 多分类问题 | Softmax回归:梯度下降

目录

  • 一. 多分类问题解决策略
    • 1. 一对一策略 OVO (One-vs-One)
    • 2. 一对剩余策略 OVR(One-vs-Rest)
  • 二. Softmax回归算法

【前景回顾】

这里我们先来总结Logistic回归算法:

模型函数 p = s i g m o i d ( w x + b ) p = sigmoid(wx+b) p=sigmoid(wx+b)

函数解释:Logistic回归不仅可以解决线性分类问题,对于非线性分类问题也可以解决,即通过多项式扩展方式

目标函数 l o s s = − y l n ( p ) − ( 1 − y ) l n ( 1 − p ) loss = -yln(p)-(1-y)ln(1-p) loss=yln(p)(1y)ln(1p)

其中,对于参数
{ ω ′ = ω − α ∂ l o s s ∂ w b ′ = b − α ∂ l o s s ∂ b \left\{\begin{matrix}{\omega}'= \omega-\alpha \frac{\partial loss}{\partial w} \\\\{b}'= b-\alpha \frac{\partial loss}{\partial b} \end{matrix}\right. ω=ωαwlossb=bαbloss

前面我们在文章中讨论了二分类问题,下面我们来讨论多分类问题

一. 多分类问题解决策略

对于有多个类别的样本,我们常采用的策略是:

1. 一对一策略 OVO (One-vs-One)

	假设我们现在有A、B、C三类做法:1. 取A和B,用二分类方法对其进行分类取A和C,用二分类方法对其进行分类取B和C,用二分类方法对其进行分类2. 进行上述操作后,得到三个分类器,即C1,C2,C33. 对于新进样本,根据投票或者概率最大者来确定最终的类别

构造分类器个数: k ( k − 1 ) / 2 ,其中 k 为类别个数 k(k-1)/2,其中k为类别个数 k(k1)/2,其中k为类别个数
在这里插入图片描述

2. 一对剩余策略 OVR(One-vs-Rest)

	假设我们现在有A、B、C三类做法:1. 取A和B、C,用二分类方法对其进行分类取B和A、C,用二分类方法对其进行分类取C和A、B,用二分类方法对其进行分类2. 进行上述操作后,得到三个分类器,即C1,C2,C33. 对于新进样本,用得到的分类器一一进行判断,根据概率最大来确定最终的类别

在这里插入图片描述

二. Softmax回归算法

对于上面提到的两种多分类策略,在对某个新数据预测时,都存在一个缺点:
    C个分类器预测得到的C个概率之和不等于1
    即:关于某个样本类别,在C个分类器下的预测值无相关性
针对上面的问题,Softmax回归算法能很好解决这个问题


假设我们采集到数据后,进行标注,得到数据集如下:

x 1 ( i ) , x 2 ( i ) , . . . , x N ( i ) , y ( i ) x_{1}^{(i)}, x_{2}^{(i)}, ... , x_{N}^{(i)}, y^{(i)} x1(i),x2(i),...,xN(i),y(i)
其中,数据集的A分类标记为 y ( i ) = 0 y^{(i)}=0 y(i)=0
      数据集的B分类标记为 y ( i ) = 1 y^{(i)}=1 y(i)=1
      数据集的C分类标记为 y ( i ) = 2 y^{(i)}=2 y(i)=2
      数据集的D分类标记为 y ( i ) = 3 y^{(i)}=3 y(i)=3

对于共有C个类别的分类问题,我们可以采用上述OVR策略得到C个分类器,并用距离d来衡量某个样本属于某类的可能:
d = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ N x N ,其中 d 的取值为 ( − ∞ , + ∞ ) d = \theta _{0}+ \theta _{1}x_{1}+\theta _{2}x_{2}+ ... +\theta _{N}x_{N},其中d的取值为(-∞,+∞) d=θ0+θ1x1+θ2x2+...+θNxN,其中d的取值为(,+)

这里需要重点理解下d的具体含义:
以三分类OVR策略为例子,就得到了三个分类器

假设我们得到分类器C1:

C1:区分A类和B、C类的决策边界

假设我们用C1作为分类器:

对新输入数据进行判定时,相当于对该样本点做C1分类器的垂线,即上述式子d

请注意,这个d值判定的是该样本点属于A类的概率

这一点与Logistic函数是类似的

计算的 h θ ( x ) h_{\theta } (x) hθ(x)结果是以正样本为依据
即所计算的样本属于 正样本/正类 的概率

我们定义Softmax函数为
S = e i ∑ e i S = \frac{e^{i} }{\sum e^{i} } S=eiei

将d带入Softmax函数,即
h θ ( x ) = S ( d ( θ ) ) = S ( θ 0 + θ 1 x 1 + θ 2 x 2 + . . . ) h_{\theta } (x) = S(d(\theta ))= S(\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+... ) hθ(x)=S(d(θ))=S(θ0+θ1x1+θ2x2+...)
对于OVR策略下的多分类而言,我们得到x属于y时的概率为:
P ( y ∣ x ; θ ) = h θ ( x ) y ( i ) P(y|x;\theta ) = h_{\theta } (x)^{y^{(i)} } P(yx;θ)=hθ(x)y(i)
这样我们就可以得到似然函数
L ( θ ) = ∏ i = 1 M h θ ( x ( i ) ) y ( i ) L(\theta)=\prod_{i=1}^{M} h_{\theta }(x^{(i)} )^{y^{(i)} } L(θ)=i=1Mhθ(x(i))y(i)
接下来,我们对似然函数求对数,得到公式
l ( θ ) = l n [ L ( θ ) ] = ∑ i = 1 M y ( i ) l n [ h θ ( x ( i ) ) ] l(\theta )=ln\left [ L(\theta)\right ]=\sum_{i=1}^{M}y^{(i)}ln[h_{\theta}(x^{(i)} )] l(θ)=ln[L(θ)]=i=1My(i)ln[hθ(x(i))]
结合我们对Logistic回归函数的讲解,softmax回归的损失函数就可以定义为:
J ( θ ) = − l ( θ ) = ∑ i = 1 M − y ( i ) l n [ h θ ( x ( i ) ) ] J(\theta)=-l(\theta)=\sum_{i=1}^{M} -y^{(i)}ln[h_{\theta}(x^{(i)} )] J(θ)=l(θ)=i=1My(i)ln[hθ(x(i))]
下面,我们来求解梯度:

在开始推导前,我们为了好描述,对参数做以下解释:

若我们有三个分类器:

C1:假定判定猫和其他类,d是关于 β \beta β的一套参数
C2:假定判定狗和其他类,d是关于 α \alpha α的一套参数
C3:假定判定鸟和其他类,d是关于 γ \gamma γ的一套参数

假设想用分类器判断样本点是猫的概率(且样本点标签值为:猫)

e z i e^{_z{i} } ezi: 样本点在每个分类器上的预测值,注意每个分类器相关参数不同

∑ k = 1 m e z k {\textstyle \sum_{k=1}^{m}} e^{z_{k} } k=1mezk:样本点在三个分类器上的预测总值

对于二分类而言,样本类别非A即B
对于多分类而言,样本类别有很多种选择

但每种选择都包含了我们的目标类
即分母总是A+B+C

∂ J ( θ ) ∂ θ j = − y ( i ) h θ ( x ) \frac{\partial J(\theta )}{\partial \theta _{j} }=-\frac{y^{(i)} }{h_{\theta }(x) } θjJ(θ)=hθ(x)y(i)
这里为了好描述,我们将h关于 θ \theta θ的函数转换为h关于z的函数

i = y i=y i=y

∂ h j ∂ z i = ∂ ( e z i ∑ k e z k ) ∂ z i \frac{\partial h_{j} }{\partial z_{i} }=\frac{\partial (\frac{e^{z_{i}}}{ {\textstyle \sum_{k}^{}e^{z_{k}}}})}{\partial z_{i} } zihj=zi(kezkezi)

     = e z i ∗ ∑ k e z k − e z i ∗ e z i ( ∑ k e z k ) 2 =\frac{e^{z_{i}}\ast{{\textstyle \sum_{k}^{}e^{z_{k}}}}- e^{z_{i}}\ast e^{z_{i}}}{({{\textstyle \sum_{k}^{}e^{z_{k}}}})^{2}} =(kezk)2ezikezkeziezi

     = e z i ∑ k e z k ∗ ∑ k e z k − e z i ∑ k e z k =\frac{e^{z_{i}}}{{ {\textstyle \sum_{k}^{}e^{z_{k}}}}} \ast \frac{{\textstyle \sum_{k}^{}e^{z_{k}}}-e^{z_{i}}}{{ {\textstyle \sum_{k}^{}e^{z_{k}}}}} =kezkezikezkkezkezi

     = e z i ∑ k e z k ∗ ( 1 − e z i ∑ k e z k ) =\frac{e^{z_{i}}}{{ {\textstyle \sum_{k}^{}e^{z_{k}}}}} \ast (1-\frac{e^{z_{i}}}{{{ {\textstyle \sum_{k}^{}e^{z_{k}}}}} } ) =kezkezi(1kezkezi)

     = h i ∗ ( 1 − h i ) =h_{i}\ast (1-h_{i}) =hi(1hi)

i ≠ y i\ne y i=y

∂ h j ∂ z i = ∂ ( e z i ∑ k e z k ) ∂ z i \frac{\partial h_{j} }{\partial z_{i} }=\frac{\partial (\frac{e^{z_{i}}}{ {\textstyle \sum_{k}^{}e^{z_{k}}}})}{\partial z_{i} } zihj=zi(kezkezi)

     = 0 ∗ ∑ k e z k − e z j ∗ e z i ( ∑ k e z k ) 2 =\frac{0\ast { {\textstyle \sum_{k}^{}e^{z_{k}}}}-e^{z_{j} }\ast e^{z_{i} } }{({ {\textstyle \sum_{k}^{}e^{z_{k}}})}^{2} } =(kezk)20kezkezjezi

     = − e z j ∑ k e z k ∗ e z i ∑ k e z k =-\frac{e^{z_{j}}}{{ {\textstyle \sum_{k}^{}e^{z_{k}}}}}\ast \frac{e^{z_{i}}}{{ {\textstyle \sum_{k}^{}e^{z_{k}}}}} =kezkezjkezkezi

     = − h j h i =-h_{j}h_{i} =hjhi

即,梯度值为:

∂ J ( θ ) ∂ θ j = ∑ i = j ∂ J j ∂ h j ∂ h j ∂ z i + ∑ i ≠ j ∂ J j ∂ h j ∂ h j ∂ z i \frac{\partial J(\theta )}{\partial \theta _{j} }=\sum_{i=j}\frac{\partial J_{j} }{\partial h_{j} }\frac{\partial h_{j} }{\partial z_{i} } +\sum_{i\ne j}\frac{\partial J_{j} }{\partial h_{j} }\frac{\partial h_{j} }{\partial z_{i} } θjJ(θ)=i=jhjJjzihj+i=jhjJjzihj

       = − y i h i ∗ h i ∗ ( 1 − h i ) + ∑ i ≠ j − y j h j ∗ ( − h j h i ) =-\frac{y_{i}}{h_{i} }\ast h_{i}\ast (1-h_{i}) +\sum_{i\ne j}-\frac{y_{j}}{h_{j} }\ast(-h_{j}h_{i}) =hiyihi(1hi)+i=jhjyj(hjhi)

       = h i ∑ j y j − y i =h_{i}\sum_{j}y_{j}-y_{i} =hijyjyi


感谢阅读🌼
如果喜欢这篇文章,记得点赞👍和转发🔄哦!
有任何想法或问题,欢迎留言交流💬,我们下次见!
本文相关代码存放位置
    【Logictic回归代码实现】

祝愉快🌟!


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

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

相关文章

springcloud:3.3测试重试机制

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用:http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http:/…

MySQL篇—执行计划介绍(第二篇,总共三篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

day07_分类管理EasyExcel品牌管理

文章目录 1 分类管理1.1 菜单添加1.2 表结构介绍1.3 页面制作1.4 列表查询1.4.1 需求分析1.4.2 后端接口CategoryCategoryControllerCategoryServiceCategoryMapperCategoryMapper.xml 1.4.3 前端对接category.jscategory.vue 2 EasyExcel2.1 数据导入导出意义2.2 EasyExcel简介…

MYSQL--JDBC优化

一.JDBC优化: 优化前提: 有时候我们并不清楚某些表当中一共有多少列,以及这些列的数据类型,这个时候我们就需要提前通过一些方法提前了解到这些数据,从而更好的进行输出 具体语句: package cn.jdbc;import java.sql.*;public class JDBCDEmo1 {public static void main(String…

MariaDB MaxScale实现mysql8读写分离

目录 1.MaxScale 是干什么的? 2.MaxScale 实验环境 3.实现数据库主从复制 4.创建用户 1) 创建监控用户 2) 创建路由用户 5.docker 安装MaxScale 6.配置maxscale 使用 maxctrl list servers 命令查看运行状态 查看注册服务 使用 maxctrl list listeners Read-…

重拾前端基础知识:CSS

重拾前端基础知识:CSS 前言选择器简单选择器属性选择器组合选择器 插入CSS内嵌样式(Inline Style)内部样式(Internal Style)外部样式(External Style) 层叠颜色背景颜色文本颜色RGB 颜色HEX 颜色…

STM32利用标准库编写程序proteus仿真流水灯

首先就是建立一个proteus工程,导入元器件画图: 接下来就是下载我已经都复制好的工程,下载后直接解压缩就能用: 链接:https://pan.baidu.com/s/1Nx5p3Tif6eHBIVkcPfsj9w?pwd1234 提取码:1234 解压后打开…

<网络安全>《61 微课堂<第1课 南北向流量是什么?>》

1 形象化解释 在网络安全中,经常听到南北向流量这个词。那究竟是什么意思呢? 这里的南北,就是地图上的东西南北,是方向。我们在画网络架构图时,往往是由上到下依次是web层、应用层、数据层,流量从web层到…

【数据分享】2000~2023年MOD15A2H 061 光合有效辐射分数FPAR数据集

​各位同学们好,今天和大伙儿分享的是2000~2023年MOD15A2H 061 光合有效辐射分数FPAR数据集。如果大家有下载处理数据等方面的问题,可以评论或私信。 Myneni, R., Y. Knyazikhin, T. Park. MODIS/Terra Leaf Area Index/FPAR 8-Day L4 Global 500m SIN G…

C#高级:DataGridView的详解

一、每条数据增加一个按钮&#xff0c;点击输出对应实体 请先确保正确添加实体的名称和文本&#xff1a; private void button6_Click(object sender, EventArgs e) {//SQL查询到数据&#xff0c;存于list中List<InforMessage> list bll.QueryInforMessage();//含有字段…

【STM32】江科大STM32学习笔记汇总(50)

00. 目录 文章目录 00. 目录01. STM32学习笔记汇总02. 相关资料下载03. 附录 01. STM32学习笔记汇总 【STM32】STM32学习笔记-课程简介(01) 【STM32】STM32学习笔记-STM32简介(02) 【STM32】STM32学习笔记-软件安装(03) 【STM32】STM32学习笔记-新建工程(04) 【STM32】STM…

Mac清理电脑垃圾工具CleanMyMac X4.15中文免费版下载

嘿&#xff0c;亲爱的Mac用户们&#xff0c;你们是否曾经想象过你的电脑是一座美丽的城市&#xff0c;而垃圾文件则是那些不速之客&#xff0c;悄悄堆积&#xff0c;影响着城市的整体美观。今天&#xff0c;我们就来聊聊Mac为什么会产生垃圾文件&#xff0c;这些垃圾文件会对你…