当前位置: 首页 > news >正文

吴恩达深度学习——超参数调试

内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。

文章目录

  • 超参数调试
    • 调试
    • 选择范围
  • Batch归一化
    • 公式
    • 整合
  • Softmax

超参数调试

调试

目前学习的一些超参数有学习率 α \alpha α(最重要)、动量梯度下降法 β \beta β(次重要)、Adam优化算法 β 1 \beta_1 β1 β 2 \beta_2 β2 ϵ \epsilon ϵ(这三个参数一般默认)、层数layers(次次重要)、不同层中的隐藏单元数量hidden units(次重要)、学习率衰减learning rate decay(次次重要)、小批量大小mini-batch size(次重要)。在这里插入图片描述

对于超参数的取值,如果有两个超参数,可以画一个网格,然后随机取值;如果有三个超参数,画一个立方体随机取值。

另外,可以从粗到细取值。在某个范围内取的超参数明显比周围的效果要好,那么可以在这个范围内细分取值。

在这里插入图片描述
在这里插入图片描述

选择范围

在这里插入图片描述

假设学习率在0.0001~1之间,那么不应该随机均匀取值,否则大部分数据落在0.1~1上,因此,使用对数标尺搜索超参数。 0.0001 = 1 0 − 4 , 1 = 1 0 0 , r ∈ [ − 4 , 0 ] 0.0001=10^{-4},1=10^0,r\in[-4,0] 0.0001=104,1=100,r[4,0]。在 r r r的范围内随机取值,然后使用对数重新映射到对数标尺上。

Batch归一化

在这里插入图片描述
对于单层神经网络,对参数 x x x归一化,可以方便算法优化。
在这里插入图片描述
对于多层神经网络比如 w [ 3 ] w^{[3]} w[3],是否可以对参数 a [ 2 ] a^{[2]} a[2]归一化? a [ 2 ] a^{[2]} a[2]来自于 z [ 2 ] z^{[2]} z[2],所以对 z [ 2 ] z^{[2]} z[2]进行归一化,称为Batch归一化。

公式

  1. 计算均值:对于给定的mini - batch数据(以神经网络某层输入 z ( 1 ) , z ( 2 ) , ⋯ , z ( m ) z^{(1)}, z^{(2)}, \cdots, z^{(m)} z(1),z(2),,z(m)为例, m m m是mini - batch大小),计算其均值 μ \mu μ μ = 1 m ∑ i = 1 m z ( i ) \mu=\frac{1}{m}\sum_{i = 1}^{m}z^{(i)} μ=m1i=1mz(i)
  2. 计算方差:计算mini - batch数据的方差 σ 2 \sigma^2 σ2 σ 2 = 1 m ∑ i = 1 m ( z ( i ) − μ ) 2 \sigma^2=\frac{1}{m}\sum_{i = 1}^{m}(z^{(i)} - \mu)^2 σ2=m1i=1m(z(i)μ)2
  3. 归一化:对每个数据点 z ( i ) z^{(i)} z(i)进行归一化,得到 z n o r m ( i ) = z ( i ) − μ σ 2 + ϵ z_{norm}^{(i)}=\frac{z^{(i)} - \mu}{\sqrt{\sigma^2+\epsilon}} znorm(i)=σ2+ϵ z(i)μ,其中 ϵ \epsilon ϵ是一个很小的正数(如 1 0 − 8 10^{-8} 108),防止分母为零。
  4. 尺度变换和偏移:引入可学习参数 γ \gamma γ(尺度参数)和 β \beta β(偏移参数),对归一化后的数据进行变换: z ^ ( i ) = γ z n o r m ( i ) + β \hat{z}^{(i)}=\gamma z_{norm}^{(i)}+\beta z^(i)=γznorm(i)+β
    如果 γ = σ 2 + ϵ , β = μ \gamma=\sqrt{\sigma^2+\epsilon},\beta=\mu γ=σ2+ϵ β=μ,有 z ^ ( i ) \hat{z}^{(i)} z^(i)= z ( i ) z^{(i)} z(i) γ 、 β \gamma、\beta γβ是新引入的超参数。

整合

在这里插入图片描述

