毫米波雷达深度学习技术-1.7训练一个神经网络

1.7 训练一个神经网络

       对于训练神经网络,有两个步骤,即前向传递和误差反向传播。

1.7.1 前向传播和反向传播

       在前向传递中,输入被馈送到模型并与权重向量相乘,并为每一层添加偏差以计算模型的输出。密集层或全连接层第l层的输入、 激活函数和输出表示如下:

(1.57)

       其中N表示第l层的神经元数量,是第l层任务需要学习的权重,σ()是激活函数

       反向传播如下所述。考虑一个样本,其输入和预期输出和实际输出,因此一个样本的误差为 ,其中是权重的函数。使用梯度下降算法更新权重以最小化误差,可以表示如下:

(1.58)

       在式(1.58),可计算如下:

(1.59)

       其中,

       由于的函数,因此可以推导出

(1.60)

(1.61)

       这是在前馈步骤中计算的。

       因此,把它们放在一起给了我们:

(1.62)

       神经网络训练过程中的一些重要方面如下:

       1.学习率:每次权重更新都由参数 λ 控制,称为学习率参数。如果学习率太小,那么可能会导致学习速度非常慢,很容易被困在局部最小值中,并且可以持续运行多次迭代。另一方面,如果学习率很大,那么它可能会越过最小值,可能无法收敛,并可能发散。因此,根据架构、数据集、传递函数等选择良好的学习率非常重要。图1.18说明了选择小学习率和大学习率对梯度下降的影响。

图1.18 (a)学习率小和(b)学习率大时梯度下降的图示。

       2. 权重初始化:在初始化过程中随机化权重很重要;否则,权重的对称性会阻止网络学习。通常,使用小的随机值,这在层中的神经元数量增长时非常重要,因为加权和可能会使优化函数饱和。

       3. 过拟合和欠拟合:在机器学习中,目标不仅是最小化样本内数据(即可用或可见的数据)的成本函数,而且还要对样本外数据(即训练期间不可用或不可见的数据)进行泛化。在训练过程中,可用的数据集分为训练集、验证集和测试集。训练数据集用于训练模型,验证数据集用于设置模型的超参数,测试数据集用于估计样本外或泛化精度。

       当训练数据的性能较差时,可以将其视为欠拟合,通常是由于学习率选择不当或神经网络维度不足。此错误称为“偏差”。图1.19的左列说明了欠拟合问题。当训练数据的性能良好(即近似精度好),但测试或验证数据性能差(即泛化精度差)时,就会出现过拟合问题。这种现象也称为“方差”,如图1.19的右栏所示。如果训练集大小不足或模型复杂度对于数据来说太高,则模型可以很好地记住或近似训练数据,但不能很好地泛化测试数据,即过度拟合。训练机器学习模型的目的是找到一个如图 1.19 中间列所示的模型,其中训练误差(偏差)和泛化误差(方差)最小化。通常,训练会找到一个模型,以便在偏差和方差之间实现平衡,通常被称为“偏差-方差”权衡。在深度学习的情况下,“偏差-方差”权衡不适用,因为有单独的机制来减少偏差和方差,因此权衡不容易适用。

图1.19 模型欠拟合和过拟合的图示。

       4. 维度的诅咒:机器学习的另一个关键方面是维度的诅咒。维度的诅咒与过拟合密切相关。在高维空间中,大多数训练数据都位于定义特征空间的超立方体的角落。特征空间角落中的实例比超活跃球体质心周围的实例更难分类。因此,随着特征或维度数量的增加,我们需要准确泛化的数据量也呈指数级增长。

1.7.2 优化器

       优化器是帮助改变模型的权重和偏差的方法,以便将损失函数最小化。对标准随机梯度下降 (SGD) 算法提出了一些修改,即,其中) 分别表示损失函数及其导数。表示更新步骤后和之前的权重,λ表示学习率。以下是改进标准 SGD 的优化器列表:

       1. 动量:它加速SGD朝向相关方向,同时减少振荡。它基本上是将先前权重更新的一部分添加到当前更新向量中,从而确保在一定程度上保留先前更新的方向,同时使用当前更新梯度来微调最终更新方向。动量引入了另一个变量,可以表示如下

(1.63)

       2. Nesterov 加速梯度 [45]:虽然动量有助于降低噪声并加速收敛,但它也会引入误差。在Nesterov加速梯度中,通过将先前的权重更新的一部分包含在当前更新向量中以执行权重更新来解决此问题,其表示如下:

(1.64)

       γ的典型值 = 0.9。

       3. Adagrad [46]:Adagrad 的动机是每个参数都有一个自适应学习率;然而,早期的方法具有固定的学习率。Adagrad 确保依赖于迭代的隐藏层的不同神经元具有不同的学习率。其背后的直觉是,对于不频繁的参数,应该进行较大的更新,而对于频繁的参数,应该进行较小的更新。对于每次权重更新,学习率调整如下:

