4-4 数值稳定性 + 模型初始化和激活函数

news2024/11/14 15:29:27

数值稳定性

请添加图片描述
这里的 t t t表示层,假设 h t − 1 h^{t-1} ht1是第 t − 1 t-1 t1层隐藏层的输出,经过一个 f t f_{t} ft得到第 t t t层隐藏层的输出 h t h^{t} ht

y y y表示 x x x进来,第一层一直到第 d d d层,最后到一个损失函数,就是我们预测的,要优化的目标函数。( y y y这里不是预测, y y y还包括了损失函数。)
请添加图片描述
如果我们计算损失 l l l关于我们某一个层权重 W t W^{t} Wt的梯度的话,损失 l l l自顶向下求导,一直求到第 t t t层的输出 h t h^{t} ht,再乘以第 t t t层的输出 h t h^{t} ht关于第 t t t层的权重 W t W^{t} Wt的导数。

注意到说,这里的所有的 h h h都是一些向量,向量关于向量的导数是一个矩阵,所以黄色括号这里是一个 d − t d-t dt次的矩阵乘法。

我们的主要问题就在这里,因为我们做了太多的矩阵乘法!!!
请添加图片描述
梯度爆炸:假设我的梯度都是一些比 1 1 1大一点的数字,然后我就是对 1.5 1.5 1.5 100 100 100次,假设我有 100 100 100层的话,作 100 100 100次就会得到一个 4 × 1 0 17 4 \times 10^{17} 4×1017的数,当然这个数浮点数是能表示的,但是这个数很容易带来浮点数上限的问题。
梯度消失:假设我的梯度是一个小于 1 1 1的数,就算不是太小,但是作 100 100 100层的话,那么 0.8 0.8 0.8 100 100 100次方,也是 2 × 1 0 − 10 2 \times 10^{-10} 2×1010次方,也是个非常非常小的数。慢慢地,梯度就很快不见了。

请添加图片描述
t t t层的输入 h t − 1 h^{t-1} ht1,也就是第 t − 1 t-1 t1层的输出,第 t t t层的权重 W t W_{t} Wt乘以我的第 t t t层的输入 h t − 1 h^{t-1} ht1,然后我们假设省略掉偏移,我们直接在输出上作激活函数。

请添加图片描述
Relu的导数,如果 x > 0 x > 0 x>0,导数为 1 1 1,否则为 0 0 0

请添加图片描述
我们是用GPU的时候,通常会使用 16 16 16位浮点数。 16 16 16浮点数的缺点是,它的数值范围很小。如果你的值超出了我这个区间,那我就变成无穷大了。

学习率不好调,大一点点就炸掉了,小一点点就不动,学习率只能在一个很小的范围内比较合适,对模型训练的调参很麻烦。

请添加图片描述
蓝色是值的函数,黄色是梯度的函数,当值很大的时候,梯度很小,对于激活函数,当输入稍微大一点点的时候,它的导数就会变成 0 0 0
请添加图片描述
请添加图片描述
请添加图片描述


让训练更加稳定

我们的核心问题是说,如何让我们的训练更加稳定,也就是让梯度不要太大也不要太小。请添加图片描述
归一化

  • 把梯度变成均值为 0 0 0,方差为 1 1 1的数,不管有多大,都拉回来
  • 梯度剪裁:比如,如果梯度 > 5 >5 5,就把它变成 5 5 5 < − 5 <-5 5,就把它变成 − 5 -5 5,就是强行把梯度剪裁到一个范围里面

请添加图片描述
t t t是我第 t t t层的输出, i i i是我的第 i i i个元素,所以 h i t h_{i}^{t} hit是个标量,我把它当作随机变量。

正向:我的输出的期望为 0 0 0,方差假设为 a a a
反向:损失函数关于第 t t t层输出的第 i i i个元素,我一样希望它的期望为 0 0 0,方差为常数 b b b

不管哪个层,不管哪一层的哪个输出,不管我作多深,都可以保证数值在一个合理的范围内。这是我们希望的假设,我们要设计神经网络,使得它满足这个性质。

权重初始化

请添加图片描述
越陡的地方梯度越大,因为梯度指向最陡的方向。

使用 N ( 0 , 0.01 ) N(0,0.01) N(0,0.01)有可能太小,有可能太大,不能保证深度神经网络。

请添加图片描述
假设权重是独立同分布,那可以说均值等于0,方差等于 γ t \gamma_{t} γt t t t就是层数。

我的这一层的输入 h i t − 1 h_{i}^{t-1} hit1也是独立于我当前层的权重,这两个事件是独立的事件。

