【深度学习】重要概念

文章目录

  • 1. 前向传播、反向传播和计算图
  • 2. 数值稳定性和模型初始化
  • 3. 环境和分布偏移

1. 前向传播、反向传播和计算图

  • 前向传播:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。
  • 计算图:可视化计算中操作符和变量的依赖关系的图形。其中正方形表示变量,圆圈表示操作符。 左下角表示输入,右上角表示输出。 注意显示数据流的箭头方向主要是向右和向上的。
  • 反向传播:指的是计算神经网络参数梯度的方法。简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。 该算法存储了计算某些参数梯度时所需的任何中间变量(偏导数)。
  • 训练神经网络时,前向传播和反向传播相互依赖。 对于前向传播,我们沿着依赖的方向遍历计算图并计算其路径上的所有变量。 然后将这些变量用于反向传播,利用反向传播给出的梯度来更新模型参数。为了避免重复计算,我们需要保留中间值,直到反向传播完成。这也是训练比单纯的预测需要更多的内存(显存)的原因之一。 此外,这些中间值的大小与网络层的数量和批量的大小大致成正比。 因此,使用更大的批量来训练更深层次的网络更容易导致内存不足错误。

2. 数值稳定性和模型初始化

  • 梯度的计算受到数值下溢问题的影响而变得不稳定,不稳定梯度也威胁到我们优化算法的稳定性。
  • 梯度消失:参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。当sigmoid函数的输入很大或是很小时,它的梯度都会消失,因此选择更稳定的ReLU系列函数。
  • 梯度爆炸:参数更新过大,破坏了模型的稳定收敛。深度网络的初始化的尺度如果太大,我们没有机会让梯度下降优化器收敛。
  • 参数对称性:如果参数初始化为相同的值, 那么小批量随机梯度下降永远不会打破对称性,我们可能永远也无法实现网络的表达能力。 隐藏层的行为就好像只有一个单元。但暂退法正则化可以打破对称性。
  • 如果我们不指定初始化方法, 框架将使用默认的随机初始化方法,对于中等难度的问题,这种方法通常很有效。
  • Xavier初始化:在不存在非线性的假设下,我们只需权重的分布满足均值为0,
    σ = 2 n i n + n o u t \begin{aligned} \sigma = \sqrt{\frac{2}{n_\mathrm{in} + n_\mathrm{out}}} \end{aligned} σ=nin+nout2 其中, n i n n_\mathrm{in} nin n o u t n_\mathrm{out} nout分别是输入输出的数量,就能使得输出的方差不受输入数量的影响,任何梯度的方差不受输出数量的影响。尽管“不存在非线性”的假设在神经网络中很容易被违反, 但Xavier初始化方法在实践中被证明是有效的。通常,Xavier初始化从高斯分布 N ( 0 , σ 2 ) ( σ 2 = 2 n i n + n o u t ) N(0, \sigma^2)( \sigma^2=\frac{2}{n_\mathrm{in} + n_\mathrm{out}}) N(0,σ2)(σ2=nin+nout2)采样权重,也可从均匀分布 U ( − 6 n i n + n o u t , 6 n i n + n o u t ) U\left(-\sqrt{\frac{6}{n_\mathrm{in} + n_\mathrm{out}}}, \sqrt{\frac{6}{n_\mathrm{in} + n_\mathrm{out}}}\right) U(nin+nout6 ,nin+nout6 )采样权重。

