神经网络训练基础知识

news/2024/11/9 0:42:17/

Batch_size

batch_size:一次训练所选取的样本数; batch_size的大小影响内存的使用情况,同时也影响模型的优化程度和速度。
batch_size设置合适时的优点:

  1. 并行化提高了内存的利用率,提高了训练速度
  2. 使得单个epoch的训练次数变少了,如果要达到相同的精度,需要增加epoch迭代次数
  3. 使得梯度下降的方向更加准确,batch_size=1,梯度变来变去,网络很难收敛;batch_size越大,其确定的下降方向越准;
  4. batch_size的选择决定了梯度下降的方向;如果数据量较小,可以选择全数据集的形式

激活函数

激活函数Sigmoid、Softmax、tanh、ReLU的区别

  1. 在输出层,一般会使用sigmoid函数,因为一般期望的输出结果概率在0~1之间,如二分类,sigmoid可作为输出层的激活函数,softmax多用于多分类。sigmoid函数计算量大反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练
  2. 在隐藏层,tanh函数优于sigmoid函数。因为其取值范围介于-1 ~ 1之间,有类似数据中心化的效果。
  3. 但实际应用中,tanh和sigmoid会在端值趋于饱和,造成训练速度减慢,故一般的深层网络的激活函数默认大多采用ReLU函数,收敛速度快。

优化器

1、SGD-随机梯度下降法

SGD简单且容易实现,解决了随机小批量样本的问题,由于只对一个训练样本进行梯度下降,可以提高网络参数的更新速度;但其训练时下降速度慢、准确率下降、容易陷入局部最优以及不容易实现并行处理等问题

2、Momentum(动量法)

SGD每次都会在当前位置沿梯度负方向更新,不会考虑先前的梯度方向及大小;Momentum则是通过引入一个新的变量v去积累之前的梯度,从来可以加速网络的学习过程,也就是说如果当前时刻的梯度方向与之前时刻累计的梯度方向一致,那么梯度会加强,梯度下降的幅度更大,反之,梯度下降的幅度会降低。

3、AdaGrad

SGD与Momentum存在的问题,AdaGrad(Adaptive Gradient)是在SGD基础上引入二阶动量,能够对不同的参数使用不同的学习率进行更新,对于梯度较大的参数,那么学习率就会变得较小;而对于梯度较小的参数,那么学习率就会变得较大,这样就会使在陡峭的区域下降速度快,平缓的区域下降速度慢

4、RMSProp

RMSProp是对AdaGrad的一个扩展,在非凸情况下效果更好,能够在目标函数不稳定的情况下很好的收敛,且能够快速收敛。RMSProp能够避免梯度快速降低的问题,学习率自适应能力较强,且能够在目标函数不稳定的情况下快速的收敛,比上述三种优化器表现都好

5、Adam

Adam是将Momentum与RMSProp结合起来的一种算法,不仅使用动量作为参数更新方向,而且可以自适应调整学习率。效果最好。
实现简单,计算高效,对内存需求少;
参数的更新不受梯度的伸缩变换影响;
更新的步长能够被限制在大致的范围内

Resnet 残差网络

常见的Resnet 50、Resnet 101

  1. 将靠前若干层的某一层数据输出直接跳过多层引入到后面数据层的输入部分。
  2. 意味着后面的特征层的内容会有一部分由其前面的某一层线性贡献。
  3. 深度残差网络的设计是为了克服由于网络深度加深而产生的学习效率变低与准确率无法有效提升的问题

http://www.ppmy.cn/news/1158913.html

相关文章

百度文心一言 VS GPT

更多精华:即兴小索奇 | Link3 相信大家都关注AI,AI大模型已成为了科技领域的新焦点,各大科技巨头都争相推出自家的版本。其中,尤为引人注目的是中国科技巨头百度所推出的文心大模型。然而,即使在这激烈的竞争中&#x…

在uniapp中开发年份弹出选择组件

多层组件嵌套 <template><view class""><view class"zq-imitate-input" click"toggleContent"><text v-if"valueStr.length > 0">{{ valueStr }}</text><text v-else>{{ datePlaceholder }}&…

提升医疗服务质量:将互联网医院源码应用于实践

随着科技的快速发展&#xff0c;医疗行业也亟需寻求创新的解决方案来提升服务质量。在这个数字化时代&#xff0c;互联网医院源码成为了引人注目的选择&#xff0c;为医疗机构和患者之间的沟通和协作提供了前所未有的便利。作为该领域的专家&#xff0c;我将介绍互联网医院源码…

for循环中循环一次提交一次 insert update 关闭事务 spring springboot mybatis

省流&#xff1a; 在方法上直接加如下注解&#xff1a; Transactional(propagation Propagation.NOT_SUPPORTED) public void t1(){//业务代码 } 正文&#xff1a; 在测试的时候&#xff0c;有时候会希望在for循环中&#xff0c;代码循环一次就提交一次事务。 方法一&#…

idea使用Spring Initializer创建springboot项目的坑【保姆级教学】

项目场景&#xff1a; 提示&#xff1a;这里先简述项目创建后遇到的问题和解决方案&#xff1a; idea 使用 Spring Initializer 创建springboot项目后&#xff0c; 有以下问题&#xff1a; ① 右键没有Run ② 右键New新建文件发现无Java Class选项 然后解决掉 ①② 问题后出…

【分享】一个基于 Python 开发的12306 抢票项目,快来学习!

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 12306抢票软件 "黄金周" 十一黄金周如约而至&#xff0c;这意味着某些开源项目又将迎来一次繁荣的热潮。这次&#xff0c;上榜的是一个与 12306 抢票相关的脚本&#xff0c;它基于 Python 编写&#xff0c;具备自动…

Spring: 通过注解存储Bean对象

目录 一, 配置扫描路径 二, 为什么要使用注解及其关系 三, 通过类注解存储Bean 四, 类注解存储Bean的命名规则 五, 通过方法注解存储Bean 六, Bean 重命名的几种方式 一, 配置扫描路径 我们在rescourse目录下创建Spring的配置文件 spring-config.xml ,粘贴以下代码 &l…

LoRa无线温控器的技术选择及应用优势

一、LoRa无线扩频技术在无线温控器市场需求分析 中央空调系统末端风机盘管智能化节能运行已经成为行业的发展趋势&#xff0c;实现风机盘管智能化运行需要强大的通讯技术支持。各种先进的现场总线技术如LonWorks、BACnet MS/TP总线技术联网型房间温控器相继进入市场,而低成本的…