深度学习UFLDL教程翻译之Softmax回归

Unsupervised Feature Learning and Deep Learning(UFLDL) Exercise 代码实现 最近开始了解深度学习的东西,看到国内研究者翻译的斯坦福大学的深度学习的历程,觉得很不错,就按照学习例程学习,一步一步完成后面的练习。这个练习安排的很合理,得按顺序完成,跳跃着做可能会遇到一定的麻烦。我在完成中也遇到不少的麻烦,不过还是慢慢克服了,越往后程序对计算机的配置要求越高,需要的内存也越大。下面是我完成这些例程中一些关键性的代码,觉得有用的可以参考一下,建议大家先自己动手写,如果实在是遇到困 阅读详情

Softmax 回归

一、引入

Softmax回归(或称为多项逻辑斯特回归)是逻辑斯特回归的推广,用于处理多类问题的时候。在逻辑斯特回归中我们假设标签是二元的,y(i)∈{0,1}。我们使用这样的分类器将两种手写数字区分。Softmax回归能让我们处理y(i)∈{1,…,K}的情况,K是类别数。

回忆一下在逻辑斯特回归中,我们有m个标记的训练样本{(x(1),y(1)),…,(x(m),y(m))},其中输入特征是x(i)∈Rn维的。由于在逻辑斯特回归,我们设置了二元分类,因此标记为y(i)∈{0,1}。我们的假设函数是:

hθ(x)=1/(1+exp(−θ⊤x))

       然后训练参数θ使得代价函数最小:

J(θ)=−[∑y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]

       在softmax回归中,我们感兴趣的是多类分类(与二元分类相对),因此标记y可以输出K个不同值,而不是只有两个。因此,在我们的训练样本{(x(1),y(1)),…,(x(m),y(m))},我们有y(i)∈{1,2,…,K}。(注意我们的规定是从1开始标记类别,而不是从0开始)。例如在MNIST数字识别任务中,我们有K=10个不同类别。

       给定一个输入x,我们希望我们的假设函数能估计每一个k=1,…,K的概率P(y=k|x) 。我们需要根据k个不同的可能值来估计类别标记的概率。因此,我们的假设会输出一个k维的向量(元素值和为1),给我们提供K个不同的估计概率。具体而言,我们的假设采取这种形式:


在这里θ(1),θ(2),…,θ(K)∈Rn是我们模型的函数。注意到这一项1/∑Kj=1exp(θ(j)⊤x)标准化了分布情况,因此它们和为1.

       为了方便,我们将用θ表示模型中的所有参数。当你实现softmax回归时,将θ(1),θ(2),…,θ(K)排成列,最后将θ表示为n行K列的矩阵通常是非常方便的。


二、代价函数

我们现在描述一下待会用softmax回归所使用的代价函数。在下面的等式中,1{⋅}是个“提示函数”,就是1{a true statement}=1,1{a false statement}=0。例如1{2+2=4}值为1,而1{1+1=5}值为0。我们的代价函数是:


       注意到它是逻辑斯特回归代价函数的推广,它们能写成这种形式:


       Softmax代价函数是类似的,除了我们得到的是K个不同类别标记的可能值的总和。注意到在softmax回归中,我们有P(y(i)=k|x(i);θ)=exp(θ(k)⊤x(i))/∑exp(θ(j)⊤x(i))。

       我们无法得到J(θ)最小值的解析解,因此和往常一样,我们会求助于迭代的优化算法。通过求导,得到梯度是:


       回忆一下”∇θ(k)”的含义。特别的,∇θ(k)J(θ)本身是一个向量,它的第j个元素∂J(θ)/∂θjk是J(θ)关于θ(k)第j个参数的偏导数。

       由这个导数公式,可以将它用于标准的优化包从而最小化J(θ)。

三、softmax回归的参数特性

