您的位置:首页 > 编程语言 > Python开发

softmax 回归原理及python实现

2017-01-17 14:05 253 查看
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)(1−hθ(x(i)))1−y(i)

对数似然函数为:

logL=∑i=1m(y(i)log(hθ(x(i))+(1−y(i))log(1−hθ(x(i))))

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

代价函数

J(θ)=−1m∑i=1m(y(i)log(hθ(x(i))+(1−y(i))log(1−hθ(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)))+(1−y(i))log(1−hθ(x(i))))+λ2m∑j=1nθ2

θ迭代更新公式为

θj:=θj+αm(∑i=1m(y(i)−hθ(x(i))x(i)j)−αλmθj(j=1,...,n)

θj为每列x对应的参数,为一个数

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);θ)⎤⎦⎥⎥⎥⎥⎥=1∑kj=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=⎡⎣⎢⎢⎢⎢⎢p11p21⋮pm1p12p22⋮pm2⋯⋯⋮⋯p1kp2k⋮pmk⎤⎦⎥⎥⎥⎥⎥

θ为一个k×(n+1)的矩阵

θ=⎡⎣⎢⎢⎢⎢⎢θT1θT2⋮θTk⎤⎦⎥⎥⎥⎥⎥

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

J(θ)=−1m⎡⎣∑i=1m∑j=1k1{y(i)=j}logexp(θTjx(i))∑kl=1exp(θTlx(i))⎤⎦

损失函数的矩阵形式为:

Jθ=−1msum(Y logP)

对Y相应的解释

y=⎡⎣⎢⎢⎢⎢⎢⎢1100k⎤⎦⎥⎥⎥⎥⎥⎥

对应Y为

Y=⎡⎣⎢⎢⎢⎢⎢⎢0011011000⋯⋯⋯⋯⋯00001⎤⎦⎥⎥⎥⎥⎥⎥

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

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

▽θjJ(θ)====−1m⎡⎣∑i=1m∑j=1k1{y(i)=j}∑kl=1exp(θTlx(i))exp(θTjx(i))(exp(θTjx(i))∑kl=1exp(θTlx(i)))′⎤⎦−1m⎡⎣∑i=1m∑kl=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)⎤⎦−1m⎡⎣∑i=1m⎛⎝1{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(Y−P)TX

(Y−P)维度为m×k,X为m×(n+1)

2.5、对参数正则化处理

损失函数:

J(θ)=−1m⎡⎣∑i=1m∑j=1k1{y(i)=j}logexp(θTjx(i))∑kl=1exp(θTlx(i))⎤⎦+λ2∑j=1k∑b=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(θ)

θ为一个矩阵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: