优化深度神经网络

训练集、开发集(验证集)、测试集

偏差与方差

正则化

L2正则

Dropout

随机丢弃部分神经元输入,经常用于计算机视觉的神经网络内,因为通常没有足够的训练数据,很容易出现过拟合的问题

数据增强

训练集规一化

可以使其图像更均匀,梯度下降更容易收敛

梯度消失与梯度爆炸

梯度消失

  • 激活函数:如Sigmoid或Tanh,其导数在输入较大或较小时会趋近于零,梯度在多层传播中逐渐减小。

  • 网络深度:层数越多,梯度经过多次连乘后变得更小。

梯度爆炸

  • 权重初始化不当,导致梯度在传播中不断放大。

  • 网络深度增加,梯度连乘后变得过大。

参数初始化

He初始化与Xavier初始化

Mini-Batch梯度下降

在训练集数据量较大时,每轮迭代只使用小部分数据进行训练,大幅提高训练速度

如何选择batch大小

batch size太小会抖动严重,并且失去向量化带来的加速优势;太大则会每轮迭代成本很高

梯度下降算法的优化

Momentum 动量法传播

指数加权平均(exponentially weighted averages)

可以看到指数加权平均展开之后就是每老一点的数据就多乘以一次一个接近一的系数,使得老的数据影响越来越小,近似的计算近一段时间的平均值,这样相对直接取n填计算均值需要的内存更小。

如果单纯以上面的公式进行计算,会发现由于 v_0=0 导致在初始化的几天预测不准,大部分情况下只需要等待预热期过去就好,但是如果你关注预热期的准确度,可以每轮迭代增加一步v_t=\frac{v_t}{1-\beta ^t}进行计算,当t比较小时可以放大结果,当t比较大时则分母接近于0影响渐小

梯度下降结合指数加权平均

即针对偏导数结果进行指数加权平均,这样在偏导数震荡时可以减小震荡幅度,而连续同朝向时则可以加速收敛

RMSprop 均方根传播

区别于指数加权平均,这里使用梯度的平方进行指数加权,加速收敛

Adam 亚当优化算法

Adam算法结合了Momentum和RMSprop,增加了\varepsilon参数防止分母为0,并且对结果进行了误差校正

超参的选择

\varepsilon的对最终效果的影响很小,\beta _1\beta _2一般也使用固定值,分别为0.9和0.999,一般只需要对学习率\alpha进行调参

学习率衰减

可以减小在接近收敛时的震荡,加快收敛速度

局部最优问题

因为深度学习中都是高维空间,在高维空间中几乎不会出现真正的局部最优点(需要所有维度上都是局部最小值或局部最大值),因此这个不是问题。

实际经常会出现的是鞍点,鞍点是指部分维度为局部最大值而部分维度是局部最小值,还有更多的维度并不是局部最值(所有维度梯度均为0的概率也是极低的)。这种情况下Adam等算法都可以帮助加速逃离鞍点。

超参调参

随机取点,从粗到细

正态随机

指数随机

有时候不能直接正态分布的随机取点,比如对于学习率和指数加权平均系数等,可以结合指数随机增加特定区域随机出的概率

batch normalization 批归一化

前面讲过训练集归一化,还可以进一步对中间输出进行归一化,同时为了避免值只能在(0,1)之间,增加了\gamma\beta两个可学习参数用于调整平均值

神经网络训练中应用归一化

在计算z之后对z进行归一化处理即可,β和γ均作为学习参数。通过归一化可以减少网络不同层的耦合,前一层网络的变化始终将输出保持一定范围内,减少了对后面网络层的影响。

由于归一化过程中输入会减掉平均值,所以在下面使用方式中z = wa+bb并没有用

作用

推理时处理归一化

由于实际推理时可能只有一个输入,没有平均值、方差等统计值,此时需要使用训练时得到的统计值,比如使用每个batch计算得到的μ和\sigma的指数加权平均。

Softmax regression 多类分类问题

输出层神经元个数与分类数量一致,各神经元输出之和为1。softmax的命名是跟hardmax相对的,hardmax是指输出中只有一个1,其他均为0。

损失函数

后向传播

训练框架TensorFlow

两种实现方式

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

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

相关文章

从java角度对比nodejs、fastapi,同步和异步区别

我之前一直用java语言编程,最近一年用python fastapi和nodejs nestjs开发了一些项目,站在java程序员的角度谈谈异步编程和同步编程的区别,主要在两方面 处理请求,java常用的tomcat是多线程处理请求并执行代码,同步阻塞…

《图解设计模式》笔记(五)一致性

十一、Composite模式:容器与内容的一致性 像文件夹与文件一样,文件夹中可以放子文件夹与文件,再比如容器中可以放更小的容器和具体内容。 Composite模式:使容器与内容具有一致性,创造出递归结构。 Composite&#x…

爬虫学习笔记之Robots协议相关整理

定义 Robots协议也称作爬虫协议、机器人协议,全名为网络爬虫排除标准,用来告诉爬虫和搜索引擎哪些页面可以爬取、哪些不可以。它通常是一个叫做robots.txt的文本文件,一般放在网站的根目录下。 robots.txt文件的样例 对有所爬虫均生效&#…

电脑可以自己换显卡吗?怎么操作

电脑是否可以自己换显卡主要取决于电脑的类型(台式机或笔记本)以及电脑的硬件配置。以下是对这一问题的详细解答及操作步骤: 一、判断电脑是否支持更换显卡 台式机:大多数台式电脑都支持更换显卡。只要主板上有PCIe插槽&#xff…

