吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.8-3.9

目录

  • 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)
    • 第三周: 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)
      • 3.8 Softmax 回归(Softmax regression)

第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)

第三周: 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)

3.8 Softmax 回归(Softmax regression)

到目前为止,我们讲到过的分类的例子都使用了二分分类,这种分类只有两种可能的标记 0 或 1,这是一只猫或者不是一只猫,如果我们有多种可能的类型的话呢?有一种 logistic回归的一般形式,叫做 Softmax 回归,能让你在试图识别某一分类时做出预测,或者说是多种分类中的一个,不只是识别两个分类,我们来一起看一下。

在这里插入图片描述
假设你不单需要识别猫,而是想识别猫,狗和小鸡,我把猫加做类 1,狗为类 2,小鸡是类 3,如果不属于以上任何一类,就分到“其它”或者说“以上均不符合”这一类,我把它叫做类 0。这里显示的图片及其对应的分类就是一个例子,这幅图片上是一只小鸡,所以是类3,猫是类 1,狗是类 2,我猜这是一只考拉,所以以上均不符合,那就是类 0,下一个类 3,以此类推。我们将会用符号表示,我会用大写的C来表示你的输入会被分入的类别总个数,在这个例子中,我们有 4 种可能的类别,包括“其它”或“以上均不符合”这一类。当有 4 个分类时,就是 0、1、2、3。

在这里插入图片描述

在这个例子中,我们将建立一个神经网络,其输出层有 4 个,或者说C个输出单元,因此n,即输出层也就是L层的单元数量,等于 4,或者一般而言等于C。我们想要输出层单元的数字告诉我们这 4 种类型中每个的概率有多大,所以这里的第一个节点(最后输出的第 1个方格+圆圈)输出的应该是或者说我们希望它输出“其它”类的概率。在输入X的情况下,这个(最后输出的第 2 个方格+圆圈)会输出猫的概率。在输入X的情况下,这个会输出狗的概率(最后输出的第 3 个方格+圆圈)。在输入X的情况下,输出小鸡的概率(最后输出的第 4 个方格+圆圈),我把小鸡缩写为 bc(baby chick)。因此这里的 y ^ \hat{y} y^将是一个4 × 1维向量,因为它必须输出四个数字,给你这四种概率,因为它们加起来应该等于 1,输出中的四个数字加起来应该等于 1。

让你的网络做到这一点的标准模型要用到 Softmax 层,以及输出层来生成输出,让我把式子写下来,然后回过头来,就会对 Softmax 的作用有一点感觉了。

在这里插入图片描述

在神经网络的最后一层,你将会像往常一样计算各层的线性部分, z [ l ] z^{[l]} z[l]这是最后一层的z变量,记住这是大写L层,和往常一样,计算方法是 z [ l ] = W [ l ] a [ L − 1 ] + b [ l ] z^{[l]} = W^{[l]}a^{[L−1]} + b^{[l]} z[l]=W[l]a[L1]+b[l],算出了𝑧之后,你需要应用 Softmax 激活函数,这个激活函数对于 Softmax 层而言有些不同,它的作用是这样的。首先,我们要计算一个临时变量,我们把它叫做 t,它等于 e z [ l ] e ^{z^{[l]}} ez[l],这适用于每个元素,而这里的 z [ l ] z^{[l]} z[l],在我们的例子中, z [ l ] z^{[l]} z[l]是 4×1 的,四维向量 t = e z [ l ] t= e^{z^{[l]}} t=ez[l],这是对所有元素求幂,t也是一个 4×1 维向量,然后输出的 a [ l ] a^{[l]} a[l],基本上就是向量𝑡,但是会归一化,使和为 1。因此 a [ l ] = e z [ l ] ∑ i = 1 4 t i a^{[l]} =\frac{e^{z^{[l]}}}{\sum_{i=1}^4{t_i}} a[l]=i=14tiez[l],换句话说, a [ l ] a^{[l]} a[l]也是一个 4×1 维向量,而这个四维向量的第i个元素,我把它写下来, a i [ l ] = t i ∑ i = 1 4 t i a_i^{[l]} =\frac{t_i}{\sum_{i=1}^4{t_i}} ai[l]=i=14titi,以防这里的计算不够清晰易懂,我们马上会举个例子来详细解释。

