softmax 回归原理及python实现

来源:互联网 发布:兰蔻小黑瓶眼膜霜 知乎 编辑:程序博客网 时间:2024/04/29 00:15

softmax回归python实现程序

1、Logistic回归:

1.1、逻辑回归数据集

[(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))]

y{0,1}

1.2、 样本发生的概率,即y取1的概率:

hθ(x)=11+exp(θx)

1.3、整个样本的似然函数为:

  • 似然函数
    L=hθ(x(i))y(i)(1hθ(x(i)))1y(i)
  • 对数似然函数为:
    logL=i=1m(y(i)log(hθ(x(i))+(1y(i))log(1hθ(x(i))))

1.4、代价函数,及代价函数偏导:

  • 代价函数
    J(θ)=1mi=1m(y(i)log(hθ(x(i))+(1y(i))log(1hθ(x(i))))
  • 代价函数的偏导数:
    J(θ)θj=1m(i=1m(y(i)hθ(x(i)))x(i))

1.5、梯度下降更新参数:

θj:=:=θjαJ(θ)θjθj+αm(i=1m(y(i)hθ(x(i)))x(i)j)

1.6、对参数L2正则化

  • L2
    J(θ)=1m(i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))+λ2mj=1nθ2
  • θ
    θj:=θj+αm(i=1m(y(i)hθ(x(i))x(i)j)αλmθj(j=1,...,n)

    θjx

2、softmax回归:

2.1、softmax回归数据集

[(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))]y{0,1,...,k}

x(m)x

2.2、softmax概率函数

hθ(x(i))=p(y(1)=1|x(i);θ)p(y(1)=2|x(i);θ)p(y(1)=k|x(i);θ)=1kj=1exp(θTjx(i))exp(θT1x(i))exp(θT2x(i))exp(θTkx(i))

p1l=exp(θTlx(1))kj=1exp(θTjx(1)),l=1,2,,k

P=p11p21pm1p12p22pm2p1kp2kpmk

θk×(n+1)

θ=θT1θT2θTk

2.3、softmax回归的损失函数为:

J(θ)=1mi=1mj=1k1{y(i)=j}logexp(θTjx(i))kl=1exp(θTlx(i))


  • 损失函数的矩阵形式为:
    Jθ=1msum(Y logP)
  • 对Y相应的解释
    y=1100k

    对应Y为
    Y=001101100000001

y=k 则第k列数字对应1,其余列为0.

2.4、softmax回归损失函数的偏导为:

θjJ(θ)====1mi=1mj=1k1{y(i)=j}kl=1exp(θTlx(i))exp(θTjx(i))(exp(θTjx(i))kl=1exp(θTlx(i)))1mi=1mkl=1exp(θTlx(i))exp(θTjx(i))1{y(i)=j} exp(θTjx(i)) kl=1exp(θTlx(i))exp(θTjx(i)) exp(θTjx(i))(kl=1exp(θTlx(i)))2 x(i)1mi=1m1{y(i)=j}exp(θTjx(i))kl=1exp(θTlx(i)) x(i)1m[i=1m(1{y(i)=j}p(y(i)=j|x(i);θ)) x(i)]


  • 矩阵形式为:
    θJ(θ)=1m(YP)TX

(YP)m×k,Xm×(n+1)

2.5、对参数正则化处理

  • 损失函数:
    J(θ)=1mi=1mj=1k1{y(i)=j}logexp(θTjx(i))kl=1exp(θTlx(i))+λ2j=1kb=0nθ2jb
  • 损失函数关于θj的偏导为:

θjJ(θ)=1m[i=1m(1{y(i)=j}p(y(i)=j|x(i);θ)) x(i)]+λ θj

2.6、更新参数

θj:=θjαθjJ(θ) j=1,2,...,k

θj

矩阵更新:

θ:=θθJ(θ)

θ为一个矩阵

0 0
原创粉丝点击