输入层有 x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3三个输入特征,经过两层隐藏层,每层有两个神经元,最终输出 y ^ \hat{y} y^。神经元中 z [ l ] z^{[l]} z[l]表示第 l l l层的线性输出, a [ l ] a^{[l]} a[l]表示第 l l l层的激活输出。

在每一层的线性输出 z [ l ] z^{[l]} z[l]之后进行Batch归一化(BN)操作,引入可学习参数 β [ l ] \beta^{[l]} β[l] γ [ l ] \gamma^{[l]} γ[l],归一化后再经过激活函数得到 a [ l ] a^{[l]} a[l]。图中红色波浪线部分表示Batch归一化的处理位置。

在神经网络中,某层的线性输出原本为 z = W x + b z = Wx + b z=Wx+b 。当进行Batch归一化时,由于后续的 β \beta β(偏移参数)也起到了类似 b b b的添加偏移量的作用,所以从效果上看, b b b的作用被 β \beta β替代了。也就是说, b b b对输入数据所做的添加偏移量的操作,在Batch归一化后的 β \beta β操作中可以等效实现,因此在实际计算中可以将 b b b消去,简化计算过程。

在实际应用中,由于样本是mini-Batch,因此,归一化时可以使用指数加权平均来计算 μ \mu μ σ 2 \sigma^2 σ2

Softmax

之前的分类采用二分分类,这种分类只有0和1两种标记。如果我们需要更多的标记,可以使用Softmax回归来识别多种分类中的一个。

在这里插入图片描述

对于识别猫、狗、小鸡以及其他类别,总共有 C = 4 C = 4 C=4个类别,分别用0(其他)、1(猫)、2(狗)、3(小鸡)表示。下方的神经网络架构,输入 X X X经过多个隐藏层,最终输出层有 n [ L ] = 4 n^{[L]} = 4 n[L]=4个神经元,分别对应输入图像属于“其他”“猫”“狗”“小鸡”这四类的概率 P ( o t h e r ∣ x ) P(other|x) P(otherx) P ( c a t ∣ x ) P(cat|x) P(catx) P ( d o g ∣ x ) P(dog|x) P(dogx) P ( b c l ∣ x ) P(bcl|x) P(bclx),输出 y ^ \hat{y} y^代表预测的类别。

对于 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作为激活函数。先对 z [ l ] z^{[l]} z[l]进行指数运算得到 t = e z [ l ] t = e^{z^{[l]}} t=ez[l] ,然后通过Softmax公式计算激活输出 a [ l ] a^{[l]} a[l] a [ l ] = e z [ l ] ∑ j = 1 4 t i a^{[l]}=\frac{e^{z^{[l]}}}{\sum_{j = 1}^{4}t_{i}} a[l]=j=14tiez[l] ,其元素 a i [ l ] = t i ∑ j = 1 4 t i a_{i}^{[l]}=\frac{t_{i}}{\sum_{j = 1}^{4}t_{i}} ai[l]=j=14titi ,将线性输出转换为概率分布。

相关文章:

吴恩达深度学习——超参数调试

内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。 文章目录 超参数调试调试选择范围 Batch归一化公式整合 Softmax 超参数调试 调试 目前学习的一些超参数有学习率 α \alpha α(最重要)、动量梯度下降法 β \bet…...

SQL NOW() 函数详解

SQL NOW() 函数详解 引言 在SQL数据库中,NOW() 函数是一个常用的日期和时间函数,用于获取当前的时间戳。本文将详细介绍 NOW() 函数的用法、参数、返回值以及在实际应用中的注意事项。 函数概述 NOW() 函数返回当前的日期和时间,格式为 Y…...

【JAVA基础】双亲委派

双亲委派可以简单理解为, 当收到加载请求时, 会依次向上加载 ; 只有当父类加载器无法完成加载请求时,子类加载器才会尝试自己去加载。 工作原理 类加载请求传递:当应用程序需要加载一个类时,比如通过ClassLoader.loadClass()方法&#xff0…...

刷题记录 HOT100回溯算法-6:79. 单词搜索

题目:79. 单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻…...

JavaScript系列(52)--编译优化技术详解

