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

news2024/11/28 1:37:22

目录

  • 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (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 层的神经网络。

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

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

相关文章

【效率提升】Edge浏览器

现如今,无论是办公、学习,还是日常搜索、娱乐等,选择一个搜索快,准确率高,不卡顿,没广告的浏览器都是非常重要的。我想向大家推荐一款极具实力的浏览器:Microsoft Edge。 Microsoft Edge 浏览器…

通过date命令给日志文件添加日期

一、背景 服务的日志没有使用日志工具,每次重启后生成新日志文件名称相同,新日志将会把旧日志文件冲掉,旧日志无法保留。 为避免因旧日志丢失导致无法定位问题,所以需要保证每次生成的日志文件名称不同。 二、解决 在启动时&am…

sklearn监督学习--k近邻算法

sklearn监督学习 一、分类与回归二、泛化、过拟合与欠拟合三、k近邻算法四、分析KNeighborsClassifier五、k近邻算法用于回归优点、缺点和参数 一、分类与回归 监督学习是最常用也是最成功的机器学习类型之一。监督机器学习问题主要有两种,分别叫做分类与回归。分类…

音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档

文章目录 音乐系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考(9.9¥带走) 音乐系统 一、项目演示 在线音乐系统 二、项目介绍 基于springbootvue的前后端分离在线音乐系…

Python读取Excel表格文件并绘制多列数据的曲线图

本文介绍基于Python语言,读取Excel表格数据,并基于给定的行数范围内的指定列数据,绘制多条曲线图,并动态调整图片长度的方法。 首先,我们来明确一下本文的需求。现有一个.csv格式的Excel表格文件,其第一列为…

【讲解下Chrome DevTools】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Golang | Leetcode Golang题解之第101题对称二叉树

题目: 题解: func isSymmetric(root *TreeNode) bool {u, v : root, rootq : []*TreeNode{}q append(q, u)q append(q, v)for len(q) > 0 {u, v q[0], q[1]q q[2:]if u nil && v nil {continue}if u nil || v nil {return false}if …

计算机操作系统体系结构

我是荔园微风,作为一名在IT界整整25年的老兵,今天给大家讲讲操作系统。 当今的操作系统趋向于越来越复杂,因为它们提供许多服务,并支持各种硬件和软件资源(请参见“操作系统思想:尽量保持简单”&#xff0…

spark的简单学习二

一 spark sql基础 1.1 Dataframe 1.介绍: DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表 格,除了数据以外,还掌握数据的结构信息,即schema。同时,与Hive类似,DataFrame也支 持…

基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好

以微博考研话题为例 思路步骤: 数据清洗: 使用pandas读取数据文件,并进行数据清洗和预处理,包括去除重复值、数据替换等。 数据处理实现: 数据处理的过程如下: 数据清洗主要包括去重和数据转换两个步骤…

安卓 view淡入淡出(fade in fade out) kotlin

文章目录 前言一、布局文件二、kotlin扩展方法1.fadeOutAnimation 淡出动画2.fadeInAnimation 淡入动画 三、使用总结 前言 好久没写文章了,简单码一个淡入淡出,我们先上效果图 那么接下来上代码 一、布局文件 我这边直接将activity_main.xml改为下列代码,可以看到其中包含一…

利用sql注入对某非法网站的渗透

本文仅用于技术讨论,切勿用于违法途径,且行且珍惜, 所有非经授权的渗透,都是违法行为 前言 这段时间一直在捣鼓sql注入,最近又通过一个sql注入点,成功进入某个非法网站的后台,拿到整个网站的…

具有固定宽度的盒子:\makebox, \parbox

makebox \makebox 是 LaTeX 中的一个命令&#xff0c;用于创建一个具有固定宽度的盒子&#xff0c;并在该盒子内放置内容。这个命令可以用于控制文本或对象的位置和对齐。 语法如下&#xff1a; \makebox[<width>][<alignment>]{<content>}其中&#xff1…

世界改变了我?还是我在改变着这个世界?-教育的魅力

目录 一、背景二、过程1.拥抱不确定性的心态2.应对变数的积极3.螺旋向上的能力4.突破自我的意志 三、总结 一、背景 现在这个时代唯一确定的就是不确定&#xff0c;社会发展太快了&#xff0c;尤其是中国的发展速度&#xff1b;大国生态人口生态。 有时候隐约中我自己也觉得和…

短剧解说一键生成原创文案的快速方法

如今短剧创作火的一塌糊涂&#xff0c;它们以其简洁明了的剧情、生动有趣的角色和紧凑的节奏&#xff0c;吸引了大量观众的关注。因此&#xff0c;它所带来的流量是非常巨大&#xff0c;不少人将流量的获取瞄准了短剧创作领域以及短剧解说领域。而对于短剧解说人员来讲&#xf…

FreeRtos进阶——消息队列的操作逻辑

消息队列&#xff08;queue&#xff09; 在不同的任务之间&#xff0c;如果我们需要互相之间通信&#xff0c;使用全局变量进行通信&#xff0c;是一种不安全的通信的方式。为保证线程安全&#xff0c;我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…

数字化工厂怎么收集,处理数据?

数字化工厂的数据收集与处理 数字化工厂是现代化工厂&#xff0c;利用数字技术和数据分析提高效率和优化流程。数据分析作为数字化工厂的核心技术&#xff0c;对数据的获取与处理至关重要。在数字化工厂中&#xff0c;数据的来源包括企业内部信息系统、物联网信息以及外部信息&…

VSCode安装platformio插件

文章目录 一、安装VSCode二、安装platformio&#xff08;一&#xff09;整理文件夹&#xff08;二&#xff09;整理Python环境&#xff08;三&#xff09;安装platformio 三、创建ESP8266项目四、使用命令行创建项目五、创建项目太久怎么办六、参考链接 一、安装VSCode VSCode…

探寻导师:2024年最新研究生导师评价汇总

随着考研热潮的不断升温&#xff0c;对于研究生导师的选择变得愈发重要。导师不仅关系到研究生的学术成长&#xff0c;还直接影响到未来的职业发展。然而&#xff0c;如何找到一位合适的导师成为许多考生头疼的问题。为了帮助广大考生更好地选择导师&#xff0c;整理了最新最全…

如何破解navicat16

先安装好没破解的navicat16 以管理员身份运行 ‘无限试用Navicat.bat’ 复制这个 点击属性 打开文件所属位置 把复制的文件粘贴进去 直接启动navicat16