softmax regression tensorflow实现 matlablib显示

14 篇文章 0 订阅
10 篇文章 0 订阅
  • softmax regression 是在 logistic regression 基础上做的推广,logistic regression只要用于处理二分类问题,二softmax regression用于处理多分类问题
  • softmax regression模型

    假设有m个训练样本, { ( X 1 , y 1 ) , ( X 2 , y 2 ) . . . . . . ( X m , y m ) } \left \{ (X^{1},y^{1}),(X^{2},y^{2})......(X^{m},y^{m}) \right \} {(X1,y1),(X2,y2)......(Xm,ym)},X为实数范围的向量,类标签的范围为 { 0 , 1...... k } \left \{ 0,1......k \right \} {0,1......k}。假设函数为每一个样本估计其所属类别的概率 P ( y = 1 ∣ X ) P(y=1|X) P(y=1X),具体的函数为: h θ ( X i ) = [ P ( y i = 1 ∣ X i ; θ ) P ( y i = 2 ∣ X i ; θ ) P ( y i = k ∣ X i ; θ ) ] = 1 ∑ j = 1 k e θ j T X i [ e θ 1 T X i e θ 2 T X i . . . . . . e θ k T X i ] h_{\theta }(X^{i})=\begin{bmatrix} P(y^{i}=1|X^{i};\theta )\\ P(y^{i}=2|X^{i};\theta )\\ P(y^{i}=k|X^{i};\theta ) \end{bmatrix}=\frac{1}{\sum_{j=1}^{k}e^{\theta _{j}^{T}X^{i}}}\begin{bmatrix} e^{\theta _{1}^{T}X^{i}}\\ e^{\theta _{2}^{T}X^{i}}\\ ......\\ e^{\theta _{k}^{T}X^{i}} \end{bmatrix} hθ(Xi)=P(yi=1Xi;θ)P(yi=2Xi;θ)P(yi=kXi;θ)=j=1keθjTXi1eθ1TXieθ2TXi......eθkTXi
    其中: 1 ∑ j = 1 k e θ j T X i \frac{1}{\sum_{j=1}^{k}e^{\theta _{j}^{T}X^{i}}} j=1keθjTXi1这一项是对概率分布进行归一化。
    至于假设函数的证明,请阅读https://www.cnblogs.com/BYRans/p/4905420.html这位博主写的,很详细。

  • softmax regression代价函数(损失函数)

    J ( θ ) = − 1 m [ ∑ i = 1 m ∑ j = 1 k I { y i = j } l o g e θ j T X i ∑ l = 1 k e θ j T X i ] J(\theta )=-\frac{1}{m}\left [ \sum_{i=1}^{m}\sum_{j=1}^{k}I\left \{ y^{i}=j \right \} log\frac{e^{\theta _{j}^{T}X^{i}}}{\sum_{l=1}^{k} e^{\theta _{j}^{T}X^{i}}} \right ] J(θ)=m1[i=1mj=1kI{yi=j}logl=1keθjTXieθjTXi]其中, I { y i = j } I\left \{ y^{i}=j \right \} I{yi=j}表示的是当 y i y^{i} yi属于j类是, I { y i = j } I\left \{ y^{i}=j \right \} I{yi=j}值为1,否则为0。

  • 梯度下降求解

    对上面的代价函数,求梯度可以得到: − 1 m ∑ i = 1 m [ X i ( I { y i = j } − P ( y i = j ∣ X i ; θ ) ) ] -\frac{1}{m}\sum_{i=1}^{m}[X^{i}(I\left \{ y^{i}=j \right \}-P(y^{i}=j|X^{i};\theta ))] m1i=1m[Xi(I{yi=j}P(yi=jXi;θ))]

  • 用python实现上述过程。具体代码在:https://github.com/xzccfzy/softmax_regression.git主要参考了书上的内容和代码,先记录下来。
  • tensorflow 所用的数据是一些坐标点。具体代码在:https://github.com/xzccfzy/softmax_regression.git
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值