跟着李沐学AI:Softmax回归

news2024/12/30 4:18:09

回归 vs 分类

回归用于估计一个连续值

分类用于预测一个离散类别

两个经典的数据集:

MNIST数据集:

MNIST(Modified National Institute of Standards and Technology)数据集是一个广泛应用于机器学习和深度学习领域的手写数字识别数据集。

MNIST 数据集包含60,000个训练样本和10,000个测试样本。每个样本是一幅28x28像素的灰度图像,代表0到9之间的手写数字。

由于其相对简单且结构化的特性,MNIST 成为了机器学习和深度学习入门的经典数据集。它常被用来作为算法性能的基准测试,特别是在监督学习任务中,如图像分类。

ImageNet数据集:

ImageNet 是一个大规模的计算机视觉数据集。ImageNet 的目标是推进计算机视觉中的物体识别技术,特别是大规模物体识别的准确性和效率。

ImageNet 数据集包含超过一千四百万张图片,这些图片被分配到了21,841个Synset中,涵盖了约1000个不同的对象类别。每张图片都经过人工注释,确保其分类的准确性。

从回归到多类分类

假设每次输入的是一个2x2的灰度图像。用一个标量表示一个像素值,每个图像对应四个特征x1,x2,x3,x4。每个图像属于猫、鸡、狗中的一类。

One-Hot编码

回归通常是单连续值输出。分类问题通常有多个输出输出i是预测为第i类的置信度。

假设分类问题有n个类别,可以用一位有效编码(One-Hot编码)对类别进行编码。编码为:y = [y_1,y_2,...,y_n]\top

假设真实类别为第i个,if\ i = y,\ y_i = 1,\ otherwise, \ y_i = 0。对应第i个类别的yi值为1,其余y值均为0(一位有效)。

若需要对猫、鸡、狗三种动物进行分类,则狗的One-Hot编码为[0,0,1]

网络架构

为了解决线性模型的分类问题,需要有n个输出的仿射函数,n个输出对应对应n个分类,每个输出值On对应一个类别的可能性。因为每个图片有4个特征,同时每个图片对应3个可能的输出类别。因此需要3x4=12个标量表示权重w,3个标量表示偏置b。

softmax神经网络架构如下:

 

该模型可以通过向量形式简介表达:o = Wx+b。W为权重3x4的权重矩阵,x为4x1的特征列向量。 

softmax运算(进行预测)

将线性层的输出直接视为预测概率存在一定问题:没有限制输出总和为1、输出数据可能为负值。为规范化输出结果Oi,需要使用softmax函数将未规范化的预测变换为非负数并且总和为1,同时让模型保持可导的性质。softmax函数如下:

仿射变换的结果Oj经过 softmax 函数处理后,会转换成概率分布,使得每个元素代表输入样本属于各个类别的概率,且所有概率之和为1。 

对于所有j总有0<=\hat{y_j}<=1。softmax运算不会改变未规范化预测Oj之间的大小次序,只会确定分配给每个类别的概率。 softmax函数是一个非线性函数,但softmax回归的输出仍然由输入特征的仿射变换Oj决定,因此softmax回归仍是一个线性模型。

\hat{y_j}视为属于第j类的概率。在模型所有输出结果\hat{y_j}中选出最大值作为预测结果。

如,若\hat{y_1}=0.1,\hat{y_2}=0.8,\hat{y_3}=0.1,则预测结果为第二类别,与例子中的“鸡”相对应。

损失函数

损失函数未交叉熵损失,公式如下:

 该loss值的梯度是真实概率和预测概率的区别:

总结

Softmax回归是一个多类分类模型

使用Softmax操作子得到每个类的预测置信度

使用交叉熵来衡量预测值和标号(label,实际值)的区别

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

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

相关文章

【计算机组成原理 | 第二篇】计算机硬件架构的发展

目录 前言&#xff1a; 冯诺依曼计算机架构 现代计算机架构&#xff1a; 总结&#xff1a; 前言&#xff1a; 在当今数字化时代&#xff0c;计算机硬件不仅是技术进步的见证者&#xff0c;更是推动这一进步的基石。它们构成了我们日常生活中不可或缺的数字生态系统的核心&a…

基于FPGA的图像边缘检测(OV5640)

一、简介 1.应用范围 边缘主要存在于图像中目标与目标之间&#xff0c;目标与背景之间&#xff0c;区域与区域之间。 边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合&#xff0c;表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位&#xff0c;那么&…

<数据集>水稻叶片病害识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1448张 标注数量(xml文件个数)&#xff1a;1448 标注数量(txt文件个数)&#xff1a;1448 标注类别数&#xff1a;3 标注类别名称&#xff1a;[BrownSpot,RiceBlast,BacterialBlight] 序号类别名称图片数框数1Rice…

Python类与对象02:继承

1、什么是继承 上一节中我们介绍了类与对象的用法。类可以看作是一种程序内的设计图纸&#xff0c;而对象则是基于这个图纸制造出来的实体。这个过程类似于现实中的设计表格和填写表格。 现在假设你是一名设计师&#xff0c;需要迭代一款新产品。你有两个选择&#xff1a; 在…

MySQL 数据库(基础)- SQL

SQL通用语法 SQL通用语法 SQL语句可以单行或者多行书写&#xff0c;以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。 注意&#xff1a;空格和缩进的个数是没有限制的&#xff0c;可以是 “一个” 也可以是 “多个”。MySQL数据库的SQL语句不区分大小写&#xff0c;…

【Django项目】基于Python+Django+MySQL的音乐网站系统项目

