本次笔记绝大部分转自https://www.cnblogs.com/Luv-GEM/p/10674719.html

softmax回归

Logistic回归是用来解决二类分类问题的,如果要解决的问题是多分类问题呢?那就要用到softmax回归了,它是Logistic回归在多分类问题上的推广。此处神经网络模型开始乱入,softmax回归一般用于神经网络的输出层,此时输出层叫做softmax层。

1、softmax函数

首先介绍一下softmax函数,这个函数可以将一个向量(x1,x2,...,xK)映射为一个概率分布(z1,z2,...,zK),它将数据的范围映射到(0,1)区间:

那么在多分类问题中,假设类别标签y∈{1, 2, ..., C}有C个取值,那么给定一个样本x,softmax回归预测x属于类别c的后验概率为:

其中wc是第c类的权重向量。

那么样本x属于C个类别中每一个类别的概率用向量形式就可以写为:

其中W=[w1,w2,...,wC]是由C个类的权重向量组成的矩阵,1表示元素全为1的向量,得到是由所有类别的后验概率组成的向量,第c个元素就是预测为第c类的概率,比如[0.05, 0.01, 0.9, 0.02, 0.02],预测为第3类。

2、softmax回归的损失函数和梯度下降

one-hot向量:[0,0,0,1,0,...,0,0]这个向量就表示第四个类别标签,1所在的位置就是那个位置的类标签,其它全设置为0。

假设训练数据集为{(x1,y1),(x2,y2),...(xM, yM)},即有M个样本,softmax回归使用交叉熵损失函数来学习最优的参数矩阵W,对样本进行分类。

由于涉及到多分类,所以损失函数的表示方法稍微复杂一些。我们用C维的one-hot向量y来表示类别标签。对于类别c,其向量表示为:

其中表示指示函数。

则softmax回归的交叉熵损失函数为:

其中表示样本预测为每个类别的后验概率组成的向量。

上面这个式子不太好理解,我们单独拿出一个样本来观察。假设类别有三类,预测一个样本x属于第2类的交叉熵损失为,其中,如果预测正确,如,则交叉熵损失为,而如果预测错误,如,则交叉熵损失为,可见预测错误时损失非常大。

同样的,用梯度下降法对损失函数进行优化求解,首先得到损失对参数向量W的梯度:

初始化W0=0,然后对所有参数WC进行迭代更新,直至收敛。

参考资料:

1、吴恩达:《机器学习》

2、邱锡鹏:《神经网络与深度学习》

3、 https://blog.csdn.net/u010867294/article/details/79138603

机器学习之softmax回归笔记的更多相关文章

  1. 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型

    本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...

  2. 机器学习之线性回归---logistic回归---softmax回归

    在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...

  3. UFLDL深度学习笔记 (二)SoftMax 回归(矩阵化推导)

    UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细 ...

  4. Machine Learning 学习笔记 (3) —— 泊松回归与Softmax回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 泊松回归 (Poisson ...

  5. 【机器学习】Softmax 和Logistic Regression回归Sigmod

    二分类问题Sigmod 在 logistic 回归中,我们的训练集由  个已标记的样本构成: ,其中输入特征.(我们对符号的约定如下:特征向量  的维度为 ,其中  对应截距项 .) 由于 logis ...

  6. 机器学习(2):Softmax回归原理及其实现

    Softmax回归用于处理多分类问题,是Logistic回归的一种推广.这两种回归都是用回归的思想处理分类问题.这样做的一个优点就是输出的判断为概率值,便于直观理解和决策.下面我们介绍它的原理和实现. ...

  7. 机器学习(三)—线性回归、逻辑回归、Softmax回归 的区别

    1.什么是回归?  是一种监督学习方式,用于预测输入变量和输出变量之间的关系,等价于函数拟合,选择一条函数曲线使其更好的拟合已知数据且更好的预测未知数据. 2.线性回归  于一个一般的线性模型而言,其 ...

  8. UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)

    :softmax回归 当p(y|x,theta)满足多项式分布,通过GLM对其进行建模就能得到htheta(x)关于theta的函数,将其称为softmax回归. 教程中已经给了cost及gradie ...

  9. 《动手学深度学习》系列笔记—— 1.2 Softmax回归与分类模型

    目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参 ...

随机推荐

  1. 【多线程与并发】Java并发工具类

    主要有两类 ①并发流程控制相关:CountDownLatch.CyclicBarrier.Semaphore ②线程间交换数据相关:Exchanger: CountDownLatch 作用:允许一个或 ...

  2. Java 8 新特性总结

    一.Java 8 Lambda表达式 Lambda表达式,也称为闭包,它是推动Java 8发布的最重要新特性. Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法). 1.1 语法 使用 ...

  3. 2019年ArcGIS规划专业专项培训(四天)

    2019年ArcGIS规划专业专项培训(四天) 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com   第一天:GIS入门 第一章 GIS概述及其应 ...

  4. [转发]ASP.NET Core2集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)

    转载自:https://www.cnblogs.com/Andre/p/9549874.html Office Online Server是微软开发的一套基于Office实现在线文档预览编辑的技术框架 ...

  5. C# mvc后台传过来的list 怎么在js使用

    var arr= JSON.parse('@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize( ...

  6. kotlin中val和var的区别

    var: var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量.这种声明变量的方式和Java中声明变量的方式一样.val: val是一个只读变量,这种声明变量的方式相当于java中的f ...

  7. Docs-.NET-C#-指南-语言参考-关键字-值类型-:浮点数值类型

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型-:浮点数值类型 1.返回顶部 1. 浮点数值类型(C# 引用) 2019/10/22 “浮点类型”是“简单类型”的子集,可以使 ...

  8. logrotate机制&原理

    logrotate机制&原理 centos系统中默认安装logrotate,logrotate主配置文件:/etc/logrotate.conf,其中定义了系统默认的logrotate规则,当 ...

  9. Xadmin权限管理

    需求分析: 1.判断用户是否登陆,未登陆就不能进入其他页面2.为用户分配不同的权限,用户的操作只能在权限范围之内3.将用户可操作的权限显示在页面山,点击能进入该页面操作 模型表的建立 1.对每个用户建 ...

  10. 深入Resource实现多语言支持的应用详解

    首先为假设有一个应用程序CAStudy,接着右键添加一个资源文件Resource1.resx. Resource1.resx里面如下: Main函数如下:static void Main(){    ...