JavaScript编译优化技术详解 🚀 今天,让我们深入探讨JavaScript的编译优化技术。通过理解和应用这些技术,我们可以显著提升JavaScript代码的执行效率。 编译优化基础概念 🌟 💡 小知识:JavaScript引擎通常…...

Ollama+DeepSeek本地大模型部署

1、Ollama 官网:https://ollama.com/ Ollama可以干什么? 可以快速在本地部署和管理各种大语言模型,操作命令和dokcer类似。 mac安装ollama: # 安装ollama brew install ollama# 启动ollama服务(默认11434端口&#xf…...

在 WSL2 中重启 Ubuntu 实例

在 WSL2 中重启 Ubuntu 实例,可以按照以下步骤操作: 方法 1: 使用 wsl 命令 关闭 Ubuntu 实例: 打开 PowerShell 或命令提示符,运行以下命令: wsl --shutdown这会关闭所有 WSL2 实例。 重新启动 Ubuntu: 再次打开 Ubuntu&#x…...

【ts + java】古玩系统开发总结

src别名的配置 开发中文件和文件的关系会比较复杂,我们需要给src文件夹一个别名吧 vite.config.js import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path// https://vitejs.dev/config/ export default defineConfig({pl…...

机器学习周报-文献阅读

文章目录 摘要Abstract 1 相关知识1.1 WDN建模1.2 掩码操作(Masking Operation) 2 论文内容2.1 WDN信息的数据处理2.2 使用所收集的数据构造模型2.2.1 Gated graph neural network2.2.2 Masking operation2.2.3 Training loss2.2.4 Evaluation metrics 2…...

LabVIEW微位移平台位移控制系统

本文介绍了基于LabVIEW的微位移平台位移控制系统的研究。通过设计一个闭环控制系统,针对微位移平台的通信驱动问题进行了解决,并提出了一种LabVIEW的应用方案,用于监控和控制微位移平台的位移,从而提高系统的精度和稳定性。 项目背…...

fpga系列 HDL:XILINX Vivado ILA FPGA 在线逻辑分析

ILA为内置逻辑分析仪,通过JTAG与FPGA连接,程序在真实硬件中运行,功能类似Quaruts的SignalTap II 。 ip创建ila 使用ila ip核 timescale 1ns / 1ps module HLSLED(input wire clk ,input wire rst_n ,output wire led);// reg led_o_i 1…...

刷题记录 贪心算法-2:455. 分发饼干

题目:455. 分发饼干 难度:简单 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸&a…...

Android --- CameraX讲解

预备知识 surface surfaceView SurfaceHolder surface 是什么? 一句话来说: surface是一块用于填充图像数据的内存。 surfaceView 是什么? 它是一个显示surface 的View。 在app中仍在 ViewHierachy 中,但在wms 中可以理解为…...

ElasticSearch view

基础知识类 elasticsearch和数据库之间区别? elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。 数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于…...

list的使用,及部分功能的模拟实现(C++)

目录(文章中"节点"和"结点"是同一个意思) 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 1.2.6 list…...

联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署

直接上手搓了: conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…...

[Spring] Gateway详解

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

音叉模态分析

目录 0 序言 1 自由状态下模态求解 1.1 添加模态项目 1.2 生成网格 1.3 设置最大模态阶数 1.4 求解 1.5 结果查看 1.6 结果分析 2 音叉能否释放频率440Hz的音调 3 预应力模态求解 3.1 静态结构分析 3.1.1 添加静态结构项目 3.1.2生成网格 3.1.3添加边界条件 3.1…...

BW AO/工作簿权限配置

场景: 按事业部配置工作簿权限; 1、创建用户 事务码:SU01,用户主数据的维护,可以创建、修改、删除、锁定、解锁、修改密码等 用户设置详情页 2、创建权限角色 用户的权限菜单是通过权限角色分配来实现的 2.1、自定…...

C++ 字母大小写转换两种方法统计数字字符的个数

目录 题目: 代码1: 代码2: 题目描述输入一行字符,统计出其中数字字符的个数。 代码如下: 判断⼀个字符是否是数字字符有⼀个函数是 isdigit ,可以直接使⽤。 代码如下: 题目: 大家都知道…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...