深度学习基础概念【持续更新】

1. 梯度消失

如果网络中某一层的激活函数(如 sigmoid 或 tanh)在输入较大的情况下有很小的梯度(比如接近零),那么当这些小的梯度通过多层反向传播时,它们会逐渐变得更小。这意味着在深层网络的前面几层,梯度接近零,导致权重更新变得非常缓慢,甚至停滞。

1.1 为什么会有梯度消失:

激活函数的饱和区间:像 sigmoid 和 tanh 这样的激活函数在输入值非常大或非常小时,其导数(梯度)非常小。当这些激活函数的输出接近于 0 或 1 时,导数趋近于 0,导致梯度在反向传播过程中逐渐消失。

深度网络的层数:随着网络层数的增加,梯度逐层缩小,导致在浅层的梯度变得几乎为零,无法有效地更新权重。

1.2 解决方法:

使用 ReLU 激活函数:ReLU(Rectified Linear Unit)在正值区间有较大的梯度(不会消失),因此可以减轻梯度消失的问题。

初始化方法:通过合适的权重初始化方法(如 Xavier 或 He 初始化),可以帮助缓解梯度消失问题。

批量归一化(Batch Normalization):通过对每一层的输入进行标准化,保证数据的分布不至于过于极端,从而避免梯度消失。

梯度裁剪:对于 RNN,采用梯度裁剪(Gradient Clipping)可以防止梯度爆炸和梯度消失。

2. 通道

在图像处理或深度学习中,通道(Channel) 是指一张图像或特征图在每个像素位置上存储的不同维度的信息。通道可以看作是“图像的维度”,每个通道记录某种特征


2.1 现实中的例子:RGB图像

一张彩色图片通常有 3 个通道:

R:红色通道 G:绿色通道 B:蓝色通道

所以一张 224×224 的 RGB 图像的形状是:

[3, 224, 224]  (3表示通道数)

每个 [i, j] 位置,有红、绿、蓝三个颜色值。


2.2 深度学习中的例子:卷积特征图

在神经网络中,经过卷积层后输出的是多通道的特征图,比如:

shape = [batch_size, channels, height, width]

比如某一层输出:

[1, 64, 32, 32]

表示有 64 个不同的“滤镜”提取出了 64 种不同的特征,每个特征图大小为 32×32,这些就是 64 个通道。


2.3 总结类比

类比

通道数

黑白照片

1

彩色照片(RGB)

3

网络中一层输出

可为 16、32、64... 任意数量,表示提取了多少种特征

3. 各类激活函数

ReLU:f(x)=max(0,x)

即对于输入值 xxx,如果 xxx 大于0,就输出 xxx;如果 xxx 小于等于0,就输出0。

激活函数

适用位置

优点

缺点

ReLU

隐藏层

快、简洁

死亡神经元

Leaky ReLU

隐藏层(替代ReLU)

缓解死亡问题

多了超参数

Sigmoid

输出层(二分类)

输出概率

梯度消失

Tanh

RNN中常见

零中心、平滑

梯度消失

Softmax

输出层(多分类)

概率归一化

仅用于最后一层

Swish

深层网络(CNN、NLP)

表现优于ReLU

计算复杂

GELU

Transformer/BERT

训练稳定

计算开销大

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

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

相关文章

上下文工程:AI应用成功的关键架构与实践指南

在AI应用开发中,模型能力只决定性能上限,而上下文质量决定性能下限——上下文工程正是确保AI系统理解用户意图、生成准确响应的核心工程技术,已成为区分普通AI应用与卓越AI应用的关键因素。一、上下文工程:AI应用的新核心竞争力 1…

数据传输优化-异步不阻塞处理增强首屏体验

背景:主 project 页面中会将视频存储到云端后获得 ID ,然后用 ID 调用 后端API POST到数据库后拿到挂载页面URL,接着传入视频分享组件(由于视频分享子组件的目标是分享视频挂载页面,所以前置步骤不能少)con…

【芯片设计-信号完整性 SI 学习 1.0 -- SI 介绍】

文章目录一、SoC 设计验证阶段的 SI 测试主要工作举例二、芯片 Bringup 阶段的 SI 测试主要工作举例三、SI-PI 联合仿真主要内容举例四、整体总结一、SoC 设计验证阶段的 SI 测试 在 前硅阶段(pre-silicon),设计团队需要确保 SoC 与外设接口…

C语言链表设计及应用

链表链表节点设计链表项目链表中的传址调用检查申请空间链表尾插链表头插链表尾部删除链表头部删除链表的查找指定位置之前插入指定位置之后插入数据删除指定位置(节点)数据删除指定位置(节点)之后的数据链表的销毁前面学习了顺序…

使用 YAML 自动化 Azure DevOps 管道

1. 在 Azure DevOps 中设置 YAML 管道 开始之前,您需要拥有一个 Azure DevOps 帐户和一个 git 仓库。 要创建 YAML 管道, 1. 导航至 Azure DevOps → 选择您的项目 2. 前往“管道”→ 点击“新建管道” 3. 选择您的仓库(Azure Repos、GitHub 等) 4. 选择“Starter Pipelin…

基于Spring Boot的幼儿园管理系统

