学习笔记——机器学习–多项式分布及Softmax回归模型推导[通俗易懂]

学习笔记——机器学习–多项式分布及Softmax回归模型推导[通俗易懂]在一个多分类问题,预测变量yyy可以取kkk个离散值中的任何一个,即y∈{1,2,⋯,k}y∈{1,2,⋯,k}y\in\{1,2,\cdots,k\}。例如:在一个邮件分类系统将邮件分为私人邮件,工作邮件和垃圾邮件。由于yyy仍然是一个离散值,这种多分类问题,二分类模型在这里不太适用。多分类问题符合多项分布。有许多算法可用于解决多分类问题,像决策树、朴素贝叶斯等。本文主要讲解多分类算…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

  在一个多分类问题,预测变量 y  y 可以取
k 

k
个离散值中的任何一个,即 y∈{
1,2,⋯,k}
 
y ∈ { 1 , 2 , ⋯ , k }
。

例如:在一个邮件分类系统将邮件分为私人邮件,工作邮件和垃圾邮件。由于 y  y 仍然是一个离散值,这种多分类问题,二分类模型在这里不太适用。

  多分类问题符合多项分布。有许多算法可用于解决多分类问题,像决策树、朴素贝叶斯等。本文主要讲解多分类算法中的Softmax回归(Softmax Regression)

推导思路为:首先证明多项分布属于指数分布族,这样就可以使用广义线性模型来拟合这个多项分布,由广义线性模型推导出的目标函数
h θ (x) 

h θ ( x )
即为Softmax回归的分类模型。

多项式分布属于指数分布族的推导

  下面将根据多项式分布建模。考虑样本共有 k  k 类,每一类的概率分别为
ϕ 1 ,⋯,ϕ k  

ϕ 1 , ⋯ , ϕ k
,由于 ∑ i=1 k ϕ i =1  ∑ i = 1 k ϕ i = 1 ,所以通常我们只需要 k−1  k − 1 个参数即 ϕ 1 ,⋯,ϕ k−1   ϕ 1 , ⋯ , ϕ k − 1 。
 P(y=i;ϕ)=ϕ i   P(y=k;ϕ)=1−∑ i=1 k−1 ϕ i   (397)  (397) P ( y = i ; ϕ ) = ϕ i   P ( y = k ; ϕ ) = 1 − ∑ i = 1 k − 1 ϕ i  
为了推导方便,引入表达式:
T(1)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 100⋮0 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ , T(2)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 010⋮0 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ , ⋯, T(k−1)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 000⋮1 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ,  T(k)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 000⋮0 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥   T ( 1 ) = [ 1 0 0 ⋮ 0 ] ,   T ( 2 ) = [ 0 1 0 ⋮ 0 ] ,   ⋯ ,   T ( k − 1 ) = [ 0 0 0 ⋮ 1 ] ,     T ( k ) = [ 0 0 0 ⋮ 0 ]

  上面 T(y)  T ( y ) 是 k−1  k − 1 维列向量,其中 y=1, 2, ⋯, k  y = 1 ,   2 ,   ⋯ ,   k ; T(y) i   T ( y ) i 表示向量 T(y)  T ( y ) 的第 i  i 个元素。

  还要引入表达式
1{⋅} 

1 { ⋅ }
,如果大括号里面为真,则真个表达式就为1,否则为0。

1{
 ture}=1  ;  1{
 false }=0
 
1 {   t u r e } = 1     ;     1 {   f a l s e   } = 0



例如:1{2=3} = 0和1{3=3} = 1.

则上面的

k  k
个向量就可以表示为:



T(y) i =1{ y=i } 

T ( y ) i = 1 {   y = i   }



因为

y  y
只能属于某一个类别,于是


T(y) 

T ( y )

中只能有一个元素为1其他元素都为0,可以求出

k−1  k − 1
个元素的期望:


E[T(y) i ]=∑ y=1 k T(y) i ϕ i =∑ y=1 k 1(y=i)ϕ i =ϕ i   E [ T ( y ) i ] = ∑ y = 1 k T ( y ) i ϕ i = ∑ y = 1 k 1 ( y = i ) ϕ i = ϕ i



即:


E[T(y) i ]=P(y=i)=ϕ i   E [ T ( y ) i ] = P ( y = i ) = ϕ i



多项式分布表达式转为指数分布族表达式推导过程如下:


 P(y;ϕ)=ϕ 1{
y=1}
 