(1.65)

       由于梯度的平方和不断增长,因此自适应地会导致较小的学习率。参数ε有助于避免除以零的问题。

       4. RMSprop [47]:Adagrad 的一个问题是,在DNN中经过几次迭代后,学习速率变得非常小,从而导致死神经元问题,并导致这些神经元没有更新。RMSprop 修复了此问题,即使在多次参数更新后,学习也可以继续。在RMSprop 中,学习率是梯度的指数平均值,而不是像 Adagrad 中那样的梯度平方和的累积和。通过将梯度累积限制在某个过去来计算每个权重的平方梯度的移动平均值,可以表示如下:

 (1.66)

       5. Adadelta [48]:Adadelta 是对 Adagrad 的另一项改进,可在多次参数更新后继续学习。但 Adadelta 的计算成本很高。在这里,梯度累积仅限于某个过去的更新,方法是计算每个权重参数的平方梯度和参数更新的移动平均值,如下所示:

(1.67)

       6. 自适应矩估计(ADAM)[49]:Adam 优化器是当今最流行和使用最广泛的优化器之一。它既存储类似于动量的过去梯度的衰减平均值,也存储过去平方梯度的衰减平均值,类似于 RMSprop和Adadelta。ADAM可以表示为以下等式,其中动量通过使用第一和第二矩添加到RMSprop中,即梯度的平均值和方差

(1.68)

       其中β1和β2是梯度均值和方差的移动平均实现中的遗忘因子。Adam易于实现且计算效率高,并且由于移动平均实现,需要的内存更少

1.7.3 损失函数

       神经网络被表述为一个优化问题。候选解,即网络的权重,应最小化或最大化给定目标函数的分数。

       在回归问题的情况下,目标是预测一个实值量。在这种情况下,在输出层使用线性激活单元,并使用 MSE 作为损失函数。回归的均方损失如下:

(1.69)

       其中y和ŷ分别是神经网络的真实值和预测值。

       对于分类问题建模,其思路是将输入变量映射到类标签,这意味着目标是预测示例属于特定类的概率。在最大似然估计下,网络的训练试图找到一组模型权重,以最小化模型给定数据集的预测概率分布与训练数据集中概率分布之间的差异。这称为CE损失,在二元分类的情况下,在输出端配置为sigmoid激活,而对于多类分类,在输出端使用 softmax 激活。在这两种情况下,问题都表述为预测属于特定类的给定输入的最大可能性

       二元分类的二元CE损失如下:

(1.70)

       其中p是类1的概率,1−p 是类0的概率,ŷ是神经网络的预测概率。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中画幅巡检相机-SHARE 100M A10

【毫厘之间,洞见非凡】 ——SHARE 100M A10中画幅测量相机,巡检行业的新选择 在巡检行业,精准度是关键,深圳赛尔智控科技有限公司最新推出的SHARE 100M A10中画幅测量相机,基于先进的IMX461影像传感器,拥有…

prometheus 安装node_exporter, node_exporter 安装最新版 普罗米修思安装监控服务器client

1. 本文介绍两种安装方式,一种安装为service,使用systemctl start node_exporter管理,第二种为安装docker内 容器内使用。 1.1 安装到系统内: 1.1.1 github地址: Releases prometheus/node_exporter GitHub ​ 1.1.2 下载命…

解析Linux top 命令输出并生成动态图表

文章目录 0. 引言1. 原理2. 功能3. 程序架构流程图结构图 4. 数据解析模块5. 图表绘制模块6. 主程序入口7. 使用方法8. 总结9. 附录完整代码 0. 引言 在性能调优和系统监控中,top 命令是一种重要工具,提供了实时的系统状态信息,如 CPU 使用率…

PHP电商系统开发指南高级技巧

开发高级 php 电商系统所需的技巧包括:数据库优化:使用索引、规范化数据结构和缓存机制。性能优化:启用页面缓存、优化图像和使用 cdn。购物车管理:使用会话或数据库存储数据,实现实时更新和弃单恢复。支付集成&#x…

windows10如何打开开发者模式

按键盘上的win键或者点击屏幕左下角的开始图标,即可出现如下的界面 在打开的界面中找到设置按钮,点击设置按钮 进入windows设置界面后,找到‘更新和安全’的选项,随后点击进入 进去后在左侧的功能列表中找到‘开发者选…

Transformer模型原理细节解析

基本原理: Transformer 的核心概念是 自注意力机制(Self-Attention Mechanism),它允许模型在处理每个输入时“关注”输入序列的不同部分。这种机制让模型能够理解每个单词或符号与其他单词或符号之间的关系,而不是逐个地线性处理输入。 Transformer 主要由两个部分组成:…

推荐算法学习笔记2.1:基于深度学习的推荐算法-基于共线矩阵的深度推荐算法-AutoRec模型

AutoRec模型 前置知识:推荐算法学习笔记1.1:传统推荐算法-协同过滤算法 AutoRec模型通过引入自编码器结构,将共线矩阵中的用户向量(基于用户的U-AutoRec)或物品向量(基于物品的I-AutoRec)嵌入到低维空间后还…

