超参数设定及训练技巧

简介: 超参数设定及训练技巧

 一、网络超参数的设定

1.输入数据像素大小的设定:

为便于GPU并行计算,一般将图像大小设置为到2的次幂。

2.卷积层参数的设定:

(1)卷积核大小一般使用1*1,3*3 或 5*5。

(2)使用zero padding,可以充分利用边缘信息、使输入大小保持不变。

(3)卷积核的个数通常设置为2的次幂,如64,128,256,512,1024等。

3.池化层参数的设定:

一般采用卷积核大小2*2,步长为2.

4.全连接层参数的设定(可使用Global Average Pooling来代替):

主要是用来解决全连接的问题,是将最后一层的特征图进行整张图的一个均值池化,形成一个特征点,将这些特征点组成最后的特征向量,然后进行softmax中进行计算。

备注:

(1)Global Average Pooling和Average Pooling(Local)的差别就在“Global”这个字眼上。Global和Local在字面上都是用来形容pooling窗口区域的。Local是取Feature Map的一个子区域求平均值,然后滑动。

(2)Global显然就是对整个Feature Map求均值了(kernel的大小设置成和Feature Map的相同)。所以,有多少个Feature Map就可以输出多少个节点。一般可将输出的结果直接喂给softmax层。

举例:

image.gif编辑

Global Average Pooling:是将最后一层的特征图进行整张图的一个均值池化,形成一个特征点,将这些特征点组成最后的特征向量,在softmax中进行计算。

例:假如,最后一层的数据是10个6*6的特征图,global average pooling是将每一张特征图计算所有像素点的均值,输出一个数据值,这样10个特征图就会输出10个数据点,将这些数据点组成一个1*10的向量的话,就成为一个特征向量,就可以送入到softmax的分类中计算了。

5.卷积的选取:

(1)卷积核尺寸方面:

①大卷积核用多个小卷积核代替;

②单一尺寸卷积核用多尺寸卷积核代替;

③固定形状卷积核趋于使用可变形卷积核;

④使用1x1卷积核(瓶颈结构)

(2)卷积层连接方面:

①使用跳跃连接,让模型更深;

②密集连接都是不错的优化方法;

③使每一层都融合上其它层的特征输出(例如:DenseNet)

6.遇到模型过拟合问题怎么解决?

举个例子:

在上学的时候,有人采取题海战术,把每个题目都背下来。但是题目稍微一变,他就不会做了。因为他非常复杂的记住了每道题的做法,而没有抽象出通用的规则。

所以过拟合有两种原因:

(1)训练集和测试集特征分布不一致;

(2)或者模型太过复杂(记住了每一道题)而样本不足;

欠拟合:欠拟合是由于学习不足;解决办法:可以考虑添加特征,从数据中挖掘出更多的特征,有时候还需要对特征进行变换,使用组合特征和高次特征。

两种解决过拟合的方法:

(1)L0、L1、L2:在向前传播、反向传播后面加个小尾巴;

(2)DropOut:训练时随机“删除”一部分神经元;

介绍的优化方法叫mini-batch,它主要解决的问题是:实际应用时的训练数据往往都太大了,一次加载到电脑里可能内存不够,其次运行速度也很慢。那自然就想到说,不如把训练数据分割成好几份,一次学习一份不就行了吗?前辈们试了试发现不仅解决了内存不足的问题,而且网络“收敛”的速度更快了。由于mini-batch这么棒,自然是神经网络中非常重要的一个技术,但是实际实现时你会发现“真的太简单了”。

mini-batch的操作:

洗牌:是mini-batch的一个操作,因为我们是将训练数据分割成若干份的,分割前将图片的顺序打乱就是所谓的“洗牌”了,这样每一次mini-batch学习的图片都不一样为网络中增加了一些随机的因素。优化了网络。

另外注意:

batch size太小会使训练速度很慢;

太大会加快训练速度,但同时会导致内存占用过高,并有可能降低准确率。

所以32至256是不错的初始值选择,尤其是64和128

问题,为什么选择2的指数倍?

因为计算机内存一般为2的指数倍,采用2进制编码。


相关文章
10、pip换源加速下载的方式
10、pip换源加速下载的方式
10、pip换源加速下载的方式
Idea在debug时打上断点没有用 Skipped breakpoint at ... because it happened inside debugger evaluation
Idea在debug时打上断点没有用 Skipped breakpoint at ... because it happened inside debugger evaluation
2853 0
|
11月前
|
存储 机器学习/深度学习 PyTorch
【AI系统】推理文件格式
本文介绍了神经网络模型的序列化与反序列化技术,涵盖跨平台通用序列化方法(如 Protobuf 和 FlatBuffers)、模型自定义序列化方法、语言级通用序列化方法等,重点讨论了这两种流行文件格式的特点、使用场景及其在模型部署中的作用。
246 1
【AI系统】推理文件格式
|
开发框架 网络协议 Unix
【嵌入式软件工程师面经】Socket,TCP,HTTP之间的区别
【嵌入式软件工程师面经】Socket,TCP,HTTP之间的区别
654 1
|
9月前
|
人工智能 Java 云计算
Salesforce X 阿里云:加速中国市场合作!
Salesforce X 阿里云:加速中国市场合作!
452 13
|
弹性计算 人工智能 运维
Terraform从入门到实践:快速构建你的第一张业务网络(上)
本次分享主题为《Terraform从入门到实践:快速构建你的第一张业务网络》。首先介绍如何入门和实践Terraform,随后演示如何使用Terraform快速构建业务网络。内容涵盖云上运维挑战及IaC解决方案,并重磅发布Terraform Explorer产品,旨在降低使用门槛并提升用户体验。此外,还将分享Terraform在实际生产中的最佳实践,帮助解决云上运维难题。
746 1
Terraform从入门到实践:快速构建你的第一张业务网络(上)
|
机器学习/深度学习 人工智能 分布式计算
算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化
机器学习中的超参数调优是提升模型性能的关键步骤,包括网格搜索、随机搜索、贝叶斯优化和遗传算法等方法。网格搜索通过穷举所有可能的超参数组合找到最优,但计算成本高;随机搜索则在预设范围内随机采样,降低计算成本;贝叶斯优化使用代理模型智能选择超参数,效率高且适应性强;遗传算法模拟生物进化,全局搜索能力强。此外,还有多目标优化、异步并行优化等高级技术,以及Hyperopt、Optuna等优化库来提升调优效率。实践中,应结合模型类型、数据规模和计算资源选择合适的调优策略。
758 0
算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
|
存储 机器学习/深度学习 人工智能
RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术
RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术
RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术
|
网络协议 网络安全 程序员
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别