机器学习深度学习——softmax回归(上)

news2024/11/24 4:08:49

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er
🌌上期文章:机器学习&&深度学习——线性回归的简洁实现
📚订阅专栏:机器学习&&深度学习
希望文章对你们有所帮助

softmax回归

  • 分类问题
  • 网络架构
  • 全连接层的参数开销
  • softmax运算
  • 小批量样本的矢量化

回归可以用来预测多少的问题,比如房屋被售出价格。而除了预测,我们也对分类问题感兴趣,不是问“多少”,而是问“哪一个”。如:“某个邮件是否是垃圾邮件?图像描绘的是什么动物?某人接下来最可能看哪部电影?”

分类问题

以图像分类为例,每次输入一个2×2的灰度图像,可以用一个标量表示每个像素值,每个图像对应四个特征x1、x2、x3、x4。假设每个图像属于类别“猫”“鸡”和“狗”中的一个。
接下来要选择如何表示标签,最直接的想法是选择y∈{1,2,3}分别代表{狗,猫,鸡}。
如果类别间有一些自然顺序,比如我们要试图预测{婴儿,儿童,青少年,青年人,中年人,老年人},那么该问题就会转变为回归问题。但一般的分类问题和类别之间的自然顺序是无关的。
独热编码
独热编码是一个向量,它的分量与类别是一样多的。类别对应的分量设置为1,其它所有分量设置为0,如:
y∈{(1,0,0),(0,1,0),(0,0,1)}分别代表三类动物。

网络架构

要解决线性模型的分类问题,需要设置和输出一样多的仿射函数,在上面的问题中,我们有4个特征和3个可能的输出类别,所以我们需要用12个标量来表示权重,3个标量来表示偏置(带下标的b):
o 1 = x 1 w 11 + x 2 w 12 + x 3 w 13 + x 4 w 14 + b 1 o 2 = x 2 w 21 + x 2 w 22 + x 3 w 23 + x 4 w 24 + b 2 o 1 = x 1 w 31 + x 2 w 32 + x 3 w 33 + x 4 w 34 + b 3 o_1=x_1w_{11}+x_2w_{12}+x_3w_{13}+x_4w_{14}+b_1\\ o_2=x_2w_{21}+x_2w_{22}+x_3w_{23}+x_4w_{24}+b_2\\ o_1=x_1w_{31}+x_2w_{32}+x_3w_{33}+x_4w_{34}+b_3 o1=x1w11+x2w12+x3w13+x4w14+b1o2=x2w21+x2w22+x3w23+x4w24+b2o1=x1w31+x2w32+x3w33+x4w34+b3
其中o表示未规范化的预测。
我们可以用神经网络图来描述这个计算过程,显然softmax回归也是个单层神经网络。由于输出取决于所有的输入,所以softmax回归的输出层也是全连接层
在这里插入图片描述
可以用o=Wx+b来表示模型。

全连接层的参数开销

全连接层无处不在,对于任何具有d个输入和q个输出的全连接层,参数开销为:
O ( d q ) O(dq) O(dq)
这个数字还是太大了,但将d个输入转换为q个输出的成本可以减少到:
O ( d q n ) O(\frac{dq}{n}) O(ndq)
超参数n可以由我们灵活指定。

softmax运算

现在我们将优化参数以最大化观测数据的概率。为了得到预测结果,我们设置一个阈值,如选择具有最大概率的标签。
我们希望模型输出三个类的概率,然后选用最大输出值来作为我们的预测。
我们不能将未规范化的预测o直接视作我们感兴趣的输出。因为将线性层的输出直接视为概率时会存在一些问题:
1、我们没有限制这些输出数字的总和为1。
2、根据输入的不同,它们可以为负值,违背了概率基本公理。
要将输出视为概率,必须保证在任何数据上的输出都是非负的且总和为1。此外,需要训练一个目标函数,来激励模型精准的估计概率。例如,在分类器输出0.5的所有样本中,我们希望这些样本是刚好有一半实际上属于预测的类别。这个属性叫做校准
而softmax函数能够将未规范化的预测变换为非负数并且总和为1,同时让模型保持可导的性质。为了完成这一目标,我们首先对每个未规范化的预测求幂,这样可以确保输出非负。为了确保最终输出的概率值总和为1,我们让每个求幂后的结果除以它们的总和:
y ^ = s o f t m a x ( o ) ,其中 y ^ j = e x p ( o j ) ∑ k e x p ( o k ) \hat{y}=softmax(o),其中\hat{y}_j=\frac{exp(o_j)}{\sum_kexp(o_k)} y^=softmax(o),其中y^j=kexp(ok)exp(oj)
这里,对于所有的j,总有:
0 ≤ y ^ j ≤ 1 0≤\hat{y}_j≤1 0y^j1
因此,y hat可以视为一个正确的概率分布。
softmax运算不会改变未规范化的预测o之间的大小次序,只会确定分配给每个类别的概率。因此,在预测过程中,我们可以用下式来选择最有可能的类别:
a r g m a x j y ^ j = a r g m a x j o j argmax_j\hat{y}_j=argmax_jo_j argmaxjy^j=argmaxjoj
尽管softmax是一个非线性函数,但softmax回归的输出仍然由输入特征的仿射变换决定。因此,softmax回归是一个线性模型。