我们来看一个例子,详细解释,假设你算出了 z [ l ] , z [ l ] z^{[l]},z^{[l]} z[l]z[l]是一个四维向量,假设为 z [ l ] = [ 5 2 − 1 3 ] z^{[l]} =\begin{bmatrix} 5\\2\\-1\\3 \end{bmatrix} z[l]= 5213 ,我们要做的就是用这个元素取幂方法来计算𝑡,所以 t = [ e 5 e 2 e − 1 e 3 ] t =\begin{bmatrix} e^5\\e^2\\e^{-1}\\e^3 \end{bmatrix} t= e5e2e1e3 ,如果你按一下计算器就会得到以下值 t = [ 148.4 7.4 0.4 20.1 ] t =\begin{bmatrix} 148.4\\7.4\\0.4\\20.1 \end{bmatrix} t= 148.47.40.420.1 ,我们从向量𝑡得到向量 a [ l ] a^{[l]} a[l]就只需要将这些项目归一化,使总和为 1。如果你把𝑡的元素都加起来,把这四个数字加起来,得到 176.3,最终 a [ l ] = t 176.3 a^{[l]}=\frac{t}{176.3} a[l]=176.3t

在这里插入图片描述

例如这里的第一个节点,它会输出 e 5 176.3 \frac{e^5}{176.3} 176.3e5= 0.842,这样说来,对于这张图片,如果这是你得到的𝑧值( [ 5 2 − 1 3 ] \begin{bmatrix} 5\\2\\-1\\3 \end{bmatrix} 5213 ),它是类 0 的概率就是 84.2%。下一个节点输出 e 2 176.3 \frac{e^2}{176.3} 176.3e2= 0.042,也就是 4.2%的几率。下一个是 e − 1 176.3 \frac{e^{-1}}{176.3} 176.3e1= 0.002。最后一个是 e 3 176.3 \frac{e^{3}}{176.3} 176.3e3= 0.114,也就是 11.4%的概率属于类 3,也就是小鸡组,对吧?这就是它属于类 0,类 1,类 2,类 3 的可能性。

在这里插入图片描述

神经网络的输出 a [ l ] a^{[l]} a[l],也就是 y ^ \hat{y} y^,是一个 4×1 维向量,这个 4×1 向量的元素就是我们算出来的这四个数字( [ 0.842 0.042 0.002 0.114 ] \begin{bmatrix} 0.842\\0.042\\0.002\\0.114 \end{bmatrix} 0.8420.0420.0020.114 ),所以这种算法通过向量 z [ l ] z^{[l]} z[l]计算出总和为 1 的四个概率。

如果我们总结一下从 z [ l ] z^{[l]} z[l] a [ l ] a^{[l]} a[l]的计算步骤,整个计算过程,从计算幂到得出临时变量𝑡,再归一化,我们可以将此概括为一个 Softmax 激活函数。设 a [ l ] = g [ l ] a^{[l]} = g^{[l]} a[l]=g[l]( z [ l ] z^{[l]} z[l]),这一激活函数的与众不同之处在于,这个激活函数𝑔 需要输入一个 4×1 维向量,然后输出一个 4×1 维向量。之前,我们的激活函数都是接受单行数值输入,例如 Sigmoid 和 ReLu 激活函数,输入一个实数,输出一个实数。Softmax 激活函数的特殊之处在于,因为需要将所有可能的输出归一化,就需要输入一个向量,最后输出一个向量。

那么 Softmax 分类器还可以代表其它的什么东西么?我来举几个例子,你有两个输入 x 1 x_1 x1 x 2 x_2 x2,它们直接输入到 Softmax 层,它有三四个或者更多的输出节点,输出 y ^ \hat{y} y^,我将向你展示一个没有隐藏层的神经网络,它所做的就是计算 z [ 1 ] = W [ 1 ] x + b [ 1 ] z^{[1]} = W^{[1]}x + b^{[1]} z[1]=W[1]x+b[1],而输出的出 a [ l ] a^{[l]} a[l],或者说 y ^ \hat{y} y^ a [ l ] = y = g ( z [ l ] ) a^{[l]} = y = g(z[l]) a[l]=y=g(z[l]),就是 z [ 1 ] z^{[1]} z[1]的 Softmax 激活函数,这个没有隐藏层的神经网络应该能让你对 Softmax 函数能够代表的东西有所了解。

