很基础!!!吴恩达deeplearning.ai:多分类问题

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai
多分类问题指的是分类问题你可能有多于两个以上可能的输出标签(而不只是0和1)让我们通过例子具体看看是怎么样的。

文章目录

  • 举例
    • MNIST 例子(手写数字识别问题)
    • 多分类问题的例子
  • 新的算法——softmax
    • 回顾
    • 公式
    • 成本函数


举例

MNIST 例子(手写数字识别问题)

在之前的博客之中,我们的y标签只有0、1两种选择。但在真实的手写识别中,y的可能取值有10个:0~9。从这里你可以看出,多分类问题仍然是一个分类问题,但是y可以取少量离散类别的数字(不是任何数字都行)

多分类问题的例子

这是之前我们遇到的例子:
在这里插入图片描述
图中只有圆圈和叉叉两种不同的类型;而在多分类问题中,我们常常遇到的是这样子的:
在这里插入图片描述
例如上图就有四种不同的类别。因此在估计时,答案就应该是答案为第一种的概率为多少,第二种的概率为多少,第三种的概率,第四种等等。数学表达式写法为:
P ( y = 1 ∣ x ⃗ ) P(y=1|\vec{x} ) P(y=1∣x )

新的算法——softmax

回顾

很明显,之前的算法无法满足我们多分类问题的需要,因此我们引入了一种新算法softmax,softmax是对原本逻辑回归算法的一种推广。
我们先回忆一下逻辑回归,先求出z,再求其sigmoid,即为概率:
z = x ⃗ ⋅ w ⃗ + b a = g ( z ) = 1 1 + e − z = P ( y = 1 ∣ x ⃗ ) z=\vec{x}\cdot\vec{w}+b\\ a=g(z)=\frac{1}{1+e^{-z}}=P(y=1|\vec{x}) z=x w +ba=g(z)=1+ez1=P(y=1∣x )

公式

现在让我们推广到softmax,即y的值可以推广到1,2,3,4。那么,我们需要分别计算出1,2,3,4的概率,求z的数学公式与上面类似:
z 1 = w 1 ⃗ ⋅ x ⃗ + b 1 z 2 = w 2 ⃗ ⋅ x ⃗ + b 2 z 3 = w 3 ⃗ ⋅ x ⃗ + b 3 z 4 = w 4 ⃗ ⋅ x ⃗ + b 4 z_1=\vec{w_1}\cdot\vec{x}+b_1\\ z_2=\vec{w_2}\cdot\vec{x}+b_2\\ z_3=\vec{w_3}\cdot\vec{x}+b_3\\ z_4=\vec{w_4}\cdot\vec{x}+b_4 z1=w1 x +b1z2=w2 x +b2z3=w3 x +b3z4=w4 x +b4
但计算概率的公式有些变化,分母变成了四项的相加:
a 1 = e z 1 e z 1 + e z 2 + e z 3 + e z 4 a 2 = e z 2 e z 1 + e z 2 + e z 3 + e z 4 a 3 = e z 3 e z 1 + e z 2 + e z 3 + e z 4 a 4 = e z 4 e z 1 + e z 2 + e z 3 + e z 4 a_1=\frac{e^{z_1}}{e^{z_1}+e^{z_2}+e^{z_3}+e^{z_4}}\\ a_2=\frac{e^{z_2}}{e^{z_1}+e^{z_2}+e^{z_3}+e^{z_4}}\\ a_3=\frac{e^{z_3}}{e^{z_1}+e^{z_2}+e^{z_3}+e^{z_4}}\\ a_4=\frac{e^{z_4}}{e^{z_1}+e^{z_2}+e^{z_3}+e^{z_4}} a1=ez1+ez2+ez3+ez4ez1a2=ez1+ez2+ez3+ez4ez2a3=ez1+ez2+ez3+ez4ez3a4=ez1+ez2+ez3+ez4ez4
a x a_x ax解释为算法对于概率的估计。以上就是softmax模型的一个例子。它具有参数w1到w4;b1到b4。
另外你也应该感觉到了,这四个概率满足:
a 1 + a 2 + a 3 + a 4 = 1 a_1+a_2+a_3+a_4=1 a1+a2+a3+a4=1
我们可以把softmax的数学公式总结一下:
z j = w j ⋅ x + b j , j = 1 , . . . . , N a j = e z j ∑ e z k ∑ a n = 1 z_j=w_j\cdot x+b_j,j=1,....,N\\ a_j=\frac{e^{z_j}}{\sum e^{z_k}}\\ \sum a_n=1 zj=wjx+bj,j=1,....,Naj=ezkezjan=1
此处的aj就是对模型等于j的估计。
这个模型可以看作是逻辑回归的一个泛化,因为如果j只有1,2的话,就是普通的逻辑回归了。

成本函数

