学习笔记——机器学习–多项式分布及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 ,所以通常我们只需要 k1  k − 1 个参数即 ϕ 1 ,,ϕ k1   ϕ 1 , ⋯ , ϕ k − 1
 P(y=i;ϕ)=ϕ i   P(y=k;ϕ)=1 i=1 k1 ϕ i   (397)  (397) P ( y = i ; ϕ ) = ϕ i   P ( y = k ; ϕ ) = 1 − ∑ i = 1 k − 1 ϕ i  
为了推导方便,引入表达式:
T(1)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 1000 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ , T(2)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 0100 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ , , T(k1)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 0001 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ,  T(k)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ 0000 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥   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 ) k1  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,可以求出

k1  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) k1  k1 ϕ T(y) k  k            =ϕ T(y) 1  1 ϕ T(y) 2  2 ϕ T(y) k1  k1 ϕ 1 i=1 k1 T(y) i  k            =exp(T(y) 1 logϕ 1 ++(1 i=1 k1 T(y) i )logϕ k )           =exp(T(y) 1 logϕ 1 ϕ k  +T(y) 2 logϕ 2 ϕ k  ++T(y) k1 logϕ k1 ϕ 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ϕ k1 ϕ k   ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ R k1 ,  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, ,k1)  η i = θ i T x     ( i = 1 ,   … , k − 1 )



由假设2可得


 h θ (x)=E[T(y)|x;θ]=E⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ 1{
y=1}
1{
y=2}
1{
y=k1}
 
 
|x;θ 
⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ 
          =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ϕ 1 ϕ 2 ϕ k1  ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥  =⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ exp(θ T 1 x) j=1 k exp(θ T j x) exp(θ T 2 x) j=1 k exp(θ T j x) exp(θ T k1 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,,k1}
 
x ∈ { 1 , 2 , ⋯ , k − 1 }

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

k  k
类的概率就是:


1 i=1 k1 ϕ 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • itouch ios4 部分应用程序 打不开 解决办法

    itouch ios4 部分应用程序 打不开 解决办法

    2021年5月8日
    143
  • 解决SqlTransaction用尽的问题(SQL处理超时)

    解决SqlTransaction用尽的问题(SQL处理超时)有时候程序处理的数据量比较小时,四平八稳,一切安然无恙,但数据量一大,原先潜伏的问题就暴露无遗了。原访问数据库的代码为: 1SqlConnection conn = new SqlConnection(strConn); 2conn.Open(); 3SqlTransaction trans = conn.BeginTransaction(); 4try 5{ 6    CEngine.Exe…

    2022年5月18日
    33
  • 反射和动态实例化

    反射和动态实例化

    2021年7月20日
    57
  • java将字符串分段输出_java输入字符串并将每个字符输出的方法[通俗易懂]

    java将字符串分段输出_java输入字符串并将每个字符输出的方法[通俗易懂]java输入字符串并将每个字符输出的方法如下所示:importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){inti,len;Stringstr;Scannerin=newScanner(System.in);str=in.next();len=str.length();…

    2022年10月17日
    1
  • ETAP软件–可靠性计算

    ETAP软件–可靠性计算对单辐射架空线路进行可靠性计算过程。图1单辐射架空线路分段接线图各元件可靠性参数如下:架空线路故障停运率(次/百公里) 55.865架空线路停电平均持续时间(小时) 4.1622断路器故障停运率(次/百台) 1.699断路器停电平均持续时间(小时) 4.8864开关故障停运率(次/百台) 54.677开关停电平均持续时间(小时) 1.9361每个负荷点带2个用户,架空线路长度,…

    2022年7月14日
    23
  • mysql基本操作_MySQL创建数据库表

    mysql基本操作_MySQL创建数据库表1、数据库简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。2、为什么需要数据库3、为什么要学习MySQL数据库最早MySQL数据,瑞典AB公司开发的一款开源型的关系型数据库。随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司)后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库)4、数

    2022年10月6日
    0

发表回复

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

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