在这里插入图片描述
这个例子中(左边图),原始输入只有 x 1 x_1 x1 x 2 x_2 x2,一个𝐶 = 3个输出分类的 Softmax 层能够代表这种类型的决策边界,请注意这是几条线性决策边界,但这使得它能够将数据分到 3个类别中,在这张图表中,我们所做的是选择这张图中显示的训练集,用数据的 3 种输出标签来训练 Softmax 分类器,图中的颜色显示了 Softmax 分类器的输出的阈值,输入的着色是基于三种输出中概率最高的那种。因此我们可以看到这是 logistic 回归的一般形式,有类似线性的决策边界,但有超过两个分类,分类不只有 0 和 1,而是可以是 0,1 或 2。

这是(中间图)另一个 Softmax 分类器可以代表的决策边界的例子,用有三个分类的数据集来训练,这里(右边图)还有一个。对吧,但是直觉告诉我们,任何两个分类之间的决策边界都是线性的,这就是为什么你看到,比如这里黄色和红色分类之间的决策边界是线性边界,紫色和红色之间的也是线性边界,紫色和黄色之间的也是线性决策边界,但它能用这些不同的线性函数来把空间分成三类。

在这里插入图片描述

我们来看一下更多分类的例子,这个例子中(左边图)𝐶 = 4,因此这个绿色分类和Softmax 仍旧可以代表多种分类之间的这些类型的线性决策边界。另一个例子(中间图)是𝐶 = 5类,最后一个例子(右边图)是𝐶 = 6,这显示了 Softmax 分类器在没有隐藏层的情况下能够做到的事情,当然更深的神经网络会有𝑥,然后是一些隐藏单元,以及更多隐藏单元等等,你就可以学习更复杂的非线性决策边界,来区分多种不同分类。

我希望你了解了神经网络中的 Softmax 层或者 Softmax 激活函数有什么作用,下一个视频中,我们来看一下你该怎样训练一个使用 Softmax 层的神经网络。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性插值的频域特性

1、抽取和插值的简单说明 抽取和插值是变采样过程中常用的两种手段,其中抽取的目的是降低数据的采样率,以降低对系统存储深度或计算量的要求。插值的目的是提高数据的采样率,以提高系统的计算精度。 M M M倍抽取通常是通过每隔 M M M…

全球首个AI代理驱动的元宇宙生态Wondra,让Web3再次伟大

前段时间,因为OpenAI的Sora发布、英伟达财报的发布,英伟达市值直逼2.5万亿美金,使得Crypto行业的AI赛道热度飙升,WLD,AGIX,FET等项目都有了不俗的表现。而这几天,因为大盘整体向好,再…

UVa1466/LA4849 String Phone

UVa1466/LA4849 String Phone 题目链接题意分析AC 代码 题目链接 本题是2010年icpc亚洲区域赛大田赛区的G题 题意 平面网格上有n(n≤3000)个单元格,各代表一个重要的建筑物。为了保证建筑物的安全,警察署给每个建筑物派了一名警察…

Android11 事件分发流程

在Android 11 输入系统之InputDispatcher和应用窗口建立联系一文中介绍到,当InputDispatcher写入数据后,客户端这边就会调用handleEvent方法接收数据 //frameworks\base\core\jni\android_view_InputEventReceiver.cpp int NativeInputEventReceiver::h…

Jmeter 安装教程:简单易懂

随着互联网的不断发展,网站和应用程序的性能测试变得越来越重要。Apache JMeter 是一款广泛使用的性能测试工具,它强大且使用广泛,适用于各种性能测试需求。不论你是刚刚接触性能测试的新手,还是一位有经验的测试工程师&#xff0…

总线带宽(总线系统的数据传送速率)