1 
ϕ 1{
y=2}
 
2 
⋯ϕ 1{
y=k}
 
k 
           =ϕ T(y) 1  1 ϕ T(y) 2  2 ⋯ϕ T(y) k−1  k−1 ⋅ϕ T(y) k  k            =ϕ T(y) 1  1 ϕ T(y) 2  2 ⋯ϕ T(y) k−1  k−1 ⋅ϕ 1−∑ i=1 k−1 T(y) i  k            =exp(T(y) 1 logϕ 1 +⋯+(1−∑ i=1 k−1 T(y) i )logϕ k )           =exp(T(y) 1 logϕ 1 ϕ k  +T(y) 2 logϕ 2 ϕ k  +⋯+T(y) k−1 logϕ k−1 ϕ k  +logϕ k )            =b(y)exp(η T T(y)−a(η))
 
(398)(399)(400)(401)(402)(403)
 
(398) P ( y ; ϕ ) = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } ⋯ ϕ k 1 { y = k } (399)                       = ϕ 1 T ( y ) 1 ϕ 2 T ( y ) 2 ⋯ ϕ k − 1 T ( y ) k − 1 ⋅ ϕ k T ( y ) k (400)                       = ϕ 1 T ( y ) 1 ϕ 2 T ( y ) 2 ⋯ ϕ k − 1 T ( y ) k − 1 ⋅ ϕ k 1 − ∑ i = 1 k − 1 T ( y ) i (401)                       = exp ⁡ ( T ( y ) 1 log ⁡ ϕ 1 + ⋯ + ( 1 − ∑ i = 1 k − 1 T ( y ) i ) log ⁡ ϕ k ) (402)                       = exp ⁡ ( T ( y ) 1 log ⁡ ϕ 1 ϕ k + T ( y ) 2 log ⁡ ϕ 2 ϕ k + ⋯ + T ( y ) k − 1 log ⁡ ϕ k − 1 ϕ k + log ⁡ ϕ k ) (403)                         = b ( y ) exp ⁡ ( η T T ( y ) − a ( η ) )



其中


η=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ logϕ 1 ϕ k  logϕ 2 ϕ k  ⋮logϕ k−1 ϕ k   ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ∈R k−1 ,  a(η)=−log(ϕ k ),  b(y)=1  η = [ log ⁡ ϕ 1 ϕ k log ⁡ ϕ 2 ϕ k ⋮ log ⁡ ϕ k − 1 ϕ k ] ∈ R k − 1 ,     a ( η ) = − log ⁡ ( ϕ k ) ,     b ( y ) = 1



  多项分布可以表示为指数分布的格式,所以它属于指数分布族,那么就可以用广义线性模型来拟合这个多项式分布模型。

Softmax函数(Softmax Function)

  在使用广义线性模型拟合这个多项式分布模型之前,需要先推导一个函数,这个函数在广义线性模型的目标函数中会用到。这个函数称为Softmax函数(Softmax Function)。
由 η  η 表达式可得:

η i =logϕ i ϕ k    η i = log ⁡ ϕ i ϕ k



这是

η i   η i
关于

ϕ i   ϕ i
的表达式,把它转化为

ϕ i   ϕ i
关于

η i   η i
的表达式过程为:


e η i  =ϕ i ϕ k    ⇒  ϕ k e η i  =ϕ i   ⇒ ϕ k ∑ i=1 k e η i  = ∑ i=1 k ϕ i =1  e η i = ϕ i ϕ k     ⇒     ϕ k e η i = ϕ i     ⇒   ϕ k ∑ i = 1 k e η i =   ∑ i = 1 k ϕ i = 1



所以


ϕ k =1∑ i=1 k e η i     ϕ k = 1 ∑ i = 1 k e η i



代入上面式子,所以


ϕ i =e η i  ∑ j=1 k e η j     ϕ i = e η i ∑ j = 1 k e η j



此函数称为
Softmax函数(Softmax Function)。

使用广义线性构建模型

  根据广义线性模型的假设3:

η i =θ T i x  (i=1, …,k−1)  η i = θ i T x     ( i = 1 ,   … , k − 1 )