假设没有激活函数,这样可以求出均值为 0 0 0。(因为独立同分布)

请添加图片描述

请添加图片描述
请添加图片描述
我们需要满足两个条件
第一个条件是要满足每次我的前项的输出方差是一致的,
第二个条件是要使得梯度是一样的。
这两个条件很难同时满足。

除非输入刚好等于输出,那不然的话,无法同时满足这两个条件

Xavier初始化,取个折中,作个权衡。
给定我的神经网络的当前层的输入和输出的大小,那我就能确定我的权重需要满足的方差的大小

Xavier初始化,是我们常用的模型初始化的方法,意思是我的初始化权重的方差是根据我的输入和输出维度来定的
当你的输入和输出长得不那么一样的时候,或者每个网络变化比较大的时候,可以根据输入和输出来适配我的权重形状,使得我希望我的梯度和输出的方差都在一个恒定的范围里。

激活函数

请添加图片描述
请添加图片描述
正向反向都意味着,你这个激活函数,必须是 f ( x ) = x f(x)=x f(x)=x

请添加图片描述
对于tanh和relu来讲,在零点附近,确实是近似到 f ( x ) = x f(x)=x f(x)=x
sigmod不过原点,但是可以把sigmod调整一下。

请添加图片描述

  • 合理的权重初始值:Xavier初始化
  • 激活函数,尽量用relu和tanh,实在不行用sigmod的变体

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

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

相关文章

2024最新网络安全自学路线,内容涵盖3-5年技能提升

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

NC 二叉树的最大深度

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 求给定二叉树…

图像数据增强方法概述

图像数据增强方法概述 1. 什么是图像数据增强技术?2. 图像数据增强技术分类2.1 几何变换Python 示例代码 2.2 颜色变换2.3 噪声添加 3. 参考文献 1. 什么是图像数据增强技术? 基础概念:图像增强技术是计算机视觉和图像处理领域中的一个关键技术,主要用…

数据库安全综合治理方案(可编辑54页PPT)

引言:数据库安全综合治理方案是一个系统性的工作,需要从多个方面入手,综合运用各种技术和管理手段,确保数据库系统的安全稳定运行。 方案介绍: 数据库安全综合治理方案是一个综合性的策略,旨在确保数据库系…

C++文件系统操作6 - 跨平台实现查找指定文件夹下的特定文件

1. 关键词 C 文件系统操作 查找指定文件夹下的特定文件 跨平台 2. fileutil.h #pragma once#include <string> #include <cstdio> #include <cstdint> #include "filetype.h" #include "filepath.h"namespace cutl {/*** brief The fi…

前端练习<HtmlCSS>——照片墙(附完整代码及实现效果)

这个小练习也来源于b站up小K师兄&#xff0c;大家可以通过下面的链接学习哦~up讲的非常详细。 纯CSS写一个简单酷炫的照片墙效果&#xff5e; 先看一下这个照片墙的效果&#xff1a; 1.鼠标没有放到图片上时&#xff0c;照片同比例&#xff0c;每张照片都有倒影的效果。 2.然…

linux怎么创建python

第一步&#xff0c;创建一个test文件夹。 第二步&#xff0c;打开终端进入该文件。 第三步&#xff0c;vim test.py。 第四步&#xff0c;编写代码。 第五步&#xff0c;编辑好之后&#xff0c;按Esc键切换到命令模式&#xff0c;然后输入:wq&#xff0c;再按回车键即可自动保存…

聊一聊知识图谱结合RAG

因为最近在做一些关于提高公司内部使用的聊天机器人的回答准确率&#xff0c;并且最近微软官方也是开源了一下graphrag的源码&#xff0c;所以想聊一聊这个知识图谱结合rag。 rag在利用私有数据增强大模型回答的领域是一种比较典型的技术&#xff0c;也就是我们提出问题的时候&…

MATLAB基础:数组及其数学运算

今天我们继续学习MATLAB中的数组 我们在学习MATLAB时了解到&#xff0c;MATLAB作者秉持着“万物皆可矩阵”的思想企图将数学甚至世间万物使用矩阵表示出来&#xff0c;而矩阵的处理&#xff0c;自然成了这门语言的重中之重。 数组基础 在MATLAB中&#xff0c;数组是一个基本…

LCD 横屏切换为竖屏-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