接下来就该看看成本函数该怎么写了,同样地,我们仍然先回顾一下逻辑回归中的成本函数“二元交叉熵”是怎么写的:
l o s s = − y l o g a 1 − ( 1 − y ) l o g ( 1 − a 1 ) ( P S : 1 − a 1 = a 2 ) J ( w , b ) = a v e r a g e l o s s loss=-y loga_1-(1-y)log(1-a_1)\\ (PS:1-a_1=a_2)\\ J(w,b)=average\:loss loss=yloga1(1y)log(1a1)(PS:1a1=a2)J(w,b)=averageloss
我将在下方写出softmax的损失函数:
l o s s = : { − l o g a 1 , i f y = 1 − l o g a 2 , i f y = 2 − l o g a 3 , i f y = 3 − l o g a 4 , i f y = 4 loss=:\begin {cases}-loga_1,if\:\:y=1\\ -loga_2,if\:\; y=2\\ -loga_3,if\;\;y=3\\ -loga_4,if\;\;y=4 \end{cases} loss=: loga1,ify=1loga2,ify=2loga3,ify=3loga4,ify=4
它的意思是,如果这个标签的值y为n,那么就运行第n个式子。如果该答案概率远小于1,那么修正就会很大,否则就会很小,如下图:
在这里插入图片描述
(上图的图像大佬画的其实是有问题的,蓝色线应该穿过(1,0)。
为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。

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

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

相关文章

深入理解Python中的JSON模块:基础大总结与实战代码解析【第102篇—JSON模块】

深入理解Python中的JSON模块:基础大总结与实战代码解析 在Python中,JSON(JavaScript Object Notation)模块是处理JSON数据的重要工具之一。JSON是一种轻量级的数据交换格式,广泛应用于Web开发、API通信等领域。本文将…

汽车电子笔记:BootLoader升级过程疑难问题解决方式(Bootloader响应10 02 + 刷死拯救机制)

目录 1、概述 2、如何在BootLoader响应10 02 2.1、实现流程图 2.2、实现方式(代码思路) 3、刷死拯救机制(100%能救活,适配各类控制器的方法) 3.1、强留Boot流程图 3.2、实现方式(代码思路) 1、概述 BootLoader作…

【C++进阶】仿函数 模板进阶

目录 前言 1. 仿函数 1.1 什么是仿函数 1.2 仿函数的应用 2. 模板 2.1 非类型模板参数 非类型模板参数的应用 2.2 模板特化 概念 函数模板的特化 类模板特化 全特化 偏特化 3. 模板分离编译问题 解决办法 4. 模板总结 总结 前言 我们已经基本学习完了C的一些基础特性&#x…

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效?

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了,针对特定领域较小的语言模型是否与较大的模型同样有效? 当大家都在研究大模型(LLM)参数规模达到百亿甚至千亿级别的同时,小巧且兼具高性能的小…

babylonjs入门

基于babylonjs封装的一些功能和插件 ,希望有更多的小伙伴一起玩babylonjs; 欢迎加群:464146715 官方文档 中文文档 Babylonjs案例分享 ​ import React, { FC, useCallback, useEffect, useRef, useState } from react; import TemplateBB…

C++笔记之执行一个可执行文件时指定动态库所存放的文件夹lib的路径

C++笔记之执行一个可执行文件时指定动态库所存放的文件夹lib的路径 参考博文: 1.C++笔记之执行一个可执行文件时指定动态库所存放的文件夹lib的路径 2.Linux笔记之LD_LIBRARY_PATH详解 3.qt-C++笔记之使用QProcess去执行一个可执行文件时指定动态库所存放的文件夹lib的路径 c…

一款.NET下 WPF UI框架介绍

WPF开源的UI框架有很多,如HandyControl、MahApps.Metro、Xceed Extended WPF Toolkit™、Modern UI for WPF (MUI)、Layui-WPF、MaterialDesignInXamlToolkit、等等,今天小编带大家认识一款比较常用的kaiyuanUI---WPF UI,这款ui框架美观现代化,用起来也超级方便, 界面展示…

matlab生成模拟的通信信号

matlab中rand函数生成均匀随机分布的随机数,randn生成正态分布的随机数; matlab来模拟一个通信信号; 通信信号通过信道时,研究时认为它会被叠加上服从正态分布的噪声; 先生成随机信号模拟要传输的信号,s…

【深入理解设计模式】装饰者设计模式

装饰者设计模式 装饰者设计模式(Decorator Design Pattern)是一种结构型设计模式,它允许向现有对象添加新功能而不改变其结构。这种模式通常用于需要动态地为对象添加功能或行为的情况,而且这些功能可以独立于对象本身来进行扩展…

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。Android studio纯java代码报错

我使用java代码 构建项目,初始代码运行就会报错。我使用的是Android Studio Giraffe(Adroid-studio-2022.3.1.18-windows)。我在网上找的解决办法是删除重复的类,但这操作起来真的太麻烦了。 这是全部报错代码: Dupli…

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题 前几天出了教程本地部署gogs,在后期运行时发现两个问题: 第一:邮件明明配置了,后台显示未配置,…

QT之项目经验(windows下的sqlite,c++开发)

目录 一、需要时间去磨练gui的调整和优化 1. 借鉴网上开源项目学习 2. gui的布局及调整是磨人的一件事情 3. gui的布局也是可以用组件复刻的 4. 耗时的设备树 二、多线程异步弹窗 三、定时任务动态变更设定 1.确定按钮触发 2.此处监听定时任务时间的改变 3.此处对改变做出具…