softmax regression 代价函数:

J(θ)=−1m[∑i=1m∑j=1k1{y(i)=j}logeθjTX(i)∑l=1keθlTX(i)]J(\theta) = -\frac{1}{m}\left[\sum_{i=1}^{m}\sum_{j=1}^{k}1\{y^{(i)}=j\}log \frac{e^{{\theta_j^T}{X^{(i)}}}}{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}}\right] J(θ)=−m1​[i=1∑m​j=1∑k​1{y(i)=j}log∑l=1k​eθlT​X(i)eθjT​X(i)​]
其中,1{y(i)=j}表示的是当y(i)属于类别j时,1{y(i)=j}=1, 否则,1{y(i)=j}=0.

对损失函数求导:

∇θjJ(θ)=−1m∑i=1m[∇θj∑j=1k1{y(i)=j}logeθjTX(i)∑l=1keθlTX(i)]=−1m∑i=1m[1{y(i)=j}⋅∑l=1keθlTX(i)eθjTX(i)⋅(−eθjTX(i)⋅X(i)⋅eθjTX(i)(∑l=1keθlTX(i))2+eθjTX(i)⋅X(i)∑l=1keθlTX(i))]=−1m∑i=1m[1{y(i)=j}⋅∑l=1keθlTX(i)−eθjTX(i)∑l=1keθlTX(i)⋅X(i)]\nabla_{\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}\left[\nabla_{\theta_j}\sum_{j=1}^{k}1\{y^{(i)}=j\}log \frac{e^{{\theta_j^T}{X^{(i)}}}}{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}}\right] \\=-\frac{1}{m}\sum_{i=1}^{m}\left[1\{y^{(i)}=j\}⋅\frac{\sum_{l=1}^ke^{{\theta_l^T}X^{(i)}}}{e^{\theta_j^TX^{(i)}}} ⋅\left(-\frac{e^{{\theta_j^T}X^{(i)}}⋅X^{(i)}⋅{e^{{\theta_j^T}{X^{(i)}}}}}{\left({\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}}\right)^2} + \frac{e^{{\theta_j^T}X^{(i)}}⋅X^{(i)}}{{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}}}\right)\right]\\=-\frac{1}{m}\sum_{i=1}^{m}\left[1\{y^{(i)}=j\}⋅\frac{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}-e^{{\theta_j^T}{X^{(i)}}}}{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}}⋅X^{(i)}\right] ∇θj​​J(θ)=−m1​i=1∑m​[∇θj​​j=1∑k​1{y(i)=j}log∑l=1k​eθlT​X(i)eθjT​X(i)​]=−m1​i=1∑m​⎣⎢⎡​1{y(i)=j}⋅eθjT​X(i)∑l=1k​eθlT​X(i)​⋅⎝⎜⎛​−(∑l=1k​eθlT​X(i))2eθjT​X(i)⋅X(i)⋅eθjT​X(i)​+∑l=1k​eθlT​X(i)eθjT​X(i)⋅X(i)​⎠⎟⎞​⎦⎥⎤​=−m1​i=1∑m​[1{y(i)=j}⋅∑l=1k​eθlT​X(i)∑l=1k​eθlT​X(i)−eθjT​X(i)​⋅X(i)]

第一步求导中,首先是对数函数的求导,此处将log看成ln:

(lnx)′=1x(lnx)' = \frac{1}{x} (lnx)′=x1​
其次是对指数函数的求导:

(ex)′=ex(e^x)'=e^x (ex)′=ex

另外对?_j_的求导是针对?中的某一项j,所以其他非j的?项求导后为0.
这一步还有看不懂的可以参考一下求导例题:

而对于每一个样本,估计其所属的类别的概率为:

P(y(i)=j∣X(i);θ)=eθjTX(i)∑l=1keθlTX(i)P(y^{(i)}=j|X^{(i)};\theta)=\frac{e^{{\theta_j^T}{X^{(i)}}}}{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}} P(y(i)=j∣X(i);θ)=∑l=1k​eθlT​X(i)eθjT​X(i)​

所以最终的结果是:

∇θjJ(θ)=−1m∑i=1m[1{y(i)=j}⋅∑l=1keθlTX(i)−eθjTX(i)∑l=1keθlTX(i)⋅X(i)]=−1m∑i=1m[X(i)⋅(1{y(i)=j}−P(y(i)=j∣X(i);θ))]\nabla_{\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}\left[1\{y^{(i)}=j\}⋅\frac{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}-e^{{\theta_j^T}{X^{(i)}}}}{\sum_{l=1}^ke^{{\theta_l^T}{X^{(i)}}}}⋅X^{(i)}\right]\\=-\frac{1}{m}\sum_{i=1}^{m}\left[X^{(i)}⋅\left(1\{y^{(i)}=j\}-P(y^{(i)}=j|X^{(i)};\theta)\right)\right] ∇θj​​J(θ)=−m1​i=1∑m​[1{y(i)=j}⋅∑l=1k​eθlT​X(i)∑l=1k​eθlT​X(i)−eθjT​X(i)​⋅X(i)]=−m1​i=1∑m​[X(i)⋅(1{y(i)=j}−P(y(i)=j∣X(i);θ))]
此处?_j_表示的是一个向量。
通过梯度下降法的公式可心更新如下:

