《动手学深度学习》笔记1.10——激活函数←模型初始化←数值稳定性

news2024/9/25 0:42:09

目录

1. 数值稳定性

1.1 神经网络的梯度

1.2 数值稳定性的常见两个问题

1.3 梯度爆炸

1.3.1 MLP的例子

1.3.2 使用ReLU激活函数

1.3.3 产生的问题

1.4 梯度消失

1.4.1 使用sigmoid激活函数

1.4.2 梯度消失的问题

1.5 总结

2. 让训练更稳定

2.1 目标 (ResNet, LSTM相关)

2.2 模型初始化 (W)

2.3 期望与方差 (MLP为例)

2.4 Xavier 初始化

2.5 激活函数 (σ)

2.6 常用激活函数

2.7 总结


1. 数值稳定性

1.1 神经网络的梯度

1.2 数值稳定性的常见两个问题

1.3 梯度爆炸

1.3.1 MLP的例子

  • 这是多层感知机第t层的形状
  • h^{t}:第t层隐藏层的输出
  • h^{t-1}:第t层隐藏层的的输入
  • σ激活函数:给神经元引入非线性特性,如ReLU
  • diag():对角矩阵

1.3.2 使用ReLU激活函数

  • 如果 d-t 很大,说明网络很深,值将会很大,导致梯度爆炸

1.3.3 产生的问题

1.4 梯度消失

1.4.1 使用sigmoid激活函数

  • 横坐标是输入,对应的是这里 ↓

  • 如果输入很大(比如6),梯度约等于0,模型不动了

1.4.2 梯度消失的问题

1.5 总结

2. 让训练更稳定

2.1 目标 (ResNet, LSTM相关)

李沐老师: “让乘法变加法”

  • 常使用 “让乘法变加法” 来训练的模型,包括ResNet, LSTM, CNN
    • 原先是用乘法进行线性变换:在深度神经网络中,每一层的输出是前一层输出的加权和,这里的权重(即神经网络中的参数)与输入的元素逐个相乘,然后求和
    • 乘法容易导致梯度消失/爆炸(指数效应)
  • ResNet的核心:层数很多的时候,使用加法而不是乘法 (来传递信号)
  • LSTM:时序就是句子长度,例如把句子按照单词 (一个单词一个时序) 划分成一个一个的时序 (输入)
    • 原始的时序神经网络是对每一个时序做乘法,句子太长就会梯度消失/爆炸
    • LSTM将乘法变成加法
  • 加法出问题的概率远低于乘法
  • 归一化:把梯度拉回来,均值为0,方差为1
  • 梯度剪裁:比如梯度大于5就强行等于5,小于-5的梯度也变为-5(即设置上限)

合理的权重初始化激活函数是这里的重点!

2.2 模型初始化 (W)

2.3 期望与方差 (MLP为例)

期望:

  • n_{t-1}:前一层网络 输出的个数(即前一层神经元的数量)
  • \gamma _{t}:为了让第t层网络的输入和输出的方差相等,在权重初始化时设置的 (方差)

李沐老师:反向和正向一样

2.4 Xavier 初始化

李沐老师:

  • Xavier 是常用的权重初始化方法
  • Xavier 大致是指在权重初始化时,根据输入和输出的维度设置方差
  • Xavier 核心思想是保持每层激活前后数据的方差一致,以避免梯度消失或梯度爆炸问题

2.5 激活函数 (σ)

李沐老师:

  • 咱前面的算法都没有激活函数
  • 这里假设为线性,是为了方便分析(用2维理解高维度)

2.6 常用激活函数

2.7 总结

  • 合理的权重初始值和激活函数的选取可以提升数值稳定性

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

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

相关文章

8.进销存系统(基于springboot的进销存系统)

目录 1.系统的受众说明 2.开发技术与环境配置 2.1 SpringBoot框架 2.2 Java语言简介 2.3 MySQL环境配置 2.4 idea介绍 2.5 mysql数据库介绍 2.6 B/S架构 3.系统分析与设计 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3经济可行性 3.4.1 数据库…

Java—反射机制详解

介绍反射 反射的基本概念 反射(Reflection)是Java语言中的一种机制,它允许程序在运行时检查和操作类、接口、字段和方法等类的内部结构。通过反射,你可以在运行时获取类的信息,包括类的构造器、字段、方法等&#xf…

k8s StorageClass 存储类