LCD 横屏切换为竖屏 横屏显示如何切换为竖屏显示 LCD 屏默认横屏显示 开发板配套的 LCD 屏默认都是横屏显示&#xff0c;如 4.3 寸、7 寸和 10.1 寸的不同分辨率的 RGB LCD 屏 固定坐标体系 &#xff08;以 800*480 分辨率为例&#xff09;横屏模式下的固定坐标&#xff1a;…

【JavaScript】深入理解 `let`、`var` 和 `const`

文章目录 一、var 的声明与特点二、let 的声明与特点三、const 的声明与特点四、let、var 和 const 的对比五、实战示例六、最佳实践 在 JavaScript 中&#xff0c;变量声明是编程的基础&#xff0c;而 let、var 和 const 是三种常用的变量声明方式。本文将详细介绍这三种变量声…

Blackbox AI-跨时代AI产物,你的私人编程助手

1. 引言 随着人工智能技术的飞速发展&#xff0c;我们的生活方式正在经历前所未有的变革。从智能家居到自动驾驶&#xff0c;AI已经渗透到我们生活的方方面面。而在这场科技革命中&#xff0c;Blackbox 网站凭借其先进的技术和全面的功能&#xff0c;成为了众多AI产品中的佼佼者…

基于单片机控制的锂电池组电路的设计

摘 要: 提 出 一 种 基 于 单 片 机 控 制 的 锂 电 池 组 电 路 设计 方 案 . 采 用 8 位 CMOS 闪 存 单 片 机 PIC16F886 作 为主控芯 片 , 电 路 设计 中 含 有 S-8254 芯 片 的 一 次 保 护 电 路 、 S-8244 芯 片 的 二 次 保 护 电 路 和 MCU 的 辅 助 保 护 功…

photoshop学习笔记——选区3 快速选择工具

快速选择工具 W shift W 在3种快速选择工具之间切换 对象选择工具 photoshop CC中没有这个工具&#xff0c;利用AI&#xff0c;将款选中的对象快速的提取选区&#xff0c;测试了一下&#xff0c;选区制作的非常nice快速选择工具 跟磁性套索类似&#xff0c;自动识别颜色相似…

qt初入门9:qt记录日志的方式,日志库了解练习(qInstallMessageHandler,qslog, log4qt)

项目中用到qt&#xff0c;考虑有需要用到去记录日志&#xff0c;结合网络&#xff0c;整理一下&#xff0c;做记录。 简单了解后&#xff0c;qt实现日志模块思考&#xff1a; 1&#xff1a;借助qt自带的qInstallMessageHandler重定向到需要的目的地。 2&#xff1a;自己封装一…

JAVA SE 类和对象

类和对象 类定义和使用类的定义格式 类的实例化什么是实例化 this 引用this引用的特性 对象的构造及初始化如何初始化对象构造方法概念特性 在这里插入图片描述 **注意**&#xff1a; 封装封装的概念封装扩展之包导入包中的类自定义包包的访问权限控制举例 static成员static修饰…

MOZHE SQL手工注入漏洞测试(MySQL数据库)

主界面URL没有参数&#xff0c;无法判断是否有注入点 点击公告 【浏览器不便于查看返回包可以用burp】 测试URL 参数后加上单引号&#xff0c;报错&#xff0c;说明存在注入点 http://124.70.64.48:40021/new_list.php?id1 获取表列数 order by 4 返回200 order by 5 …

鸿蒙应用框架开发【N-Body模拟程序】

N-Body模拟程序 介绍 在本示例中&#xff0c;使用ArkTS编程语言开发了业界编程语言基准测试项目[Benchmarks Game]中的[N体问题模拟程序]&#xff0c;实现类木星体轨道计算。 本示例用到了ohos.taskpool和ohos.worker 接口。示例中的程序可以用于AOT(Ahead Of Time)等性能测…

计科录取75人!常州大学计算机考研考情分析!

常州大学&#xff08;Changzhou University&#xff09;&#xff0c;简称“常大”&#xff0c;位于江苏省常州市&#xff0c;是江苏省人民政府与中国石油天然气集团有限公司、中国石油化工集团有限公司及中国海洋石油集团有限公司共建的省属全日制本科院校&#xff0c;为全国深…

⼤模型在⽹络安全⽅⾯的应⽤汇总

引⾔ ⼤语⾔模型&#xff08;Large Language Models, LLMs&#xff09;的横空出世&#xff0c;为传统计算机科学的各个细分领域带来了颠覆性的变⾰。这种变⾰的浪潮同样席卷了⽹络安全领域&#xff0c;引发了⼀系列深刻的变化和影响。GPT-4、Gemini、Llama 2 等⼤模型以其卓越的…