【第十一章】改进神经网络学习方式-Softmax

news2024/11/15 17:57:10

我们将主要使用交叉熵成本来解决学习减速的问题。然而,我想简要描述另一种解决方法,基于所谓的 softmax 层神经元。在本章的剩余部分,我们实际上不会使用 softmax 层,因此如果你时间紧迫,可以跳到下一节。然而,softmax 仍然值得理解,部分原因是它本身很有趣,另一部分原因是我们将在后面讨论深度神经网络时使用 softmax 层。

Softmax 的思想是为我们的神经网络定义一种新类型的输出层。它的开始方式与 sigmoid 层相同,通过形成加权输入来开始。 z j L = ∑ k w j k L a k L − 1 + b j L z^L_j = \sum_{k} w^L_{jk} a^{L-1}_k + b^L_j zjL=kwjkLakL1+bjL然而,我们不应用 sigmoid 函数来获得输出。相反,在 softmax 层中,我们将所谓的 softmax 函数应用于 z j L z^L_j zjL。根据此函数,第 j 个输出神经元的激活 a j L a^L_j ajL
a j L = e z j L ∑ k e z k L , (78) a^L_j = \frac{e^{z^L_j}}{\sum_k e^{z^L_k}}, \tag{78} ajL=kezkLezjL,(78)

如果您对 softmax 函数不熟悉,方程(78)可能看起来很难理解。不明白为什么我们想要使用这个函数。而且这也不明显会帮助我们解决学习减速问题。为了更好地理解方程(78),假设我们有一个具有四个输出神经元和四个相应加权输入的网络,我们将它们表示为 z 1 L , z 2 L , z 3 L z^L_1, z^L_2, z^L_3 z1L,z2L,z3L z 4 L z^L_4 z4L。在下面显示了可调节的滑块,显示了加权输入的可能值,并显示了相应的输出激活的图表。开始探索的一个好方法是使用底部滑块增加 zL4:
在这里插入图片描述
当您增加 zL4 时,您会看到相应的输出激活 aL4 增加,其他输出激活减少。类似地,如果您减少 zL4,那么 aL4 将减少,并且所有其他输出激活将增加。实际上,如果您仔细观察,您会看到在这两种情况下,其他激活的总变化完全补偿了 aL4 的变化。原因是输出激活总是保证总和为 1,我们可以使用方程(78)和一点代数来证明:
∑ j a j L = ∑ j e z j L ∑ k e z k L = 1. (79) \sum_j a^L_j = \frac{\sum_j e^{z^L_j}}{\sum_k e^{z^L_k}} = 1. \tag{79} jajL=kezkLjezjL=1.(79)

因此,如果 aL4 增加,那么其他输出激活必须以相同的总量减少,以确保所有激活的总和保持为 1。当然,类似的情况也适用于所有其他激活。

方程(78)还意味着输出激活都是正的,因为指数函数是正的。将这一点与上一段的观察结合起来,我们可以看到 softmax 层的输出是一组正数,它们总和为 1。换句话说,softmax 层的输出可以被看作是一个概率分布。

softmax 层输出概率分布的事实相当令人满意。在许多问题中,将输出激活 aLj 解释为网络对正确输出为 j 的概率的估计是方便的。因此,在 MNIST 分类问题中,我们可以将 aLj 解释为网络对正确数字分类为 j 的估计概率。

相比之下,如果输出层是 sigmoid 层,那么我们肯定不能假设激活形成一个概率分布。我不会明确证明,但是应该是合理的假设,sigmoid 层的激活通常不会形成概率分布。因此,对于 sigmoid 输出层,我们没有这样简单的输出激活解释。

我们开始逐渐理解 softmax 函数和 softmax 层的行为方式。为了回顾我们的进展:方程(78)中的指数项确保所有输出激活都是正的。而方程(78)中分母的求和确保了 softmax 输出的总和为 1。因此,这种特定形式不再显得那么神秘:相反,它是一种自然的方式来确保输出激活形成一个概率分布。您可以将 softmax 视为一种重新缩放 zLj 的方式,然后将它们压缩在一起形成概率分布。

学习减速问题:我们现在已经相当熟悉 softmax 层神经元了。但我们还没有看到 softmax 层是如何让我们解决学习减速问题的。为了理解这一点,让我们定义对数似然成本函数。我们将使用 x 表示网络的训练输入,y 表示相应的期望输出。那么与此训练输入相关的对数似然成本为
C ≡ − ln ⁡ a y L . (80) C \equiv -\ln a^L_y. \tag{80} ClnayL.(80)