小批量样本的矢量化

为了提高计算效率并且充分利用GPU,我们通常会对小批量样本的数据执行矢量计算。假设我们读取了一个批量的样本X,其中特征维度(输入数量)为d,批量大小为n。此外,假设我们在输出中有q个类别。那么:
小批量样本的特征为 X ∈ R n × d 权重为 W ∈ R d × q 偏置为 b ∈ R 1 × q 小批量样本的特征为X∈R^{n×d}\\ 权重为W∈R^{d×q}\\ 偏置为b∈R^{1×q} 小批量样本的特征为XRn×d权重为WRd×q偏置为bR1×q
softmax回归的矢量计算表达式为:
O = X W + b Y ^ = s o f t m a x ( O ) O=XW+b\\ \hat{Y}=softmax(O) O=XW+bY^=softmax(O)
小批量样本的矢量化加快了X和W的矩阵-向量乘法。
由于X中的每一行代表一个数据样本,那么softmax运算可以按行执行:对于O的每一行,我们先对所有项进行幂运算,然后通过求和来对他们进行标准化。(XW+b的求和会使用广播机制,小批量的未规范化预测和输出概率都是n×q的矩阵)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/785737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS动画@animationend

CSS动画 是什么? CSS 中的动画类似于 flash 中的逐帧动画,表现细腻并且非常灵活,使用 CSS 中的动画可以取代许多网页中的动态图像、Flash 动画或者 JavaScript 实现的特殊效果。 这里感兴趣的可以去了解针 动画是什么 常用的css动画属性 :…

C国演义 [第十一章]

第十一章 有效的字母异位词题目理解代码 两数之和题目理解(暴力篇)代码题目理解(哈希篇)代码 有效的字母异位词 力扣链接 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词 注意:若 s 和 t 中每个字符出现的次数都相同,…

华为盘古大模型:能源领域的颠覆性突破

近日,华为盘古大模型在能源领域横空出世,引发了广泛关注和期待。作为一项具有颠覆性影响的技术创新,华为盘古大模型在能源行业中展现出巨大的潜力和前景。其优质的计算能力和智能优化算法,将为能源产业带来翻天覆地的变革。 盘古大…

linxu部署项目(详细教程)

首先我们需要一台虚拟机或者云服务器(二选一即可) 我们需要在安装jdk与tomcat 安装jdk,去官网下载对应的tar.gz压缩包就行tomcat同理 这里,我们已将下载好的JDK源码包 jdk-8u131-linux-x64.tar.gz 拷贝至 /usr/local/java/ 目录。…

《零基础入门学习Python》第066讲:GUI的终极选择:Tkinter3

今天我们一起来学习三个组件:Checkbutton、Radiobutton 和 LabelFrame。 同样,我们还是通过案例来讲解。 一、Checkbutton Checkbutton(多选框)。大家都知道什么叫做“翻牌子”,今天的第一个例子就是来写一个翻牌子…

如何清除Linux密钥环

如何清除Linux密钥环 Linux系统密钥环是什么如何清除密钥环方法一方法二 说明 最近使用Linux系统电脑,启动VScode总是弹出解锁密钥环的弹窗,单击取消后还会反复弹出,需要取消三次,但是如果没有及时取消会导致电脑卡机,…

Appium+python自动化(二十二)- 控件坐标获取(超详解)

简介 有些小伙伴或者是童鞋可能会好奇会问上一篇中的那个monkey脚本里的坐标点是如何获取的,不是自己随便蒙的猜的,或者是自己用目光或者是尺子量出来的吧,答案当然是:NO。获取控件坐标点的方式这里宏哥给小伙伴们分享和讲解三种方…