θj=θj+α∇θjJ(θ)\theta_j = \theta_j+\alpha\nabla_{\theta_j}J(\theta) θj​=θj​+α∇θj​​J(θ)

更详细了解Softmax回归可参考Ufldl教程。

Softmax Regression损失函数的求导相关推荐

  1. 交叉熵代价函数(损失函数)及其求导推导 (Logistic Regression)

    目录 1. 前言 2. 交叉熵损失函数 3. 交叉熵损失函数的求导 前言 说明:本文只讨论Logistic回归的交叉熵,对Softmax回归的交叉熵类似(Logistic回归和Softmax回归两者本 ...

  2. sigmoid函数求导_交叉熵损失函数的求导(Logistic回归)

    目录 前言 交叉熵损失函数 交叉熵损失函数的求导 前言 最近有遇到些同学找我讨论sigmoid训练多标签或者用在目标检测中的问题,我想写一些他们的东西,想到以前的博客里躺着这篇文章(2015年读研时机 ...

  3. 交叉熵代价函数(损失函数)及其求导推导

    转自:http://blog.csdn.net/jasonzzj/article/details/52017438 前言 交叉熵损失函数 交叉熵损失函数的求导 前言 说明:本文只讨论Logistic回 ...

  4. softmax with cross-entropy loss求导(转载+细节整理)

    softmax 函数 softmax(柔性最大值)函数,一般在神经网络中, softmax可以作为分类任务的输出层. 其实可以认为softmax输出的是几个类别选择的概率,比如我有一个分类任务,要分为 ...

  5. 对逻辑回归损失函数进行求导

    如果我们基于逻辑回归的损失函数做GD梯度下降,那么就要求梯度,而我们知道求梯度是loss损失函数对theta求偏导. 1.首先先对逻辑回归函数求导(后面对loss求偏导会用到) 2.逻辑回归损失函数 ...

  6. [损失函数]Softmax求导

    原文链接: https://blog.csdn.net/u014380165/article/details/79632950 我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个C ...

  7. 卷积神经网络系列之softmax loss对输入的求导推导

    我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等.虽然现在已经开源了很多深度学习框架(比如MxNet,Caf ...

  8. softmax loss对输入的求导推导

    转载自: https://blog.csdn.net/u014380165/article/details/79632950 我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CN ...

  9. 【数据挖掘】神经网络 后向传播算法 ( 梯度下降过程 | 梯度方向说明 | 梯度下降原理 | 损失函数 | 损失函数求导 | 批量梯度下降法 | 随机梯度下降法 | 小批量梯度下降法 )

    文章目录 I . 梯度下降 Gradient Descent 简介 ( 梯度下降过程 | 梯度下降方向 ) II . 梯度下降 示例说明 ( 单个参数 ) III . 梯度下降 示例说明 ( 多个参数 ...

最新文章

  1. 简评亚洲人工智能发展现状:机遇与挑战并存
  2. PHP获取二维数组中某一列的值集合
  3. Oracle表无法expdp,{Oracle数据库}EXPDP报错ORA-39171、ORA-01691解决方法
  4. 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)
  5. 动态规划经典题之石子合并
  6. 用jdbc操作mysql 实现注册功能_JDBC链接Mysql数据库---实现登陆注册功能
  7. 8187l网卡驱动 linux版,在Ubuntu中安装使用realtek 8187b无线网卡
  8. Garbled Circuits介绍 - 2 基础知识
  9. C语言客房管理系统课程设计
  10. windows2012运行linux,在 Windows Server 2012 R2 Hyper-V 上提供 Linux 支持
  11. python中安装decimal模块_python decimal和fractions模块
  12. python语言玫瑰花_python 实现漂亮的烟花,樱花,玫瑰花
  13. HTML 写代码流星雨
  14. 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?
  15. Java面试-001
  16. 百度360搜索关键字
  17. oracle表数据如何导出成dbf,怎么将EXCEL导成DBF?《dbf导出excel数据》
  18. python 躺着刷视频(自动刷视频)
  19. 行列式计算(编程实现)
  20. java计算机毕业设计医疗健康管理平台会员管理子系统源码+数据库+系统+lw文档+部署

热门文章

  1. 点赋科技:淘宝关键词搜索不到是什么原因?
  2. Linux搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务
  3. 15. 生死执行力—电商经营之道
  4. word 2007 不能输入(搜狗)中文的解决办法
  5. 【全国数据】全国五级河流水系shp下载
  6. 谷歌浏览器Google Chrome 88.0.4324.104 Stable 官方正式版
  7. 【开发教程1】人形街舞机器人-套件检测教程
  8. [转] Xcode 高级调试技巧
  9. To install it, you can run: npm install --save module
  10. ERROR: Error fetching remote repo ‘origin‘解决办法