定义 总线上每秒钟传输的最大字节数或比特数 表示方法 通常使用“比特率”来表示,单位为比特每秒(bps,b/s)。 计算公式 总线带宽总线宽度/传输周期 其中,总线宽度是指数据总线的位数(单位&#xff1a…

scp问题:Permission denied, please try again.

我把scp归纳三种情况: 源端root——》目标端root 源端root——》目标端mysql(任意)用户 源端(任意用户)——》目标端root用户 在scp传输文件的时候需要指导目标端的用户密码,如root用户密码、mysql用户…

solidwork3D草图案例-曲管

单位mm 3D草图 点击线,根据三视图,绘制直线, 圆角 半径25mm 扫描 三视图 如果觉得好的话,或者有疑问,请关注微信公众号咨询

RedHat9 | DNS剖析-配置转发DNS服务器

一、实验环境 1、转发DNS服务器 转发服务器(Forwarding Server)接受查询请求,但不直接提供DNS解析,而是将所有查询请求发送到另外一台DNS服务器,查询到结果后保存在本地缓存中。如果没有指定转发服务器,D…

Media Encoder 2024 for Mac媒体编码器安装教程ME2024安装包下载

安装 步骤 1,双击打开下载好的安装包。 2,选择install ame_24...双击打开启动安装程序。 3,点击install。 4,输入电脑密码。 5,软件安装中... 6,安装结束点击好。 7,返回打开的镜像 选择激活补…

品牌建设不迷路:系统化方法让品牌成长更高效

很多创始人才创业过程中都会发现: 企业越大,遇到的系统性的底层品牌问题就会越多,品牌的系统化建设底层根基如果不稳,后续的增长也会摇摇欲坠。 所以在当今竞争激烈的市场环境中,品牌的成功不仅仅依靠一个响亮的名字…

LeetCode/NowCoder-链表经典算法OJ练习4

人的才华就如海绵的水,没有外力的挤压,它是绝对流不出来的。流出来后,海绵才能吸收新的源泉。💓💓💓 目录 说在前面 题目一:环形链表 题目二:环形链表 II 题目三:随机…

lammps案例:reaxff势模拟Fe(OH)3高温反应过程

大家好,我是小马老师。 本文分享一个reaxff反应势的案例。 该案例主要模拟Fe(OH)3在高温下的反应过程,主要代码来自lammps自带的案例。 lammps自带案例没有产物输出,故在此基础上稍加修改,增加了产物输出命令。 反应过程如下图…

算法题目记录

1.最短距离 题目简化: 明确问题 算法提示: 1.如何判断同类之间的最短距离为0 ---> 并查集路径压缩 2.如何存储任意两类的距离 ---> 邻接矩阵存储无向图 3.如何表示每个点属于哪一类 ---> 用数组id[节点]存储属于哪一类 4.如何算出任意两类…

C语言中的位段

位段是通过结构体实现的,可以在一定程度上减小空间浪费,位段的声明和结构体类似,有以下几个不同: ①位段的成员必须是整形(int,char,short等)。 ②成员后边有冒号和数字,表示该成员占几个bit位…

QA测试开发工程师面试题满分问答24: 用过哪些消息队列,各自的特点和优缺点是什么,结合项目实际说一说

回答思路 回答开头: 首先表达我对这个问题的认真态度,并表示我将根据自己的项目实践经验来回答。 列举使用过的消息队列: 根据我参与过的项目经验,我使用过以下几种主流的消息队列: RabbitMQApache KafkaRedis 的 pub/sub 功能 分别介绍各消息队列的特点: RabbitMQ: 特点: 基于…

Golang | Leetcode Golang题解之第104题二叉树的最大深度

题目: 题解: func maxDepth(root *TreeNode) int {if root nil {return 0}queue : []*TreeNode{}queue append(queue, root)ans : 0for len(queue) > 0 {sz : len(queue)for sz > 0 {node : queue[0]queue queue[1:]if node.Left ! nil {queue…

Matlab-熵权法

文章目录 熵权法一、模型简介二、例题1. 数据标准化2.指标的熵值和变异程度3.权重与评分4.代码实现 熵权法 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多…

大数据量上传FTP

背景 笔者有一个需求是把将近一亿条数据上传到FTP服务器中,这些数据目前是存储在mysql中,是通过关联几张表查询出来的,查询出来的数据结果集一共是6个字段。要求传输的时候拆分成一个个小文件,每个文件大小不能超过500M。我的测试…

迁移基于MicroBlaze处理器的设计

迁移基于MicroBlaze处理器的设计 生成系统基础设施(MicroBlaze、AXI_Interconnect, Clk_Wiz、Proc_Sys_Reset) 生成系统基础设施(MicroBlaze、AXI_Interconnect、Clk_Wiz和 Proc_Sys_Reset): 1.使用所需的板…