功能介绍 首页&#xff1a;歌曲分类、歌曲搜索、热门歌曲、热门下载、新歌推荐 歌曲排行&#xff1a;歌曲分类、分页功能 用户板块&#xff1a;用户登陆/注册、播放历史 歌曲详情&#xff1a;歌曲播放、当前播放列表、歌曲点评、歌曲播放插件、下载歌曲 系统后台&#xff1a;歌…

MacOS 通过Docker安装宝塔面板搭建PHP开发环境

1、docker拉取ubuntu系统 docker pull ubuntu2、运行容器 docker run -i -t -d --name bt -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 -p 3306:3306 -p 6379:6379 --privilegedtrue -v /Users/oi/Sites:/www/wwwroot ubuntu-v 后的 /Users/oi/Sites 代表…

redis redisson(仅供自己参考)

redis 通过setnx实现的分布式锁有问题 如图&#xff1a; 解决的新的工具为&#xff08;闪亮登场&#xff09;&#xff1a;redisson redisson可重入锁的原理 实现语言lua&#xff1a; 加锁实现脚本语言&#xff1a; 释放锁的脚本语言&#xff1a; 加锁的lua -- 首先判断这个锁…

Ubuntu安装MATLAB

一、准备工作 下载MATLAB安装文件&#xff1a; 访问MathWorks官方网站&#xff08;MathWorks官网&#xff09;&#xff0c;下载适用于Linux的MATLAB安装文件。这通常是一个.iso镜像文件或.zip压缩文件。请注意选择与Ubuntu版本相匹配的MATLAB版本。创建安装目录&#xff1a; 打…

VMware安装Ubuntu以及利用vscode远程Ubuntu

一、VMware安装Ubuntu &#xff08;1&#xff09;VMware安装Ubuntu主要参考此文VMware虚拟机安装Ubuntu22.04图文教程&#xff08;超详细&#xff01;&#xff01;&#xff01;&#xff09;。 &#xff08;2&#xff09;VMware密钥参考此文24年VMware 17密钥(附下载链接&#…

01. 数组篇(进行中......)

一. 前缀和技巧 &#xff08;1&#xff09;前缀和 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和。 class NumArray { public:vector<int> preSum; //前缀和数组NumArray(vector<int>& nums) {//preSum[0] 0&#xff0c;便于计算累加和preSum…

解决QT creator中文乱码问题

1.首先设置文本编辑器为UTF-8 先在工具-选项-文本编辑器-behavior部分选择文件编码为UTF-8&#xff0c;紧接着是选择“如果编码是UTF-8则添加”&#xff0c;如下图 2.设置ext code for tools 为system 具体解决办法是 工具-选项-环境-interfaces这一栏有一个“Text code for to…

【2024_CUMCM】Matlab快速入门

目录 常识 disp and input 字符串合并 sum 提取矩阵指定位置的元素 指定行列 指定行or指定列&#xff08;返回行/列向量&#xff09; 指定某些行 指定全部元素&#xff0c;按列拼接 size repmat 矩阵的运算 基本运算 形状相同的矩阵运算 每个元素同时和常数相乘或相…

揭秘!为何SmartEDA电路仿真成为学生的科技利器,学习之路从此不再难行

在当今科技日新月异的时代&#xff0c;电子工程、自动化、通信等专业的学生们面临着前所未有的学习挑战。传统的电路设计与分析方法已难以满足现代教学需求&#xff0c;而SmartEDA电路仿真软件的出现&#xff0c;如同为学生们带来了一盏明灯&#xff0c;照亮了他们的学习之路。…

C++-时间复杂度

前言 OJ测试中最烦人的结果莫过于TLE(Time Limit Exceed 超时)和MLE(Mempry Limit Exceed超内存&#xff09;了&#xff0c;在递归和搜索题里面看见这两货就烦。 目录 前言 时间复杂度 时间复杂度概念 时间复杂度的表示法 时间复杂度OJ测试要求 时间复杂度例举 剪枝 1.可行…

C++相关概念和易错语法(19)(继承规则、继承下的构造和析构、函数隐藏)

1.继承规则 继承的本质是复用&#xff0c;是结构上的继承而不是内容上的继承&#xff0c;近似于在子类中声明了父类的成员变量。 &#xff08;1&#xff09;写法&#xff1a;class student : public person 派生类&#xff08;子类&#xff09;&#xff0c;继承方式&…

Cypress UI自动化之安装环境

注&#xff1a;macOS系统 一、git环境 略 二、node环境 1、安装nvm 前提&#xff1a;有装过Homebrew&#xff0c;参考adb使用方法文档 1、安装nvm&#xff1a;首先要保证之前没有安装过node&#xff0c;如果之前安装过&#xff0c;先 brew uninstall node brew install n…

省市县下拉框的逻辑以及多表联查的实例

2024.7.12 一. 省市县的逻辑开发。1、准备&#xff1a;1.1. 要求&#xff1a;1.2 数据库表&#xff1a; 2. 逻辑&#xff1a;3. 方法3.1 创建实体类3.2 数据访问层3.3 实现递归方法3.4 控制器实现3.5 前端处理 二、多表联查&#xff08;给我干红温了&#xff09;1. 出现了问题2…

Java性能优化-switch性能优化-用String还是int做比较

场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化&#xff1a; Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_java热点函数-CSDN博客 参考以上性能测试工具的使用。 下面针对Java中对switch-case比较时…

LLM 合成数据生成完整指南

大型语言模型是强大的工具&#xff0c;不仅可以生成类似人类的文本&#xff0c;还可以创建高质量的合成数据。这种能力正在改变我们进行 AI 开发的方式&#xff0c;特别是在现实世界数据稀缺、昂贵或隐私敏感的情况下。在本综合指南中&#xff0c;我们将探索 LLM 驱动的合成数据…