机器学习深度学习——softmax回归(上)
👨🎓作者简介:一位即将上大四,正专攻机器学习的保研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 0≤y^j≤1
因此,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} 小批量样本的特征为X∈Rn×d权重为W∈Rd×q偏置为b∈R1×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的矩阵)。
相关文章:
机器学习深度学习——softmax回归(上)
👨🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——线性回归的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所…...
基于express调用chatgpt文字流输出和有道智云语音合成
express是基于node.js的一个web框架,可以更加简洁的去创建一个后台服务,由于项目的需要,引入和typescript,经过几天的努力实现了chatgpt文字流输出有道智云语音合成的结合(略有遗憾),下面我记载…...
(学习笔记-内存管理)内存分段、分页、管理与布局
内存分段 程序是由若干个逻辑分段组成的,比如可由代码分段、数据分段、栈段、堆段组成。不同的段是有不同的属性的,所以就用分段的形式把这些分段分离出来。 分段机制下,虚拟地址和物理地址是如何映射的? 分段机制下的虚拟地址由…...
PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案
宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案 前言一、Redis安装部署1.安装Redis2.php安装Redis扩展3.启动Redis 二、避坑指南1.6379端口配置2.Redis服务启动(1)Redis服务启动失败(2)Redis启动日志排查(3&a…...
【数据结构】这堆是什么
目录 1.二叉树的顺序结构 2.堆的概念及结构 3.堆的实现 3.1 向上调整算法与向下调整算法 3.2 堆的创建 3.3 建堆的空间复杂度 3.4 堆的插入 3.5 堆的删除 3.6 堆的代码的实现 4.堆的应用 4.1 堆排序 4.2 TOP-K问题 首先,堆是一种数据结构,一种特…...
FFmpeg 音视频开发工具
目录 FFmpeg 下载与安装 ffmpeg 使用快速入门 ffplay 使用快速入门 FFmpeg 全套下载与安装 1、FFmpeg 是处理音频、视频、字幕和相关元数据等多媒体内容的库和工具的集合。一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 官网:http…...
Go 语言 select 都能做什么?
原文链接: Go 语言 select 都能做什么? 在 Go 语言中,select 是一个关键字,用于监听和 channel 有关的 IO 操作。 通过 select 语句,我们可以同时监听多个 channel,并在其中任意一个 channel 就绪时进行相…...
Hive之窗口函数lag()/lead()
一、函数介绍 lag()与lead函数是跟偏移量相关的两个分析函数 通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤,该操作可代替表的自联接,且效率更高 lag()/lead() lag(c…...
Vite+Typescript+Vue3学习笔记
ViteTypescriptVue3学习笔记 1、项目搭建 1.1、创建项目(yarn) D:\WebstromProject>yarn create vite yarn create v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages...success Installed…...
二、SQL-6.DCL-2).权限控制
*是数据库和表的通配符,出现在数据库位置上表示所有数据库,出现在表名位置上,表示所有表 %是主机名的通配符,表示所有主机。 e.g.所有数据库(*)的所有表(*)的所有权限(a…...
[OpenStack] GPU透传
GPU透传本质就是PCI设备透传,不算是什么新技术。之前按照网上方法都没啥问题,但是这次测试NVIDIA A100遇到坑了。 首先是禁用nouveau 把intel_iommuon rdblacklistnouveau写入/etc/default/grub的cmdline,然后grub2-mkconfig -o /etc/grub2.c…...
无涯教程-jQuery - Progressbar组件函数
小部件进度条功能可与JqueryUI中的小部件一起使用。一个简单的进度条显示有关进度的信息。一个简单的进度条如下所示。 Progressbar - 语法 $( "#progressbar" ).progressbar({value: 37 }); Progressbar - 示例 以下是显示进度条用法的简单示例- <!doctype …...
[SQL挖掘机] - 窗口函数 - rank
介绍: rank() 是一种常用的窗口函数,它为结果集中的每一行分配一个排名(rank)。这个排名基于指定的排序顺序,并且在遇到相同的值时,会跳过相同的排名。 用法: rank() 函数的语法如下: rank() over ([pa…...
VBAC多层防火墙技术的研究-状态检测
黑客技术的提升和黑客工具的泛滥,造成大量的企业、机构和个人的电脑系统遭受程度不同的入侵和攻击,或面临随时被攻击的危险。迫使大家不得不加强对自身电脑网络系统的安全防护,根据系统管理者设定的安全规则把守企业网络,提供强大的、应用选通、信息过滤、流量控制、网络侦…...
PHP8的数据类型-PHP8知识详解
在PHP8中,变量不需要事先声明,赋值即声明。 不同的数据类型其实就是所储存数据的不同种类。在PHP8.0、8.1中都有所增加。以下是PHP8的15种数据类型: 1、字符串(String):用于存储文本数据,可以使…...
明晚直播:可重构计算芯片的AI创新应用分享!
大模型技术的不断升级及应用落地,正在推动人工智能技术发展进入新的阶段,而智能化快速增长和发展的市场对芯片提出了更高的要求:高算力、高性能、灵活性、安全性。可重构计算区别于传统CPU、GPU,以指令驱动的串行执行方式…...
flask 点赞系统
dianzan.html页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>点赞系统</title> </head> <body><h2>这是一个点赞系统</h2><table border"1"><…...
关于Java的多线程实现
多线程介绍 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。 线程:线程是进程中的一个执行单元,负责当前进…...
如何判断某个视频是深度伪造的?
目录 一、前言 二、仔细检查面部动作 三、声音可以提供线索 四、观察视频中人物的身体姿势 五、小心无意义的词语 深造伪造危险吗? 一、前言 制作深度伪造视频就像在Word文档中编辑文本一样简单。换句话说,您可以拍下任何人的视频,让他…...
ESP32(MicroPython) 四足机器人(一)
最近决定研究一下四足机器人,但市面上的产品,要么性价比低,要么性能达不到要求。本人就另外买了零件,安装到之前的一个麦克纳姆轮底盘的底板上。(轮子作为装饰,使用铜柱固定) 舵机使用MG996R&a…...
信息安全工程师-移动应用安全核心知识体系与备考指南
一、引言(一)核心概念定义移动应用安全是指覆盖移动终端、通信网络、应用服务端全链路的安全防护体系,旨在保障移动应用的数据保密性、完整性、可用性,防范各类恶意攻击和合规风险。该知识点属于软考信息安全工程师考试大纲中 &qu…...
云服务器Nginx静态网站首屏慢的四层根因与优化方案
1. 为什么明明用了Nginx,静态网站首屏加载却要3秒以上?你有没有遇到过这种情况:在云服务器上用Nginx部署了一个纯HTMLCSSJS的静态站点,连数据库都不用,理论上应该毫秒级响应——结果打开首页,F12 Network面…...
SpringBoot+Vue旅游管理系统源码+论文
代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择: 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…...
第二周学习
学习(一)、低通滤波器1、原理(为什么方波经过低通滤波器变成了正弦波)傅里叶变换对于f(t)来说,只要f(t)是周期的,则一定可以将f(t)拆解…...
2026最新大模型入门电子书学习推荐,必读9本大模型书籍
大模型入门必读的9本书籍汇总NO.1: 《基于GPT-3,ChatGPT,GPT-4等Transformer架构的自然语言处理》主要内容: 了解用于解决复杂语言问题的新技术。将GPT-3与T5、GPT-2和基于BERT的Transformer的结果进行对比。使用TensorFlow、PyTorch和GPT-3执…...
Windows右键菜单终极清理指南:用ContextMenuManager告别杂乱,重获高效桌面
Windows右键菜单终极清理指南:用ContextMenuManager告别杂乱,重获高效桌面 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows…...
HS2-HF Patch终极指南:一键解锁完整汉化与去码体验
HS2-HF Patch终极指南:一键解锁完整汉化与去码体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为《Honey Select 2》的语言障碍和功能限制而…...
Beyond Compare 5密钥生成器:从评估到期到永久授权的完整解决方案
Beyond Compare 5密钥生成器:从评估到期到永久授权的完整解决方案 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 你是否在使用Beyond Compare 5进行文件对比时,遇到了30…...
UE5.4.4视频不导入实战:绕过Content Browser直连文件系统
1. 为什么在UE5.4.4里“不导入视频”反而成了刚需?在UE5.4.4项目现场,我最近连续被三个不同团队问到同一个问题:“能不能别把视频拖进Content Browser?”——不是他们不会操作,而是一拖进去就出事。美术同事导了个2.7G…...
3D Slicer完整指南:免费医学影像可视化的终极解决方案
3D Slicer完整指南:免费医学影像可视化的终极解决方案 【免费下载链接】Slicer Multi-platform, free open source software for visualization and image computing. 项目地址: https://gitcode.com/gh_mirrors/sl/Slicer 3D Slicer是一款功能强大的跨平台医…...
