2-1 动手学深度学习v2-Softmax回归-笔记

回归 VS 分类

  • 回归估计一个连续值
  • 分类预测一个离散类别

从回归到多类分类

回归

  • 单连续数值输出
  • 输出的区间:自然区间 R \mathbb{R} R
  • 损失:跟真实值的区别
    请添加图片描述

分类

  • 通常多个输出(这个输出的个数是等于类别的个数)
  • 输出的第 i i i个元素是用来预测第 i i i类的置信度
    请添加图片描述

从回归到多类分类——均方损失

请添加图片描述

  • 对类别进行一位有效编码(因为类别不是一个数,可能是一个字符串等等)
    假设我们有 n n n个类别,我们可以用最简单的一位有效编码来进行编码。假设我们有 n n n个类别,那么我们的标号就是一个长为 n n n的向量,从 y 1 y_{1} y1 y n y_{n} yn,其中,假设我的真实的类别是第 i i i个,那么 y i y_{i} yi等于 1 1 1,其他的元素全部等于 0 0 0。意思就是这个向量中,我们恰好有一个位置为 1 1 1,这个位置的下标表示第 i i i个元素,其他的元素全部为 0 0 0
    y = [ y 1 , y 2 , . . . , y n ] T \pmb{y}=[y_{1},y_{2},...,y_{n}]^{T} y=[y1,y2,...,yn]T
    y i = { 1 i f i = y 0 o t h e r w i s e y_{i}= \begin{cases} 1 \quad if \quad i= y\\ 0 \quad otherwise \end{cases} yi={1ifi=y0otherwise
  • 使用均方损失训练(当我们有了编码以后,我们可以用最简单的回归问题的均方损失来训练,我们可以在不改动的情况下)
  • 最大值最为预测(假设我们有我们训练出来的一个模型,我们做预测的时候,那么就是我们选取 i i i时的最大化 o i o_{i} oi即置信度的值,作为我的预测, i i i是我们预测的一个标号)
    y ^ = a r g m a x i o i \hat{y}=\underset {i}{argmax} \ o_{i} y^=iargmax oi

从回归到多类分类——无校验比例

对于分类来讲,我们其实不关心,它们之间的实际的值,我们关心的是说,我是不是能够对正确类别的置信度特别大。

我们可以将我们的目标函数改为,我们需要使得我们对正确类 y y y的置信度,就是 o y o_{y} oy,要远远大于其他非正确类的 o i o_{i} oi,要大于某一个阈值, Δ \Delta Δ
这样子能保证我的模型真正地能够将我的真正的类和不一样的类拉开距离。

虽然我们这里没有说你具体 o i o_{i} oi要什么样的值,大一点小一点都没关系,我们关心的是一个相对值,但是我们如果把值放在一个合适的区间,也会让我们后面的变得更加简单。

  • 对类别进行一位有效编码

  • 最大值最为预测 y ^ = a r g m a x i o i \hat{y}=\underset {i}{argmax} \ o_{i} y^=iargmax oi

  • 需要更置信的识别正确类(大余量)
    o y − o i ≥ Δ ( y , i ) o_{y}-o_{i}\geq\Delta(y,i) oyoiΔ(y,i)

从回归到多类分类——校验比例

我们希望使得我们的输出能够是一个概率,现在我们的输出是 o 1 o_{1} o1一直到 o n o_{n} on,就是一个 o \pmb{o} o的一个向量。那么我们怎么做这个事情呢?
我们可以引入一个新的操作子,叫做 s o f t m a x softmax softmax,我们将 s o f t m a x softmax softmax作用在 o o o上面,得到一个 y ^ \pmb{\hat{y}} y^,它是一个长为 n n n的向量,但是它有我们要的属性,即它的每个元素都非负,而且它的和为1。

  • 输出匹配概率(非负,和为 1 1 1
    y ^ = s o f t m a x ( o ) \pmb{\hat{y}}=softmax(\pmb{o}) y^=softmax(o) y ^ i = e x p ( o i ) ∑ k e x p ( o k ) \hat{y}_{i}=\frac{exp(o_{i})}{\sum_{k}exp(o_{k})} y^i=kexp(ok)exp(oi)具体我们的操作是说, y ^ \pmb{\hat{y}} y^里面的第 i i i个元素,它是等于 o \pmb{o} o里面的第 i i i个元素,作指数,指数的好处是说我不管它里面的值是多少,我都能够把它变成非负;再除以所有的 o k o_{k} ok作指数的和,这样我们能够保证 y ^ \pmb{\hat{y}} y^所有的元素加起来的和为 1 1 1。这样的好处就是说,我们的 y ^ \pmb{\hat{y}} y^它其实就是一个概率啦。

回忆一下,我们对真实标号的 y \pmb{y} y,也是作成一个概率,因为他刚好只有一个元素为 1 1 1,剩下的全部为 0 0 0,任何满足所有元素非负,且和为 1 1 1的,都可以当作一个概率。
那么我们就得到两个概率,一个是真实的 y \pmb{y} y的概率,一个是预测的 y ^ \pmb{\hat{y}} y^的概率。

  • 概率 y \pmb{y} y y ^ \pmb{\hat{y}} y^的区别作为损失

Softmax和交叉熵损失

我们假设有两个离散概率 p \pmb{p} p q \pmb{q} q,都有 n n n个元素

  • 交叉熵常用来衡量两个概率的区别 H ( p , q ) = ∑ i − p i l o g ( q i ) H(\pmb{p},\pmb{q})=\underset {i}{\sum}-p_{i}log(q_{i}) H(p,q)=ipilog(qi)
  • 将它作为损失
    l ( y , y ^ ) = − ∑ i y i l o g y ^ i = − l o g y ^ y l(\pmb{y},\hat{\pmb{y}})=-\underset {i}{\sum}y_{i}log\hat{y}_{i}=-log\hat{y}_{y} l(y,y^)=iyilogy^i=logy^y我们知道,真实值里面只有 1 1 1个为 1 1 1,其余都为 0 0 0,因而公式可以简写为,负的 l o g log log对真实类别 y y y它的预测的 y ^ \hat{y} y^,就是对真实类别我的预测值求 l o g log log然后求负数。
    可以看到,对分类问题来讲,我们不关心对非正确类的预测值,我们只关心对正确类的预测值它要执行度要多大
  • 其梯度是真实概率和预测概率的区别
    ∂ o i l ( y , y ^ ) = s o f t m a x ( o ) i − y i \partial_{o_{i}}l(\pmb{y},\pmb{\hat{y}})=softmax(\pmb{o})_{i}-y_{i} oil(y,y^)=softmax(o)iyi
    请添加图片描述请添加图片描述
    请添加图片描述请添加图片描述
    请添加图片描述

总结

  • Softmax回归是一个多类分类模型
  • 使用Softmax操作子得到每个类的预测置信度
  • 使用交叉熵来衡量预测和标号的区别

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink Format系列(2)-CSV

Flink的csv格式支持读和写csv格式的数据,只需要指定 format csv,下面以kafka为例。 CREATE TABLE user_behavior (user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,ts TIMESTAMP(3) ) WITH (connector kafka,topic user_behavior…

机器学习——有监督学习和无监督学习

有监督学习 简单来说,就是人教会计算机学会做一件事。 给算法一个数据集,其中数据集中包含了正确答案,根据这个数据集,可以对额外的数据希望得到一个正确判断(详见下面的例子) 回归问题 例如现在有一个…

17:定时器编程实战

1、实验目的 (1)使用定时器来完成LED闪烁 (2)原来实现闪烁时中间的延迟是用delay函数实现的,在delay的过程中CPU要一直耗在这里不能去做别的事情。这是之前的缺点 (3)本节用定时器来定一个时间(譬如0.3s),在这个定时器定时时间内…

Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案

目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题,可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目,鼠标移动至头文件上右击,选择转到文档或…

嵌入式学习之Linux入门篇笔记——10,Linux连接档概念

配套视频学习链接:http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 目录 1.Linux 下的连接档种类 2.什么是 inode? 3.什…

【HarmonyOS应用开发】HTTP数据请求(十四)

文章末尾含相关内容源代码 一、概述 日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。 那么…

支持534种语言,开源大语言模型MaLA-500

无论是开源的LLaMA 2还是闭源的GPT系列模型,功能虽然很强大,但对语言的支持和扩展比较差,例如,二者都是以英语为主的大模型。 为了提升大模型语言的多元化,慕尼黑大学、赫尔辛基大学等研究人员联合开源了,…

Windows 安装 MySQL 最新最简教程

Windows 安装 MySQL 最新最简教程 官网地址 https://dev.mysql.com/downloads/mysql/下载 MySQL zip 文件 配置 MySQL1、解压文件 2、进入 bin 目录 搜索栏输入 cmd 回车进入命令行 C:\Users\zhong\Desktop\MySQL\mysql-8.3.0-winx64\mysql-8.3.0-winx64\bin 注意这里是你自己…

Java图形化界面编程——Container容器 笔记

2.3 Container容器 2.3.1 Container继承体系 Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局;S…

物理信息神经网络(PINN): 将物理知识融合到深度学习中

物理信息神经网络(PINN): 将物理知识融合到深度学习中 物理信息神经网络(PINN)简介PINN的工作原理PINN模型如何利用物理法则指导模型训练1. 定义物理问题和相应的物理定律2. 构建神经网络3. 定义损失函数数据误差项 (Data-fidelit…

Flask 入门6:模板继承

1. 一个网站中,大部分网页的模块是重复的,比如顶部的导航栏,底部的备案信息。如果在每个页面中都重复的去写这些代码,会让项目变得臃肿,提高后期的维护成本。比较好的做法是,通过模板继承,把一…

Netty中使用编解码器框架

目录 什么是编解码器? 解码器 将字节解码为消息 将一种消息类型解码为另一种 TooLongFrameException 编码器 将消息编码为字节 将消息编码为消息 编解码器类 通过http协议实现SSL/TLS和Web服务 什么是编解码器? 每个网络应用程序都必须定义如何…

解决CORS错误(Spring Boot)

记录一下错误,以博客的形式 前言 跨域(Cross-Origin)是指在Web开发中,当一个Web应用试图从一个源(域名、协议、端口组合)获取资源时,该请求的目标与当前页面的源不同。具体来说,当一…

25、数据结构/二叉树相关练习20240207

一、二叉树相关练习 请编程实现二叉树的操作 1.二叉树的创建 2.二叉树的先序遍历 3.二叉树的中序遍历 4.二叉树的后序遍历 5.二叉树各个节点度的个数 6.二叉树的深度 代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> ty…

SolidWorks学习笔记——入门知识2

目录 建出第一个模型 1、建立草图 2、选取中心线 3、草图绘制 4、拉伸 特征的显示与隐藏 改变特征名称 5、外观 6、渲染 建出第一个模型 1、建立草图 图1 建立草图 按需要选择基准面。 2、选取中心线 图2 选取中心线 3、草图绘制 以对称图形举例&#xff0c;先画出…

蓝桥杯---生日蜡烛

某君从某年开始每年都举办一次生日party&#xff0c;并且每次都要吹熄与年龄相同根数的蜡烛&#xff0c;现在算起来&#xff0c;他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的? 请填写他开始过生日 party的年龄数。 注意:你提交的应该是一个整数&#xff0c;不要…

路由器如何映射端口映射?

在现代互联网中&#xff0c;随着网络应用的不断发展&#xff0c;很多用户需要进行远程访问或搭建服务器来满足自己的需求。由于网络安全的原因&#xff0c;直接将内网设备暴露在公网中是非常危险的。为了解决这个问题&#xff0c;路由器映射端口映射技术应运而生。本文将介绍什…

redis之布隆过滤

目录 1、redis之布隆过滤 2、布隆过滤器原理 3、布隆过滤器使用步骤 初始化bitmap 添加占坑位 判断是否存在圜 1、redis之布隆过滤 布隆过滤&#xff1a;有一个初值都为0的bit数组和多个哈希函数构成&#xff0c;用来快速判断集合中是否存在某个元素。目的&#xff1a;减…

新型RedAlert勒索病毒针对VMWare ESXi服务器

前言 RedAlert勒索病毒又称为N13V勒索病毒&#xff0c;是一款2022年新型的勒索病毒&#xff0c;最早于2022年7月被首次曝光&#xff0c;主要针对Windows和Linux VMWare ESXi服务器进行加密攻击&#xff0c;到目前为止该勒索病毒黑客组织在其暗网网站上公布了一名受害者&#x…

2024年:用OKR管理你的生活

在科技高速发展的时代&#xff0c;越来越多的企业和团队开始采用OKR&#xff08;Objectives and Key Results&#xff09;管理方法来设定目标并跟踪进度。你是否想过&#xff0c;将OKR理念引入个人生活&#xff0c;以更有效地实现人生目标&#xff1f;本文将探讨如何在2024年运…