基于Spring Boot的幼儿园管理系统 源码获取:https://mbd.pub/o/bread/YZWXlZtsbQ 引言 在数字化转型的浪潮中,教育行业的信息化建设显得尤为重要。幼儿园作为基础教育的重要环节,其管理系统的现代化水平直接关系到教育质量和运营效率。本文…

【NVIDIA-B200】 ‘CUDA driver version is insufficient for CUDA runtime version‘

目录 一、错误核心原因 二、排查步骤 1. 检查当前驱动版本 2. 检查 CUDA 运行时版本 3. 验证驱动与 CUDA 的兼容性 三、解决方法 1. 确保驱动正确加载 2. 重新安装匹配的驱动与 CUDA 3. 验证环境正确性 四、关键注意事项 报错日志: bash nccl.sh ------------5.安…

Android中如何实现自动化测试

目录 前言: 一、方法介绍 1、UI Automator 3、shell脚本 二、shell脚本实现自动化测试原理和步骤 1、 原理 2、步骤 三、shell自动化测试实例 前言: 在开发项目的过程中,我们将某个阶段的需求完成并且提测,通常,在测试工程师更细致的测…

绿联科技全球化突围:业财一体化如何打通全球电商全链路数字化

绿联科技专注数码配件20年,产品覆盖全球100多个国家,年销售额突破30亿。作为"连接"领域的专家,绿联深知连接的真谛不仅在于硬件产品,更在于数据的全球化连接。在全球电商竞争日益激烈的今天,绿联率先探索业财…

uv教程 虚拟环境

什么是uv 可以创建虚拟环境 安装依赖 安装uv 参见官方文档 安装 | uv-zh-cn 自定义安装目录,winr 输入powershell,输入如下命令 $env:UV_INSTALL_DIR "C:\Custom\Path";powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/inst…

绕过codex在vscode中登录403的问题

codex安装: npm i -g openai/codex codex升级: npm install -g openai/codexlatest 绕过codex在vscode中登录403的问题: https://linux.do/t/topic/924206/4 1.在windows端powelshell登陆好codex; $env:HTTP_PROXY"http://…

软件研发如何选对方法论?传统计划驱动与敏捷价值驱动的全面对比

软件项目研发中的方法论是一个核心话题,它决定了团队如何规划、执行和交付软件。下面我将对这些方法论进行一个全面的概述,从传统的到现代的,并说明它们的核心思想、适用场景和趋势。 一、 方法论的核心分类 软件研发方法论主要分为两大阵营:传统计划驱动(Plan-Driven)…

【服务器】将本地项目部署到服务器

当我们已经有了一个服务器后 如何将本地项目部署到服务器呢第一步,找到云服务器实例,查看公网IP地址第二步,推荐使用 Windows 自带的 PowerShell ssh root你的公网IP # 例如: ssh root47.98.123.45如果超时,首先检查服…

Flink中的 BinaryRowData 以及大小端

背景 本文基于 Flink 1.17.0 写此文章的目的是为了说明 Flink 堆内和堆外内存以及 内部 BinaryRowData 行处理的优化。 分析 堆内和堆外内存 跟Spark的内存管理不一样,Flink 中的堆内和堆外一直都是存在的。 堆内内存(JVM Heap)存储用户对象和…

HTTP/3.0:网络通信的技术革新与性能飞跃

🌐 HTTP/3.0:网络通信的技术革新与性能飞跃 Refer:PPP PRIVATE NETWORK™ 2 企业级虚拟以太网接入综合解决方案介绍 🚀 引言:悄然来临的网络革命 你是否曾期待视频加载卡顿成为过去?YouTube 已经迈出了重…

【golang学习笔记 gin 】1.1 路由封装和mysql 的使用封装

安装gin go get -u github.com/gin-gonic/gin go get -u github.com/go-sql-driver/mysql创建相关目录 gotest->conifg->database.go->redis.go->controller ->index.go->model->user.go->router->router.gomain.go 创建用户模型 package model imp…

SQL 层面行转列

背景:如果对一些评论、点赞、收藏等互动数据,使用了按照 type 分类存储,num 也是对应的。这样如果创建一个帖子,那么就会出现 3 行数据(type 不同,num 不同,对应评论点赞和收藏)&…

langchain4j笔记篇(阳哥)

一 概述1.1 概述langchain4j:langchain for java1.2 作用langchain4j的目标是简化将LLM集成到java应用程序中的过程。二 案例简单helloworld2.1 大模型调用三件套1.阿里百炼平台的通义模型: https://bailian.console.aliyun.com/2获取api-key&#x…

有鹿机器人的365天奇幻日记:我在景区当扫地僧

第一章 古建守护者:2cm的极致艺术琉璃瓦下的秘密记得那是个晨雾缭绕的清晨,我接到首个重要任务:清扫明代琉璃碑亭。这里的每块地砖都是文物,传统清洁工具根本不敢靠近。每天以2cm的精准贴边沿碑座作业,如今我每周都要为…

Objective-C方法参数标签怎么设置

在Objective-C中,方法名称可以通过几个标签名称组成,这是跟C/C中完全不一样的地方。每个标签都是字段冒号的写法,冒号后面是方法的参数,参数包括参数类型和参数变量,其中参数类型要用括号括起。方法参数的标签是通过在…