【玩转 Postman 接口测试与开发2_014】第11章:测试现成的 API 接口(下)——自动化接口测试脚本实战演练 + 测试集合共享

《API Testing and Development with Postman》最新第二版封面 文章目录 3 接口自动化测试实战3.1 测试环境的改造3.2 对列表查询接口的测试3.3 对查询单个实例的测试3.4 对新增接口的测试3.5 对修改接口的测试3.6 对删除接口的测试 4 测试集合的共享操作4.1 分享 Postman 集合…

华为支付-免密支付接入免密代扣说明

免密代扣包括支付并签约以及签约代扣场景。 开发者接入免密支付前需先申请开通签约代扣产品(即申请配置免密代扣模板及协议模板ID)。 华为支付以模板维度管理每一个代扣扣费服务,主要组成要素如下: 接入免密支付需注意&#x…

Redis - 全局ID生成器 RedisIdWorker

文章目录 Redis - 全局ID生成器 RedisIdWorker一、引言二、实现原理三、代码实现代码说明 四、使用示例示例说明 五、总结 Redis - 全局ID生成器 RedisIdWorker 一、引言 在分布式系统中,生成全局唯一ID是一个常见的需求。传统的自增ID生成方式在分布式环境下容易出…

YOLOv11实时目标检测 | 摄像头视频图片文件检测

在上篇文章中YOLO11环境部署 || 从检测到训练https://blog.csdn.net/2301_79442295/article/details/145414103#comments_36164492,我们详细探讨了YOLO11的部署以及推理训练,但是评论区的观众老爷就说了:“博主博主,你这个只能推理…

用Python获取股票数据并实现未来收盘价的预测

获取数据 先用下面这段代码获取上证指数的历史数据,得到的csv文件数据,为后面训练模型用的 import akshare as ak import pandas as pd# 获取上证指数历史数据 df ak.stock_zh_index_daily(symbol"sh000001")# 将数据保存到本地CSV文件 df.…

RK3576——USB3.2 OTG无法识别到USB设备

问题:使用硬盘接入到OTG接口无热插拔信息,接入DP显示屏无法正常识别到显示设备,但是能通过RKDdevTool工具烧录系统。 问题分析:由于热插拔功能实现是靠HUSB311芯片完成的,因此需要先确保HUSB311芯片驱动正常工作。 1. …

RabbitMQ深度探索:前置知识

消息中间件: 消息中间件基于队列模式实现异步 / 同步传输数据作用:可以实现支撑高并发、异步解耦、流量削峰、降低耦合 传统的 HTTP 请求存在的缺点: HTTP 请求基于响应的模型,在高并发的情况下,客户端发送大量的请求…

maven如何不把依赖的jar打包到同一个jar?

spring boot项目打jar包部署: 经过以下步骤, 最终会形成maven依赖的多个jar(包括lib下添加的)、 我们编写的程序代码打成一个jar,将程序jar与 依赖jar分开,便于管理: success: 最终…

网络工程师 (21)网络的性能

一、速率(数据率或比特率) 定义:数据在数字信道上传送的速率,通常以比特每秒(bps)为单位。常见的速率单位还有千比特每秒(kbit/s)、兆比特每秒(Mbit/s)和吉比…

UE5 蓝图学习计划 - Day 14:搭建基础游戏场景

在上一节中,我们 确定了游戏类型,并完成了 项目搭建、角色蓝图的基础设置(移动)。今天,我们将进一步完善 游戏场景,搭建 地形、墙壁、机关、触发器 等基础元素,并添加角色跳跃功能,为…

计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价预测 机器学习 深度学习 Python爬虫 HDFS集群

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

金蝶云星空k3cloud webapi报“java.lang.Class cannot be cast to java.lang.String”的错误

最近在对接金蝶云星空k3cloud webapi时,报一个莫名其妙的转换异常,具体如下: 同步部门异常! ERP接口登录异常:java.lang.Class cannot be cast to java.lang.String at com.jkwms.k3cloudSyn.service.basics.DeptK3CloudService.…

html的字符实体和颜色表示

在HTML中,颜色可以通过以下几种方式表示,以下是具体的示例: 1. 十六进制颜色代码 十六进制颜色代码以#开头,后面跟随6个字符,每两个字符分别表示红色、绿色和蓝色的强度。例如: • #FF0000:纯红…

老游戏回顾:G2

一个老的RPG游戏。 剧情有独到之处。 ------- 遥远的过去,古拉纳斯将希望之光给予人们,人类令希望之光不断扩大,将繁荣握在手中。 但是,暗之恶魔巴鲁玛将光从人类身上夺走。古拉纳斯为了守护人类与其展开了一场激战&#xff0c…

E4982A,keysight是德科技台式LCR表

是德科技keysightE4982A台式LCR表 是德KEYSIGHT的精密型LCR表E4982A,针对SMD电感器、EMI滤波器等无源元器件的制造测试展现出卓越性能,特别适用于1 MHz至3 GHz高频率范围内的阻抗测试。此外,E4982A还广泛应用于研发领域,凭借其强…

C++, STL容器 array:固定大小数组深度解析

文章目录 引言一、设计哲学与底层实现1.1 零抽象成本的封装1.2 性能特征二、内存优化实践2.1 缓存友好性对比2.2 内存碎片防护三、高级内存管理技巧3.1 精准内存对齐3.2 内存复用模式四、工程实践指南4.1 适用场景4.2 陷阱规避五、未来演进结语引言 在C++标准库中,std::array…