softmax虎归有一不寻常的特性,即它有冗余的参数集。为了解释其中含义,假设我们得到每个参数向量θ(j),然后减去一个常数向量ψ,因此每个θ(j)替换为θ(j)- ψ(j=1,…,k)。我们的假设估计各类别的概率为:


       换句话说,每个θ(j)减去ψ一点也不影响我们假设的预测。这说明softmax回归的参数集是冗余的。更正式的说,softmax模型是过度参数化的,这意味着对于我们拟合数据的假设,有多种参数设置能够得到确切相同的由输出x得到预测的假设函数hθ。

       另外,如果代价函数通过一些参数设置(θ(1),θ(2),…,θ(k))得到最小值,那么用参数(θ(1)−ψ,θ(2)−ψ,…,θ(k)−ψ)同样能得到最小值,无论ψ值是多少。这样,让J(θ)最小化的数不是唯一的。(有趣的是,J(θ)仍是凸的,因此梯度下降不会陷入局部最优的问题。但是Hessian矩阵是奇异的/不可逆的,会导致直接用牛顿方法实现会导致数值计算问题。

       注意到通过设定ψ=θ(K),总能用θ(K)−ψ=0(全零向量)代替θ(K)而不会影响假设的函数。因此,可以将参数向量减掉θ(K)(或其他θ(k),k为任意值)而不损坏我们假设的表示。的确,我们不用优化K⋅n个参数值(θ(1),θ(2),…,θ(K)),其中θ(k)是n维的,只需要设置θ(K)=0然后优化K⋅n(不应该是(K-1)⋅n?)剩下的参数值。

四、与逻辑斯特回归的关系

在K=2的特殊情况,可以看到softmax回归退化为逻辑斯特回归。这说明softmax回归是逻辑斯特回归的推广。具体而言,当K=2时,softmax回归假设输出:


       利用(softmax)假设是过度参数化的事实并设置ψ=θ(2),我们可以从每个(向量)中的两个参数减去θ(2),得到:


       这样,用一个简单的参数θ′代替θ(2)−θ(1),我们发现softmax回归预测其中一个类的概率为1/1+exp(−(θ′)⊤x(i)),另一个类的概率为1−1/1+exp(−(θ′)⊤x(i)),正如逻辑斯特回归。

保姆级教程:用掘金量化API手把手复现一个年化17%的网格交易策略(附完整Python代码) 本文提供了一份详细的掘金量化API教程,手把手教你构建一个年化17%的网格交易策略。通过完整的Python代码实现,深入解析网格交易的核心逻辑、参数配置和动态调仓机制,帮助量化新手快速掌握策略开发全流程。教程包含环境配置、代码实现、回测分析和常见问题解答,是学习量化投资的实用指南。 阅读详情

相关推荐

软件测试方法——等价类划分法详解

!如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图。

MXB1220的博客 1万+

softmax详解

softmax又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是 下图展示了softmax的计算方法: 指数函数的值域是(0,∞)。...

苦逼的程序猿 4万+

N32串口DMA接收不定长数据:空闲中断与DMA通道的协同处理

本文详细解析了在N32系列MCU中,利用串口空闲中断与DMA通道协同处理不定长数据的核心机制与实战方法。通过剖析空闲中断的触发时机、DMA的配置要点以及两者协同工作的关键时序,提供了避免数据错乱的避坑指南和完整的代码实现,旨在帮助开发者构建高效、可靠的嵌入式串口通信子系统。

weixin_29191669的博客 124

李沐-动手学深度学习-softmax介绍

回归估计一个连续值 分类预测一个离散类别 softmax函数的解释: Softmax从字面上来说,可以分成soft和max两个部分。max故名思议就是最大值的意思。Softmax的核心在于soft,而soft有软的含义,与之相对的是hard硬。很多场景中需要我们找出数组所有元素中值最大的元素,实质上都是求的hardmax。 hardmax最大的特点就是只选出其中一个最大的值,即非黑即白。但是往往在实际中这种方式是不合情理的,比如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章

qq_60678226的博客 3242

SAP资产按每天折旧功能介绍

注意:此处在计算百分比时将30天作为剩余使用寿命,因为SAPS/4HANA中的计算是通过考虑购置第一年的折旧总天数来进行的。这是因为我在计算总使用寿命时只使用了365天,如果剩余使用寿命大于1年,SAPS/4HANA会将闰年规范化为365天。此功能仅对确定使用寿命或剩余寿命百分比的折旧键有用,如果需要,这种折旧到日的解决方案可以应用于需要每天计算折旧的跨行业(任何国家/行业)。注意:这里在计算百分比时考虑了2天,因为364天已经过期,但目前我们到达2024年,使用寿命为366天。它只会在下一年生效。

yanzibing99的博客 1562

DAF-Net:动态注意力红外-可见光图像融合

DAF-Net 红外-可见光融合链路:IR/VIS 双分支 (Conv+ResBlock → 64ch) → DynamicAttentionFusion (Cat→Sigmoid→加权) → 重建 (Conv→Sigmoid)。TNO 上 SSIM=0.782 (vs IR), 0.734 (vs VIS), 参数量仅 218K。核心贡献:轻量动态注意力门控, 无监督 SSIM+MSE 损失不需要配准 ground truth。

FJN110的博客 320

Softmax 是什么意思

softmax函数详解 Softmax 函数的特点和作用是什么?

ruxming 专栏 1381

QT实现警报应用程序

QT实现警报应用程序

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2043

softmax 简析

什么是softmax 意为 soft max,柔软的最大值。softmax的数学公式为                        (1) 一组原始数据共k个 (j=1...k),每一个元素根据公式(1)转为   ,得到一组新的数据共k个。即将原有数据指数后标准化处理为0~1间的数,且k个数据总和为1.   这样的softmax公式一般用于分类问题。   如何用softmax分类:...

Sue_qx的博客 980

VSS shielding线可以floating吗?

shielding vss不打孔,就相当于dummy metal,如果周围有其他干扰线,他们影响了这段dummy metal,这段dummy metal仍然会对目标线产生干扰,bug的是,工具知道这段dummy是vss,那么计算寄生的时候仍然把它当vss,就有可能噪声没有完全消除,而用户又看不见。而真正接地的线,相当于一直是0,就不会对目标线产生干扰,一般加shield是在route之前,这时候shield能尽量覆盖目标线,等到绕线后再加就会出现shield只覆盖到一部分目标线的情况。

m0_61544122的博客 6640

【四足机器人项目实战】cheetah 3/mini运动控制工程解读(附C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、主程序入口1.代码流程2.终端设置信息提示二、用MiniCheetahHardwareBridge类构造一个hw的对象并初初始化1.2.3.4.三、运行硬件桥驱动【MiniCheetahHardwareBridge】1.2.3.4.四、1.2.3.4.总结参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对cheetah3/m

qq_35635374的博客 2617

Python----深度学习(Softmax与交叉熵)

Softmax是一种常见的激活函数,可以将计算出来的数值通过公式变成概率,通常用 在分类中。Softmax从字面上来说,可以分成soft和max两个部分。Max顾名思义就是最大值的 意思。Softmax的核心在于soft,而soft有软的含义,与之相对的是hard硬。很多场 景中需要我们找出数组所有元素中值最大的元素,实质上都是求的hardmax。hardmax最大的特点就是只选出其中一个最大的值,即非黑即白。

weixin_64110589的博客 1169

Coze智能体开发:开始使用扣子

扣子全新升级!它不仅能帮你办公、做视频、写代码,更具备自主任务执行、探索进化等能力,真正从“陪你聊”走向“帮你干活”。

王国平的博客 125

UFLDL新版教程与编程练习(五):Softmax Regression(softmax回归,向量化)

UFLDL是吴恩达团队编写的较早的一门深度学习入门,里面理论加上练习的节奏非常好,每次都想快点看完理论去动手编写练习,因为他帮你打好了整个代码框架,也有详细的注释,所以我们只要实现一点核心的代码编写工作就行了,上手快! 我这里找不到新版对应这块的中文翻译了,-_- 第五节是:Softmax Regression(softmax回归),下面我会同时提供向量化与非向量化的代码。 softmax回归其实...

laizi_laizi的博客 606

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

DNN:逻辑回归与 SoftMax 回归方法

第四章:SoftMax回归 UFLDL Tutorial 翻译系列:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 简介:见 AI : 一种现代方法。Chapter21. Reinforce Learning p.703             Softmax函数为多个变量的Logitic函数的泛化.      ...

wishchinYang的专栏 8229

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

UFLDL教程 -- 译文版

原文地址:http://deeplearning.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B 说明:本教程将阐述无监督特征学习和深度学习的主要观点。通过学习,你也将实现多个功能学习/深度学习算法,能看到它们为你工作,并学习如何应用/适应这些想法到新问题上。 本教程假定机器学习的基本知识(特别是熟悉的监督学习,逻辑回归,梯度下降的想

xceman1997的专栏 2244

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Unsupervised Feature Learning and Deep Learning(UFLDL) Exercise 总结

分类: 机器学习 Deep Learning 计算机视觉2013-08-11 21:43 1816人阅读 评论(8) 收藏 举报 7.27 暑假开始后,稍有时间,“搞完”金融项目,便开始跑跑 Deep Learning的程序 Hinton 在Nature上文章的代码 跑了3天 也没跑完 后来Debug 把batch 从200改到20 勉强跑出结果 后来开始看

pi9nc的专栏 1108

深度学习大牛andrew.Ng DeepLearning

MachineLearning 关注 深度学习DL(教程) 转自:http://blog.sina.com.cn/s/blog_46d0a3930101h6nf.html非常激动地宣告,Stanford 教授 Andrew Ng 的 Deep Learning 教程,于今日,2013年4月8日,全部翻译成中文。这是中国屌丝军团,从2月20日战役打响之日,经过 50 天的团结奋战

dzh13546101702的专栏 2364

Deep Learning 教程翻译

Deep Learning 教程翻译   转载▼ 标签:  机器学习   大数据   深度学习   stanford   公开课 分类: 众包项目 非常激动地宣告,Stanford 教授 Andrew Ng 的 Deep Learning 教程,于今日,2013年4月8日,全部翻译成中文。这是中国屌

Eagleest的专栏 1506

深度学习算法原理——栈式自编码神经网络

注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,记录下神经网络到深度学习的一些知识点。整个教材已经非常好,网上有原版的英文版,也有翻译的中文版,这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知...

null的专栏 1万+

softmax函数

Softmax从字面上来说,可以分成soft和max两个部分。max故名思议就是最大值的意思。Softmax的核心在于soft,而soft有软的含义,与之相对的是hard硬。很多场景中需要我们找出数组所有元素中值最大的元素,实质上都是求的hardmax。下面使用Numpy模块以及TensorFlow深度学习框架实现hardmax。a = np.array([1, 2, 3, 4, 5]) # 创建ndarray数组通过上面的例子可以看出hardmax最大的特点就是只选出其中一个最大的值,即非黑即白。

qq_55552561的博客 4139

Softmax简介

来源:DeepHub IMBA 本文约1300字,建议阅读5分钟 Softmax是逻辑回归的一种推广,可以用于多分类任务,其公式与逻辑回归的sigmoid函数非常相似。Softmax是一种数学函数,通常用于将一组任意实数转换为表示概率分布的实数。其本质上是一种归一化函数,可以将一组任意的实数值转化为在[0, 1]之间的概率值,因为softmax将它们转换为0到1之间的值,所以它们可以被解释为概率。...

数据派THU 1080
上一篇: 吴恩达机器学习笔记_第五周
下一篇: 基于Ubuntu的无GPU的Caffe配置
hunterlew
博客等级 码龄15年 432粉丝 128原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值