Ubuntu24.04LTS基础软件下载

librewolf: deb文件link 作用:访问github,无痕浏览,这个速度,不指望了 vscodium: 从deb安装,ubuntu sudo dpkg -i xxx.debpaste-image 插件替代 markdown wps: libreoffice: 替换USTC源 sudo nano /etc/apt/sourc…

Objective-C语法基础

新建一个XCode项目 新建一个类 1、成员变量、属性 1.1、类内使用成员变量&#xff0c;类外使用属性 Role.h #import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGINinterface Role : NSObject {//成员变量&#xff1a;只能类内使用NSString *_name;int _age; }//属…

GOM引擎源码 完整可编译 带微端 附带基础附件

GOM引擎源码 完整可编译 带微端 附带基础附件 时间紧迫&#xff0c;无暇顾及&#xff0c;无意中得到即公布GameOfMir源码未测试&#xff0c;专业人事自行编译测试&#xff01;非诚勿扰&#xff01;源码下载&#xff1a;极速云

招生报名系统教培招生小程序

招生报名系统&#xff1a;轻松实现教培招生新高度 &#x1f680; 招生报名系统&#xff0c;开启智慧教育新时代 在当今数字化快速发展的时代&#xff0c;教育行业也迎来了变革的浪潮。招生报名系统作为这一变革的先锋&#xff0c;为教育机构提供了全新的招生渠道和管理方式。通…

Spring Boot集成DeepLearning4j实现图片数字识别

1.什么是DeepLearning4j&#xff1f; DeepLearning4J&#xff08;DL4J&#xff09;是一套基于Java语言的神经网络工具包&#xff0c;可以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成&#xff0c;支持分布式CPU和GPU&#xff0c;为商业环境&#xff08;而非研究工具目的…

【前端CSS3】一篇搞懂各类常用选择器(黑马程序员)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;2.1 基础选择器2.1.1 标签选择器2.1.2 类选择器2.1.3 id选择器2.1.4 通配符选择题2.1.5 类选择器与id选择器区别☀️☀️☀️2.1.6 基础选择器总结&#x1f680; 2.2 复合类选择器2.2.1 后代选择…

Python | Leetcode Python题解之第191题位1的个数

题目&#xff1a; 题解&#xff1a; class Solution:def hammingWeight(self, n: int) -> int:ret 0while n:n & n - 1ret 1return ret

Unity 功能 之 创建 【Unity Package】 Manager 自己自定义管理的包的简单整理

Unity 功能 之 创建 【Unity Package】 Manager 自己自定义管理的包的简单整理 一、简单介绍 Unity Package 是一种模块化的资源管理和分发方式&#xff0c;用于将游戏开发所需的代码、资源、配置文件等内容打包成一个独立的、可重用的组件。Unity Package 可以在多个项目之间…

【RabbitMQ问题踩坑】RabbitMQ设置手动ack后,消息队列有多条消息,只能消费一条,就不继续消费了,这是为什么 ?

现象&#xff1a;我发送5条消息到MQ队列中&#xff0c;同时&#xff0c;我在yml中设置的是需要在代码中手动确认&#xff0c;但是我把代码中的手动ack给关闭了&#xff0c;会出现什么情况&#xff1f; yml中配置&#xff0c;配置需要在代码中手动去确认消费者消费消息成功&…

Tomcat部署与优化

Tomcat部署与优化 Tomcat简述 server&#xff1a; 服务器&#xff0c;Tomcat运行的进程实例&#xff0c;一个Server中可以有多个service&#xff0c;但通常就一个 service&#xff1a;服务&#xff0c;用来组织Engine&#xff08;引擎&#xff09;和Connector&#xff08;连接…

黑鹰优化算法(BEO)-2024年SCI新算法-公式原理详解与性能测评 Matlab代码免费获取

目录 原理简介 一、种群初始化 二、围捕行为 三、悬停行为 四、捕捉行为 五、抢夺行为 六、警告行为 七、迁徙行为 八、求偶行为 九、孵化行为 性能测评 参考文献 完整代码 黑鹰优化算法(Black eagle optimizer, BEO)是一种新型的元启发式算法&#xff08;智能优化…

微信小程序的运行机制与更新机制

1. 小程序运行机制 1.1. 冷启动与热启动 冷启动为用户第一次打开小程序时&#xff0c;因为之前没有打开过&#xff0c;这是第一种冷启动的情兑。第二种情况为虽然之前用户打开过&#xff0c;但是小程序被用户主动的销毁过&#xff0c;这种情况下我们再次打开小程序&#xff0…

PADS设置板框提示不闭合的解决办法

一般是选中join&#xff0c;提示不闭合&#xff0c;不能转成板框&#xff0c;其实直接点击close就好了&#xff0c;报错提示里就有提示&#xff0c;让用close命令试试