安全第一天

1. 编码 1.1 ASCLL编码 ASCII 是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。 1.2 URL编码 URL:(统一资源定位器、定位地址,俗称网页…

数据结构【图】

第六章 图 一、图 1.定义&#xff1a;V是顶点集&#xff0c;E是边集&#xff1b;|V|表示顶点数&#xff0c;称为阶&#xff1b;|E|表示边数&#xff1b;有向图叫弧<>&#xff0c;无向叫边&#xff08;&#xff09; &#xff1b; 有向图&#xff1a;有方向&#xff0c;&…

Yarn与Zookeeper学习

YARN学习 1.YARN是什么&#xff1f; yarn 分配运行资源 mapReduce的运行平台 2.YARN运行过程&#xff1a; 客户端与ResourceManager交互&#xff0c;生成临时配置文件(Application)ResourceManager根据Application信息生成Task然后生成MapReduceApplicationMaster(简称AM)AM…

python单元测试unittest实例详解

这篇文章主要介绍了python单元测试unittest用法,以实例形式详细分析了Python中单元测试的概念、用法与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python单元测试unittest用法。分享给大家供大家参考。具体分析如下&#xff1a; 单元测试作为任何…

用R语言来进行ababoost模型的构建

每天进步一点点&#xff0c;今天来分享怎么用R语言来进行ababoost模型的构建。 首先&#xff0c;什么是adaboost模型呢&#xff1f;它是一种迭代算法&#xff0c;属于boosting这个大类别的一员。它的核心思想是针对同一个训练集训练不同的分类器(弱分类器)&#xff0c;然后把这…

力扣题库刷题笔记118--杨辉三角

1、Python代码如下&#xff1a; 2、个人Python代码如下&#xff1a; 截图1的第5-9行和截图2的第5-6行均是生成一个元素均为1的杨辉三角。

1.前端入门

文章目录 一、基础认知1.1 认识网页&#xff1a;1.2 五大浏览器1.3 Web标准 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、基础认知 1.1 认识网页&#xff1a; 1.网页由哪些部分组成&#xff1f; 文字、图片、音频、视频、超链接。 2.我们…

Spring Security从入门到精通

Spring Security从入门到精通&#xff08;学习三更老师的视频&#xff09; 视频地址&#xff1a;我觉得讲的不赖。三更老师的Spring Security视频 课程介绍 0. 简介 ​ Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供…

接口漏洞-DVWS(XXE+鉴权)+阿里云KEY

dvws靶场 靶场&#xff1a;https://github.com/snoopysecurity/dvws-node 开启靶场&#xff0c;注册一个普通用户&#xff0c;登录成功 来到首页点击admin area 发现进入几秒钟之后又跳转回到首页&#xff0c;只有管理员admin用户才能进入。 点击admin area抓包&#xff0c;发现…

FPGA——verilog实现格雷码与二进制的转换

文章目录 一、格雷码简介二、二进制转格雷码三、格雷码转二进制四、仿真 一、格雷码简介 格雷码是一种循环二进制码或者叫作反射二进制码。跨时钟域会产生亚稳态问题&#xff08;CDC问题&#xff09;&#xff1a;从时钟域A过来的信号难以满足时钟域B中触发器的建立时间和保持时…

Python 单继承、多继承、@property、异常、文件操作、线程与进程、进程间通信、TCP框架 7.24

单继承 class luban:def __init__(self, name):self.name nameself.skill "摸鱼飞弹"self.damageLevel 20def attack(self):print("{} 使用了技能{} &#xff0c;给敌方带来了极大的困扰\n""并有{}% 的机会造成一击必杀的效果".format(self.…

初识socket编程的相关概念

文章目录 IP地址和MAC地址源IP地址和目的IP地址 端口号(port)端口号和PID 初识TCP/UDP协议TCPUDP可靠/不可靠传输 网络字节流理解socket套接字概念socket常见APIsocket接口参数中的结构体 IP地址和MAC地址 IP协议有两个版本&#xff0c;IPv4和IPv6&#xff0c;凡是提到IP协议&…

STC12C5A60S2 单片机串口2的通信功能测试

根据手册说明&#xff0c;STC12C5A60S2 系列单片机可以直接使用 reg51.h 的头文件&#xff0c;只是在用到相应的特殊功能寄存器时&#xff0c;要做相应的定义即可。 笔记来自视频教程链接: https://www.bilibili.com/video/BV1Qq4y1Z7iS/?spm_id_from333.880.my_history.page…