3. 环境和分布偏移

  • 数据分布突然改变时,模型在部署中会出现灾难性的失败。 更隐蔽的是,有时模型的部署本身就是扰乱数据分布的催化剂。通过将基于模型的决策引入环境,我们可能会破坏模型
  • 分布偏移的类型
    • 协变量偏移:假设虽然输入的分布可能随时间而改变, 但标签函数(即条件分布 P ( x ∣ y ) P(\mathbf{x}|y) P(xy))没有改变。
    • 标签偏移:假设标签边缘概率 P ( y ) P(y) P(y)可以改变, 但是类别条件分布 P ( x ∣ y ) P(\mathbf{x}|y) P(xy)在不同的领域之间保持不变。
    • 概念偏移:当标签的定义发生变化时,就会出现这种问题。
  • 分布偏移纠正
    • 真实风险是从真实分布中抽取的所有数据的总体损失的预期。然而,这个数据总体通常是无法获得的。经验风险是训练数据的平均损失,用于近似真实风险。在实践中,我们进行经验风险最小化。
    • 协变量偏移纠正:根据数据来自正确分布与来自错误分布的概率之比, 来重新衡量每个数据样本的权重,并实现加权经验风险最小化。需要目标分布中的每个数据样本在训练时出现的概率非零,否则相应的重要性权重会是无穷大。
    • 标签偏移纠正:将重要性权重将对应于标签似然比率,并实现加权经验风险最小化。
    • 概念偏移纠正:很难用原则性的方式解决, 除了从零开始收集新标签和训练,别无妙方。 幸运的是,在实践中这种极端的偏移是罕见的,通常情况下,概念的变化总是缓慢的,由此使用新数据更新现有的网络权重,而不是从头开始训练。
  • 学习问题的分类法
    • 批量学习:学习某一分布的批量数据,部署处理该分布下的新数据。
    • 在线学习:我们首先观测到 x i \mathbf{x}_i xi, 然后我们得出一个估计值 f ( x i ) f(\mathbf{x}_i) f(xi), 只有当我们做到这一点后,我们才观测到 y i y_i yi。 然后根据我们的决定,我们会得到奖励或损失。
    • 老虎机问题:我们可以采取的行动是有限的,即函数 f f f是离散的。
    • 控制:环境会记住我们所做的事,而且它的反应将取决于之前发生的事情。 近年来,控制理论也被用于自动调整超参数。
    • 强化学习:强调如何基于环境而行动,以取得最大化的预期利益。
    • 考虑到环境:在静止环境中可能一直有效的相同策略, 在环境能够改变的情况下可能不会始终有效。环境变化的速度和方式在很大程度上决定了我们可以采用的算法类型。
  • 机器学习中的公平、责任和透明度:从考虑预测到决策的飞跃不仅提出了新的技术问题, 而且还提出了一系列必须仔细考虑的伦理问题。现实中,我们发现精度很少成为合适的衡量标准。

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

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

相关文章

C# 内存的分配管理

using System.ComponentModel; using System.Runtime.InteropServices; //内存的分配 int n 100000;//长度 IntPtr buffer Marshal.AllocHGlobal(sizeof(int) * n); try { var t buffer (n * 10) * sizeof(int); var p Marshal.PtrToStructure<int>(t); /…

Vim入门

Vim使用入门 1.Vim编辑器的三种常用模式 一般模式&#xff1a;刚打开文件是它&#xff0c;从编辑模式按“ESC”退回的模式也是它。可以执行各种编辑操作&#xff0c;如移动光标、复制、粘贴、删除、查找替换等 ; 编辑模式&#xff1a;在一般模式下按下 i、I、a、A、o、O 等键…

CesiumLab地理信息基础数据处理平台 各类数据类型介绍、发布数据介绍

目录 0 引言1 CesiumLab2 数据处理模块2.1 输出格式&#xff1a;切片文件格式2.2 输入格式2.2.1 传统GIS数据2.2.2 人工模型2.2.3 BIM模型2.2.4 倾斜实景数据2.2.5 点云数据 3 发布服务功能3.1 拓展&#xff1a;其他平台发布服务功能 &#x1f64b;‍♂️ 作者&#xff1a;海码…

再怎么“顽固”的应用程序,也很难经得住以下的卸载方法

卸载程序是我们经常尝试的事情。这可能是因为我们不再需要程序,该程序可能会导致问题等。有时,如果你试图卸载某个程序,你会收到一个错误,但卸载没有发生。在这种情况下,你可以选择强制卸载。在本教程中,我将向你展示如何在Windows 10/11计算机上强制卸载程序。 ​控制面…

Mybatis的插件运⾏原理,如何编写⼀个插件?

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

2024年最免费的DAW混音编曲FL Studio21.2.中文版下载

FL Studio 简称FL&#xff0c;全称Fruity Loops Studio&#xff0c;因此国人习惯叫它"水果"。目前最新版本是FL Studio21.1.1.3750版本&#xff0c;它让你的计算机就像是全功能的录音室&#xff0c;大混音盘&#xff0c;非常先进的制作工具&#xff0c;让你的音乐突破…

AUTOSAR组织引入了Rust语言的原因是什么?有哪些好处?与C++相比它有什么优点?并推荐一些入门学习Rust语言链接等

AUTOSAR(汽车开放系统架构)是一个由汽车制造商、供应商和其他来自电子、半导体和软件行业的公司组成的全球发展伙伴关系,自2003年以来一直致力于为汽车行业开发和引入开放、标准化的软件平台。 AUTOSAR 最近宣布成立一个新的工作组,用于探索在汽车软件中使用 Rust 编程语言…

C语言实现在顺序表中找到最大值

用C语言实现在顺序表中找到最大值&#xff1a; #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…

Java八股文面试全套真题【含答案】- Redis篇