所以,例如,如果我们正在使用 MNIST 图像进行训练,并输入一个数字 7 的图像,那么对数似然成本就是 − ln ⁡ a 7 L -\ln a^L_7 lna7L。为了看出这是直观合理的,考虑当网络表现良好时的情况,也就是说,它对输入是数字 7 的确信度很高。在这种情况下,它将估计相应的概率 a 7 L a^L_7 a7L 的值接近于 1,因此成本 − ln ⁡ a 7 L -\ln a^L_7 lna7L 将很小。相比之下,当网络表现不佳时,概率 a 7 L a^L_7 a7L将较小,成本 − ln ⁡ a 7 L -\ln a^L_7 lna7L 将较大。因此,对数似然成本的行为符合我们对成本函数的预期。

那么学习减速问题呢?要分析这个问题,回想一下学习减速的关键是量 ∂ C / ∂ w j k L \partial C / \partial w^L_{jk} C/wjkL ∂ C / ∂ b j L \partial C / \partial b^L_j C/bjL 的行为。我不会明确地进行推导 - 我会在下面的问题中要求你来做 - 但是通过一点代数运算,你可以证明:
∂ C ∂ b j L = a j L − y j (81) \frac{\partial C}{\partial b^L_j} = a^L_j-y_j \tag{81} bjLC=ajLyj(81)
∂ C ∂ w j k L = a k L − 1 ( a j L − y j ) (82) \frac{\partial C}{\partial w^L_{jk}} = a^{L-1}_k (a^L_j-y_j) \tag{82} wjkLC=akL1(ajLyj)(82)

这些方程与我们之前分析交叉熵时获得的类似表达式相同。例如,将方程(82)与方程(67)进行比较。它们是相同的方程,尽管在后者中我对训练实例进行了平均。而且,正如在先前的分析中一样,这些表达式确保我们不会遇到学习减速。实际上,将具有对数似然成本的 softmax 输出层视为与具有交叉熵成本的 sigmoid 输出层非常相似是很有用的。

鉴于这种相似性,您应该使用 sigmoid 输出层和交叉熵,还是 softmax 输出层和对数似然呢?实际上,在许多情况下,两种方法都效果很好。在本章的其余部分,我们将使用具有交叉熵成本的 sigmoid 输出层。然后,在后面章节中,我们有时会使用具有对数似然成本的 softmax 输出层。切换的原因是使我们稍后的一些网络更类似于某些有影响力的学术论文中发现的网络。作为更一般的原则,每当您想将输出激活解释为概率时,softmax 加上对数似然都值得使用。这并不总是一个关注点,但在涉及不相交类别的分类问题(如 MNIST)中可能很有用。

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

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

相关文章

Vue3 依赖注入provide与inject

简介 关于provide与inject下面是vue官网上的一些介绍 通常情况下,当我们需要从父组件向子组件传递数据时,会使用props。想象一下这样的结构:有一些多层级嵌套的组件,形成了一颗巨大的组件树,而某个深层的子组件需要一个…

【Flask开发实战】防火墙配置文件解析(二)之shell读取内容

一、前言 上一篇文章中,介绍了防火墙配置文件包含的基本元素和格式样式,并模拟了几组有代表性的规则内容,作为基础测试数据。在拿到基础测试数据后,关于我们最终想解析成的数据是什么样式的,其实不难看出,…

GateWay路由规则

Spring Cloud GateWay 帮我们内置了很多 Predicates功能,实现了各种路由匹配规 则(通过 Header、请求参数等作为条件)匹配到对应的路由 1 时间点后匹配 server:port: 8888 spring:application:name: gateway-servicecloud:nacos:discovery:…

四.排序(冒泡/选择)

目录 11-排序介绍 常见排序算法: 12-冒泡排序介绍 代码要求: 思路: 13-冒泡排序 代码: 14-选择排序 简单写法: 好的写法: 11-排序介绍 排序:将一组“无序”的记录序列调整为“有序”的记录序列。 列表排序:将无序列表变为有序列表 输入&#…

C++第七弹---类与对象(四)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、拷贝构造函数 1.1、概念 1.2、特征 2、运算符重载 2.1、等号运算符重载 总结 1、拷贝构造函数 1.1、概念 在现实生活中,可能…

【C++】手撕AVL树

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:能直接手撕AVL树。 > 毒鸡汤:放弃自…

Java安全基础 必备概念理解