文章目录 一、概述1、StorageClass 对象定义2、StorageClass YAML 示例 二、StorageClass 字段1、provisioner(存储制备器)1.1、内置制备器1.2、第三方制备器 2、reclaimPolicy(回收策略)3、allowVolumeExpansion(允许…

从碎片到整合:EasyCVR平台如何重塑城市感知系统的视频数据生态

随着城市化进程的加速,城市感知系统作为智慧城市的重要组成部分,正逐步成为提升城市管理效率、保障公共安全、优化资源配置的关键手段。EasyCVR视频汇聚融合平台,凭借其强大的数据整合、智能分析与远程监控能力,在城市感知系统中扮…

Sam Altman的博客:The Intelligence Age

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

thinkphp 做分布式服务+读写分离+分库分表+负载均衡(分区)(后续接着写)

thinkphp 做分布式服务读写分离分库分表负载均衡(分区) 引言 thinkphp* 大道至简负载均衡分布式服务一、读写分离1、读写分离的实现方式2、主从同步的三种模式2-1、异步模式(mysql async-mode)2-2、半同步模式(mysql s…

红帽rhce含金量?考到能拿多少钱工资?

随着目前国内的it职业飞速发展,rhce已经成为it职业的首选认证、高薪亮点。主要是linux人才出现大比例短缺的状况,很多企业对linux人才的需求也继续升温。 这个时候大家如果抓住了机会,那么实力就能得到质的提升,那么小编针对红帽…

OpenAI GPT-3 API: What is the difference between davinci and text-davinci-003?

题意:OpenAI GPT-3 API:davinci 和 text-davinci-003 有什么区别 问题背景: Im testing the different models for OpenAI, and I noticed that not all of them are developed or trained enough to give a reliable response. 我正在测试…

论文阅读【时间序列】ModerTCN (ICLR2024)

【时间序列】ModerTCN (ICLR2024) 原文链接:ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis 代码仓库:ModerTCN 简易版本实现代码可以参考:(2024 ICLR)ModernTCN:A Mod…

谁是AI界的老司机?谁最“纯洁”?谁能通过暧昧小短文的终极考验?

AI的能力已经让人们惊叹不已,不管是帮你写文章、答疑解惑,还是生成艺术作品,几乎无所不能。但如果让AI来解读一篇暗藏玄机、暧昧十足的小短文,结果会怎样?今天,我们就把几款顶流AI大模型拉出来,…

Cobalt Strike的下载与基本用法

CobaltStrike4.8 链接:百度网盘 请输入提取码 提取码:tgf3 what Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个&…

C++的扩充和封装

作业: 手动封装一个顺序表(SeqList),分文件编译实现 有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len 成员函数:初始化 init(int n) 判空:em…

Vue:默认插槽

目录 一.性质 1.内容分发 2.无名称标识 3.作用域 4.使用方式 二.使用 1.父组件 2.子组件 三.代码 1.父组件代码 2.子组件代码 四.效果 一.性质 1.内容分发 默认插槽允许组件的使用者定义一些内容,这些内容会被插入到组件模板中的特定位置。这有助于实…

C++:类中的特殊关键字,运算重载符

1.My_string类中重载以下的运算符&#xff1a; 、[] 、>、<、、>、<、&#xff01;、、输入输出(>>、<<) 主函数&#xff1a; #include <iostream> #include "my_string.h"using namespace std;int main() {My_string s1("cat…

QT客户端发送HTTP请求此时服务器到底收到了哪些数据?

一个Http请求包括 请求行 请求头 空行 请求体 下面是示例&#xff1a; 1,2,3,4分别代表上面的四个部分&#xff0c;我只是做了一些解析&#xff0c;具体可以结合代码 1. post / HTTP/1.1 2.GET请求头包括Host(主机名),user-agent&#xff08;客户端标识符&#xff09;&am…

AI Agent智能应用从0到1定制开发Langchain+LLM全流程解决方案与落地实战

大模型微调实战&#xff1a;精通、指令微调、开源大模型微调、对齐与垂直领域应用29套AI全栈大模型项目实战&#xff0c;人工智能视频课程-多模态大模型&#xff0c;微调技术训练营&#xff0c;大模型多场景实战&#xff0c;AI图像处理&#xff0c;AI量化投资&#xff0c;OPenC…

fiddler抓包11_列表显示服务器IP (配置文件)

请求列表默认不显示服务器IP字段&#xff0c;也无法从定制列窗口添加&#xff0c;可以修改CustomRules.js实现。 ① 菜单栏“Rules”&#xff08;规则&#xff09; - “Customize Rules...”&#xff08;自定义规则&#xff09;&#xff0c;打开CustomRules.js文件。 &#xf…

HarmonyOS NEXT:解密从概念到实践的技术创新与应用前景

HarmonyOS是目前华为手机所搭载的鸿蒙系统&#xff0c;它在Open Harmony的基础上兼容了安卓的AOSP&#xff0c;所以可以使用安卓APK应用&#xff0c;HarmonyOS属于华为在当前阶段过渡使用的系统&#xff0c;原生鸿蒙的应用生态尚未发展起来&#xff0c;兼容安卓应用可以让用户有…

【AI大模型】通义大模型API接口实现

目录 一、基础环境安装 &#xff08;一&#xff09;OpenAI Python SDK安装 &#xff08;二&#xff09;DashScope SDK安装 二、OPENAI接口实现 &#xff08;一&#xff09;文本输入 &#xff08;二&#xff09;流式输出 &#xff08;三&#xff09;图像输入 &#xff0…

Python 字符串的常见方法

Python 字符串的常见方法 字符串是 Python 中非常重要的数据类型之一。在日常编程中&#xff0c;我们经常需要对字符串进行各种操作&#xff0c;比如分割、连接、替换等。Python 提供了丰富的字符串方法&#xff0c;使得这些操作变得简单而高效。本文将详细介绍一些常见的字符…