请看下面列举的50个关于Redis的经典面试问题和简短答案&#xff1a; Redis是什么&#xff1f;简要介绍一下Redis的特点。 Redis是一个开源的高性能键值存储数据库&#xff0c;支持多种数据结构&#xff0c;如字符串、列表、集合、哈希和有序集合等。 特点包括快速、可持久化、支…

升级Xcode15,iOS17后问题解决

1、Could not build module ‘WebKit’ 报错 解决方案&#xff1a; 编辑文件 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.0.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebsiteDataStore.h 将里面…

UML-认识6种箭头(画类图无烦恼)

文章目录 一、背景二、箭头详解2.1 泛化&#xff08;Generalization&#xff09;2.2 实现&#xff08;Realize&#xff09;2.3 依赖&#xff08;Dependency&#xff09;2.4 关联&#xff08;Association&#xff09;2.5 聚合&#xff08;Aggregation&#xff09;2.6 组合&#…

NtripShare Mos监测平台边缘计算终端与自动优化平差算法

忙忙乎乎23年又要过去了&#xff0c;回头看今年做的事&#xff0c;只有两件事值得一提&#xff1a; 1、自动化监测边缘计算终端&#xff1b; 2、自动优化平差算法。 自动化监测边缘计算终端 终端采用全国产硬件方案终端支持全站仪供电控制终端支持远程控制终端支持数据缓存技…

Netty网络基础的通俗理解(网络操作系统)

写在前面 说来惭愧&#xff0c;最近半年没怎么学习技术&#xff0c;时间基本都花在工作以及去熟悉了解金融领域的知识去了。从大一到现在&#xff0c;我一直有个持续学习技术的习惯&#xff0c;如果太久没学习技术&#xff0c;我心里就开始有点焦虑或者说不充实&#xff0c;所…

半导体设备之外延炉简述

半导体设备对整个半导体行业起着重要的支撑作用。因半导体制造工艺复杂&#xff0c;各个环节需要的设备也不同&#xff0c;从流程工序分类来看&#xff0c;半导体设备主要可分为晶圆制造设备&#xff08;前道工序&#xff09;、封装测试设备&#xff08;后道工序&#xff09;等…

使用C/C++实现DNS协议栈

使用C/C实现DNS协议栈 DNS&#xff0c;全称域名系统(Domain Name System)&#xff0c;是用于将域名转换为IP地址的分布式数据库系统。实现一个完整的DNS协议栈是一个相对复杂的任务&#xff0c;但本文将为您提供一个简化的概述和实际的案例&#xff0c;以帮助您入门。 1. 基…

20来岁,大专毕业,学软件测试可行吗?

转行软件测试找不到工作&#xff01; 转行软件测试找不到工作&#xff01; 转行软件测试找不到工作&#xff01; 重要的事情说三遍&#xff01;千万别听培训班咨询老师给你画饼 &#xff1b;我就是某某软件测试培训班出来的&#xff0c;大专&#xff0c;其他专业毕业&#x…

磁盘坏道扫描工具 Macrorit Disk Scanner v6.7.0 中文免费版 -供大家学习研究参考

非常方便实用的磁盘坏道修复软件。Wipe Bad Disk功能强大好用&#xff0c;通过特殊的算法来强制将硬盘的坏道删除清空格式化&#xff0c;从而拯救因产生坏道而不敢继续使用的硬盘!要注意的是经过这块软件清空的硬盘数据基本上是不能被恢复的&#xff0c;所以操作前请一定要备份…

修改jvm对象的属性值(私有)

修改jvm对象的属性值(私有) 这个想法的来源 一个spark job 在启动之后&#xff0c;就会确定 executor 的数量。但是存在一种情况&#xff0c;当我的队列资源宽松 可能就要调整一些job的资源&#xff0c;但是spark job在启动的时候&#xff0c;最大的资源就确定了&#xff0c;…

PyQt5连接mysql失败解决

一&#xff1a;背景 最近研究一个项目&#xff0c;里面用的Pyqt5编写的桌面应用&#xff0c;跑了下源码发现连接数据库那块出来问题&#xff0c;最终调试发现里面用的QtSql去连接mysql提示驱动找不到。 具体报错信息如下&#xff1a; Could not parse stylesheet of object …

记录 | gpu docker启动报错libnvidia-ml.so.1: file exists: unknown

困扰了两天的问题&#xff0c;记录一下 问题出在启动一个本身已经安装 cuda 的镜像上&#xff0c;具体来说&#xff0c;我是启动地平线天工开物工具链镜像的时候出现的问题&#xff0c;具体报错如下&#xff1a; docker: Error response from daemon: failed to create task …