Java安全基础 关键概念汇总 文章目录 Java安全基础 关键概念汇总前置知识1.构造器this以及包的使用2.继承3.重写/ 重载 / super4.多态5.区分和equals方法6.toString的使用7.Object的概念8.static,final,代码块static代码块final 9.动态代理10.类的动态加载1)类加载器含义&#…

leetCode刷题 17. 电话号码的字母组合

题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "23&q…

操作系统练习-操作系统的基本概念

操作系统的基本概念 ----------------------------------------------------------------------------------------------------------------------------- 1.操作系统是扩充( )功能的第一层系统软件 A.软件 B.裸机 C.机器语言 …

opengl日记8-opengl创建三角形

文章目录 环境直接上代码一点小总结参考 环境 系统:ubuntu20.04opengl版本:4.6glfw版本:3.3glad版本:4.6cmake版本:3.16.3gcc版本:10.3.0 直接上代码 CMakeLists.txt cmake_minimum_required(VERSION 2…

STM32CubeIDE基础学习-KEY按键输入实验

STM32CubeIDE基础学习-KEY按键输入实验 文章目录 STM32CubeIDE基础学习-KEY按键输入实验前言第1章 硬件介绍第2章 工程配置2.1 工程外设配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 前面学习了GPIO作为输出功能的实验,现在来学习GPIO作为…

【LIMS】微服务

目录 一、服务解决方案-Spring Cloud Alibaba1.1选用原因(基于Spring Cloud Alibaba的试用场景)1.2 核心组件使用前期规划 部署 nacos部署 mino使用JavaFreemarker模板引擎,根据XML模板文件生成Word文档使用JavaFlowable 工作流引擎前端 -vue…

C++初阶:string类的模拟自实现

目录 1. 引子2. 自实现string类功能模块3. string类功能模块的具体实现3.1 默认成员函数3.2 遍历访问相关成员函数3.3 信息插入相关成员函数3.4 信息删除3.5 信息查找3.6 非成员函数3.7 杂项成员函数 4. 补充知识 1. 引子 通过对string类的初步学习,没有对知识进行较…

记一次 .NET某施工建模软件 卡死分析

一:背景 1. 讲故事 前几天有位朋友在微信上找到我,说他的软件卡死了,分析了下也不知道是咋回事,让我帮忙看一下,很多朋友都知道,我分析dump是免费的,当然也不是所有的dump我都能搞定&#xff…

旅游行业分析及媒体邀约资源汇总

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 酒店旅游行业分析及媒体邀约资源汇总是两个相对独立但又相互关联的领域。下面将分别对这两个方面进行概述。 酒店旅游行业分析 1. 市场概况 市场规模:评估市场的总价值、增长…

【python】学习笔记04-函数

4.1 函数介绍 1. 函数是: 组织好的、可重复使用的、用来实现特定功能的代码段 2. 使用函数的好处是: • 将功能封装在函数内,可供随时随地重复利用 • 提高代码的复用性,减少重复代码,提高开发效率 4.2 函数的定义 …

视频桥接芯片#LT8912B适用于MIPIDSI转HDMI+LVDS应用方案,提供技术支持。

1. 概述 Lontium LT8912B MIPI DSI 转 LVDS 和 HDMI 桥接器采用单通道 MIPI D-PHY 接收器前端配置,每通道 4 个数据通道,每个数据通道以 1.5Gbps 的速度运行,最大输入带宽高达 6Gbps。 对于屏幕应用,该桥接器可解码 MIPI DSI 18bp…

聚合音乐网-播放器网站源码

源码简介 MKOnlineMusicPlayer 是一款全屏的音乐播放器 UI 框架(为避免侵权,已移除所有后端功能)。 前端界面参照 QQ 音乐网页版进行布局,同时采用了流行的响应式设计,无论是在PC端还是在手机端,均能给您…

Excel之数据透视表

数据透视:逻辑理解与制作步骤 一、创建数据透视表 1、创建数据透视表:每列必须有表头 (1)选择要创建数据透视表的数据------插入----选择数据透视表 (2)选择现有工作表然后点击目标表选择合适的位置插入…

工控机丨工业平板电脑丨工业计算机丨物流行业应用

随着物流业的发展,工控机在物流领域的应用越来越广泛。工控机是指用于控制工业自动化和机器 人技术的计算机,具有高稳定性、高性能和高可靠性等特点。下面将从几个方面介绍工控机在物流行业中的应用。 一、物流信息管理 工控机可以用于物流信息管理&am…