当前位置:网站首页>深度学习调参技巧详解
深度学习调参技巧详解
2022-06-13 01:37:00 【星空下0516】
学习率
学习率是一个非常非常重要的超参数,它可以直接控制模型参数更新的步伐,学习率的不同会给模型的训练带来不同的影响,有的无法训练出好的结果,有的训练时间非常长等等。面对不同规模、不同batch-size、不同优化方式、不同数据集,其最合适的值都是不确定的,我们无法光凭经验来准确地确定lr的值,我们唯一可以做的,就是在训练中不断寻找最合适当前状态的学习率。
Batch-Size
首先看一下batch英文翻译:
batch
noun [ C ]
UK /bætʃ/ US /bætʃ/
a group of things or people dealt with at the same time or considered similar in type
一批,一组
那么batch size就是批大小,批尺寸。顾名思义就是批次大小,也就是一次训练选取的样本个数.batch size的大小对模型的速度有很大的影响,特别是GPU的显存不足的时候,最好不要把该数值设置太高,但是该值对模型收敛的结果影响不大,无非是训练速度有较大的影响,但是太小会导致无法收敛。下面是batch size的大小对模型的影响:
1. 适当增加batch size可以提高内存利用率。
2.适当的增加batch size梯度下降方向准确度增加,训练震动的幅度减小。
3. batch size的值太大会导致显存不足。
4. 如果batch size 太小会导致非常难收敛,从而导致underfitting。
一句话:batch size的为了在效率和显存容量之间寻找最佳平衡。
epoch迭代次数
首先说一下什么是epoch,首先从英文解释如下:
epoch:
noun [ C ]
UK /ˈiː.pɒk/ US /ˈiː.pɑːk/
a long period of time, especially one in which there are new developments and great change
(尤指出现新进步和大变革的)时代,纪元,时期
这里比较接近中文的“期”的意思,可以理解成周期的意思。即用训练集中的全部样本训练一次,循环一个周期,1个epoch表示过了1遍训练集中的所有样本。
下面我们分析一下,如果一个100000的数据集,由于数据太大跑完一次需要很久而导致调参数变得很慢,所以需要分成多个batch,假设分成100个batch,即每个batch size是1000,那么跑完一个epoch就是跑完这100个batch,即跑完100*1000数据。
iteration
中文翻译:
iteration:
noun [ C or U ]
UK /ˌɪt.ərˈeɪ.ʃən/ US /ˌɪt̬.əˈreɪ.ʃən/
an amount that you get when you use a mathematical rule several times
迭代,叠代(数学里若干次使用一个数学法则得出的量)
1个iteration即迭代一次,也就是用batchsize个样本训练一次。迭代是重复反馈的动作,神经网络中我们希望通过迭代进行多次的训练以到达所需的目标或结果。
Dropout
Dropout这个术语代指在神经网络中丢弃部分神经元(包括隐藏神经元和可见神经元),主要用于人工神经网络中对抗过拟合。在训练阶段,dropout使得每次只有部分网络结构得到更新,因而是一种高效的神经网络模型平均化的方法。
激活函数
激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。
网络深度和宽度
深度学习的深度和宽度是个比较复杂的事情,可以参考另外一个文章:
https://blog.csdn.net/qq_28531269/article/details/121101391
边栏推荐
- Tweens of phaser3
- Create a simple game interface using pyGame
- DFS and BFS notes (II): depth first search (implemented in C language)
- Golang learning essay
- Wildcard usage of go standard library FMT
- Getting started with phaser 3
- Database query user mailbox
- Transaction characteristics and isolation levels
- The interviewer only asked me five questions and the interview was over
- [Stanford Jiwang cs144 project] lab1: streamreassembler
猜你喜欢

RSA encryption colloquial explanation

How to print infinite symbol in WPS

ES6 deconstruction assignment

Leetcode question brushing 02 linked list operation

Temporary objects and compilation optimization

Work and life

Crypto JS reports uglifyjs error
![[projet cs144 de Stanford Computing Network] lab1: Stream reassembler](/img/7b/fad18b68a6ee30d1dec4dad6273b98.png)
[projet cs144 de Stanford Computing Network] lab1: Stream reassembler

Using OpenCV in go

Network communication tcp/ip
随机推荐
Getting started with phaser 3
Leetcode question brushing 03 stack
Method of cleaning C disk
【斯坦福計網CS144項目】Lab1: StreamReassembler
Leetcode question brushing 07 double pointer
Detailed explanation of audience characteristics
np. Understanding of axis in concatenate
[WSL2]限制WSL2可访问的硬件资源(CPU/内存)
他山之石:a16z 的 Web3 投资版图
Work and life
RSA encryption colloquial explanation
Large end storage and small end storage
Use koa to mock data and set cross domain issues
Add default right-click menu
[wsl2] restrict wsl2 accessible hardware resources (cpu/ memory)
[projet cs144 de Stanford Computing Network] lab1: Stream reassembler
Wikipedia User Guide
详细受众特征详细解释
[从零开始学习FPGA编程-21]:进阶篇 - 架构 - VerilogHDL编码规范
About tkinter Canvas does not display pictures