由假设2可得


 h θ (x)=E[T(y)|x;θ]=E⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ 1{
y=1}
1{
y=2}
⋮1{
y=k−1}
 
 
|x;θ 
⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ 
          =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ϕ 1 ϕ 2 ⋮ϕ k−1  ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥  =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ exp(θ T 1 x)∑ j=1 k exp(θ T j x) exp(θ T 2 x)∑ j=1 k exp(θ T j x) ⋮exp(θ T k−1 x)∑ j=1 k exp(θ T j x)  ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ 
 
(480)(481)
 
(480) h θ ( x ) = E [ T ( y ) | x ; θ ] = E [ 1 { y = 1 } 1 { y = 2 } ⋮ 1 { y = k − 1 } | x ; θ ] (481)                     = [ ϕ 1 ϕ 2 ⋮ ϕ k − 1 ]   = [ exp ⁡ ( θ 1 T x ) ∑ j = 1 k exp ⁡ ( θ j T x ) exp ⁡ ( θ 2 T x ) ∑ j = 1 k exp ⁡ ( θ j T x ) ⋮ exp ⁡ ( θ k − 1 T x ) ∑ j = 1 k exp ⁡ ( θ j T x ) ]



就是输出了

x∈{
1,2,⋯,k−1}
 
x ∈ { 1 , 2 , ⋯ , k − 1 }

中每一类的概率,当然属于第

k  k
类的概率就是:


1−∑ i=1 k−1 ϕ i  

1 − ∑ i = 1 k − 1 ϕ i

.

  下面开始拟合参数,同样使用最大化参数θ的对数似然函数:


 l(θ)=∑ i=1 m logP(y (i) ∣ ∣ x (i) ;θ)       =∑ i=1 m log∏ l=1 k e θ T l x (i)  ∑ j=1 k e θ T j x (i)    (482)(483)  (482) l ( θ ) = ∑ i = 1 m log ⁡ P ( y ( i ) | x ( i ) ; θ ) (483)               = ∑ i = 1 m log ⁡ ∏ l = 1 k e θ l T x ( i ) ∑ j = 1 k e θ j T x ( i )



接下来使用梯度下降和牛顿法均可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182893.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • clion 激活_最新在线免费激活

    (clion 激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0BXA05X8YC-eyJsaWNlbnNlSWQi…

    2022年3月30日
  • 软件项目管理笔记

    软件项目管理笔记第一章.软件项目管理概述1.实现项目目标的制约因素有:项目范围成本进度计划客户满意度2.项目管理包括:启动过程组计划过程组执行过程组控制过程组收尾过程组3.什么是项目:为了创造一个唯一的产品或者提供一个唯一的服务而进行的临时性的努力,所以说项目具有临时性特性4.过程管理就是对过程进行管理,目的是要让过程能够被共享,复用,并得到持续的改进5.项目与日常运作的区别与共同点:项目日常运作以目标为导项通过效率和有效性的体现通过项目经理及其团队工

    2022年5月4日
  • Mybatis拦截器

    Mybatis拦截器一Mybatis拦截器介绍    Mybatis拦截器设计的初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。通过Mybatis拦截器我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。所以Mybatis拦截器的使用范围是…

    2022年7月25日
  • 微表情识别

    表情识别2019.12更新了仓库依赖。简介使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。环境部署基于Python3和Keras2(TensorFlow后端),具体依赖安装如下(推荐使用conda或者venv虚拟环境)gitclonehttp…

    2022年4月9日
  • JVM 优化实战[通俗易懂]

    JVM 优化实战[通俗易懂]本文讲解了JVM的内存划分和分配策略,并以截图和脚本展示常用可视化和命令行工具的使用方法,完整演示了JVM优化、内存泄露排查、gc.log分析方法等。作者:王克锋 出处:https://kefeng.wang/2016/11/22/java-jvm/ 版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。1GC相关内存1.1内存划分1.1.1堆(Heap)存放 newM…

    2022年6月9日
  • SpringMVC面试题大总结「建议收藏」

    SpringMVC面试题大总结「建议收藏」1、什么是SpringMVC?简单介绍下你对springMVC的理解?2、SpringMVC的流程?3、Springmvc的优点:4、SpringMVC怎么样设定重定向和转发的?5、SpringMVC常用的注解有哪些?6、SpingMvc中的控制器的注解一般用哪个?有没有别的注解可以替代?7、springMVC和struts2的区别有哪些?8、如何解决POST请求中文乱码问题,GET的又如何处理呢?9、SpringMvc里面拦截器是怎么写的:10、上传图片?11、SpringMvc怎么和AJA

    2022年6月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号