一文彻底搞懂 Fine-tuning - 超参数(Hyperparameter)

news2024/9/22 23:25:01

最近这一两周看到不少互联网公司都已经开始秋招提前批了。不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。

最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。

《AIGC 面试宝典》圈粉无数!
《大模型面试宝典》(2024版) 发布!

喜欢本文记得收藏、关注、点赞。更多实战和面试交流,欢迎交流


Hyperparameter

超参数(Hyperparameter),是机器学习算法中的调优参数,用于控制模型的学习过程和结构。与模型参数(Model Parameter)不同,模型参数是在训练过程中通过数据学习得到的,而超参数是在训练之前由开发者或实践者直接设定的,并且在训练过程中保持不变。

图片

Hyperparameter vs Model Parameter

超参数是机器学习算法在开始执行前需要设置的一些参数,这些参数的值会影响算法的表现,但不会通过训练过程自动调整。

  1. 需要人工设置:超参数的值不是通过训练过程自动学习得到的,而是需要训练者根据经验或实验来设定。

  2. 影响模型性能:超参数的选择会直接影响模型的训练过程和最终性能。

  3. 需要优化:为了获得更好的模型性能,通常需要对超参数进行优化,选择最优的超参数组合。

需要自己设定,不是机器自己找出来的,称为超参数(hyperparameter)。

图片

Hyperparameter

超参数大致可以分为三类:神经网络结构的超参数、神经网络训练过程的超参数和神经网络中过拟合的超参数。

图片

Hyperparameter

一、神经网络结构的超参数

直接影响神经网络结构的超参数主要包括网络层数(Layers)和每层的神经元数量(Neurons per Layer),它们共同决定了神经网络的深度和宽度,进而影响其学习复杂特征的能力、训练难度、计算资源需求以及可能存在的过拟合风险。此外,虽然激活函数(Activation Function)不直接改变网络结构,但它通过引入非线性变换,显著影响网络的表达能力和性能,是神经网络设计中不可忽视的关键因素。

图片

Directly affect the structure of the neural network

  1. 网络层数和神经元数量
  • 层数(Layers):神经网络中的层数是一个关键的超参数,它决定了网络的深度。层数越多,网络能够学习到的特征就越复杂,但同时也可能导致过拟合和训练难度的增加。

  • 每层的神经元数量(Neurons per Layer):每一层中的神经元数量也是一个重要的超参数。神经元数量越多,网络的学习能力就越强,但同时也需要更多的计算资源和训练时间。

  • 调整策略:根据问题的复杂度和数据集的规模来选择合适的网络层数和神经元数量。通常,更深的网络和更多的神经元可以处理更复杂的问题,但也可能导致过拟合和计算成本增加。

  1. 激活函数(Activation Function)
  • 定义:决定神经元如何对其输入进行非线性变换。虽然激活函数本身不是直接改变网络结构的超参数,但不同的激活函数会影响网络的非线性能力和表达能力,从而间接影响网络的结构和性能。

  • 常见类型:ReLU、Sigmoid、Tanh等。

  • 选择策略:根据具体任务和网络架构选择合适的激活函数。例如,ReLU函数因其简单性和有效性而在许多深度学习任务中广泛使用。

二、神经网络训练过程的超参数

直接影响神经网络训练过程的超参数包括学习率(Learning Rate)、批量大小(Batch Size)、迭代次数(Epochs)和优化算法(Optimizer)。这些超参数共同决定了训练过程中模型权重的更新方式、训练速度、稳定性和最终性能。

图片

Directly control the training process of the neural network

  1. 学习率(Learning Rate)

  • 定义:学习率决定了在优化过程中更新模型权重的步长。

  • 影响:较高的学习率可能导致模型在训练过程中超过最优解,甚至导致训练过程发散;而较低的学习率则可能使训练过程收敛缓慢,需要更多的迭代次数。

  • 调整策略:通常需要通过实验找到合适的学习率,或者采用学习率调度策略,如动态调整学习率或使用学习率衰减。

  1. 批量大小(Batch Size)

  • 定义:批量大小指的是每次梯度下降迭代中使用的训练样本数量。

  • 影响:较大的批量大小可以加速训练过程,因为可以并行处理更多的样本,但可能导致内存不足和泛化能力下降;较小的批量大小可以引入更多的噪声,有助于模型跳出局部最优解,但训练过程可能不稳定且收敛速度较慢。

  • 选择原则:需要根据硬件资源、数据集大小和训练时间来选择合适的批量大小。

  1. 迭代次数(Epochs)

  • 定义:迭代次数指的是整个训练数据集被遍历和学习的次数。

  • 影响:过少的迭代次数可能导致模型未能充分学习数据集中的特征,导致欠拟合;而过多的迭代次数则可能导致模型过拟合,即模型在训练集上表现很好,但在测试集上表现不佳。

  • 调整策略:通常需要通过观察验证集上的性能指标来确定合适的迭代次数。

  1. 优化算法(Optimizer)

  • 定义:优化算法决定了如何更新模型参数以最小化损失函数。

  • 常见优化算法:包括随机梯度下降(SGD)、动量(Momentum)、RMSprop、Adam等。

  • 影响:不同的优化算法具有不同的收敛速度和性能表现。例如,Adam优化器结合了动量和RMSprop的优点,能够自动调整学习率,通常比SGD具有更快的收敛速度和更好的性能。

  • 选择原则:需要根据具体问题和数据集的特点选择合适的优化算法。

三、神经网络中过拟合的超参数

正则化系数(Regularization)是直接影响神经网络中过拟合问题的关键超参数。

图片

  • 定义:正则化方法用于防止模型过拟合,通过在损失函数中添加正则化项来约束模型的复杂度。

  • 常见正则化方法:包括L1正则化、L2正则化、Dropout等。

  • 影响:正则化方法可以有效地降低模型的复杂度,提高模型的泛化能力。但是,正则化强度过大会导致模型欠拟合。

  • 调整策略:需要根据验证集上的性能指标来调整正则化强度。

正则化系数是控制正则化强度的超参数。较大的正则化系数会对模型权重施加更强的约束,降低模型的复杂度,从而减少过拟合。常见的正则化方法包括L1正则化和L2正则化、Dropout等。

图片

Directly control the overfitting in the neural network

  • L1正则化(Lasso Regularization):通过在损失函数中添加模型权重的绝对值之和作为惩罚项,鼓励模型产生稀疏的权重,即许多权重为零。这有助于模型的解释性,并可能减少过拟合。

  • L2正则化(Ridge Regularization):通过在损失函数中添加模型权重的平方和作为惩罚项,鼓励模型权重趋于较小的值,但不会像L1那样产生完全为零的权重。L2正则化有助于平滑模型的决策边界,减少过拟合。

图片

L1、L2正则化

  • Dropout:虽然严格来说不是通过修改损失函数来实现的,但Dropout也是一种正则化技术。在训练过程中,它随机地将网络中一定比例的神经元输出置为零,这相当于在每次迭代时训练一个不同的网络子集。这有助于减少神经元之间的共适应性,从而提高模型的泛化能力。

图片

Dropout

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity】web gl inputFied 中文输入,同时支持TextMeshInputFied,支持全屏

同时支持TextMeshInputFied,支持全屏。 使用github包【WebGLInput】:https://github.com/kou-yeung/WebGLInput 需要资源的在这里也可以下载 https://download.csdn.net/download/weixin_46472622/89600795 用于unity web gl 中文输入,只需…

本地项目提交到Gitee

在项目目录 右键 git bash here 可以在黑屏输入命令 也可以在项目里面 命令都是一样的 要排除哪些 git add . 添加所有文件 git commit -m "Initial commit" 提交到本地 git remote add origin https://gitee.com/xxxx/xxxx.git 添加远程仓库 …

2-54 基于matlab的模糊自适应PID控制器

基于matlab的模糊自适应PID控制器,PID参数的整定必须考虑到在不同时刻三个参数的作用及相互之间的关系。在线实时模糊自整定PID算法的基础上,通过计算当前系统e和误差变化率ec,利用模糊规则进行模糊推理,查询模糊矩阵表进行参数调…

xss漏洞原理及利用【万字详解】

文章目录 url处XSS图片处XSS攻击svg-xss概念复现 pdf-xss概念复现 游览器翻译-xssflash-xss概念常见造成xss中的swf文件函数举例说明: cookie的获取概念代码审计复现 cookie的获取概念代码审计复现 页面信息获取概念条件复现 xss配合MSf钓鱼概念复现 XSS修复对危险字…

47 集合操作与运算

1 增加与删除集合元素 集合对象的 add() 方法可以增加新元素,如果该元素已存在则忽略该操作,不会抛出异常;update() 方法合并另外一个集合中的元素到当前集合中,并自动去除重复元素。 s {1, 2, 3} print(s) s.add(3) # 增加元…

C# 设计模式之装饰器模式

总目录 前言 装饰器模式的主要作用就是扩展一个类的功能,或给一个类添加多个变化的情况。学习面向对象的都知道,如果想单纯的给某个类增加一些功能,可以直接继承该类生成一个子类就可以。应对一些简单的业务场景继承也就够了,但是…

学习笔记-优化问题

目录 一、目前的问题 1、axios 2、跨域问题 3. 路由安全 二、解决问题 1. 跨域问题 2. 优化URL devServer 1. 配置 devServer 2. 修改请求路径 3. 重启 vue 4. 测试 5. pathRewrite 6. 重启 7. 测试 3. 优化 res.data 4. 判断状态码 5. 引入axios 1. 创建自…

【C++】2.C++入门(2)

文章目录 6.引用6.1 引用概念6.2 引用特性6.3 使用场景6.4 const引用(常引用)6.5 引用和指针的区别 7.inline7.1inline代码举例:7.2inline代码错误示范7.3实现一个ADD宏函数的常见问题: 8.nullptr 6.引用 6.1 引用概念 引用不是…

Yolov8在RK3588上进行自定义目标检测(三)

参考 Yolov8在RK3588上进行自定义目标检测(一) Yolov8在RK3588上进行自定义目标检测(二) best.onnx转yolov8.rknn onnx转rknn需要用到rknn-toolkit2,这个工具暂时不支持windows,所以我们移步linux,我用的是虚拟机创建的ubuntu20.4的系统&a…

JS+H5美观的带搜索的博客文章列表(可搜索多个参数)

实现 美观的界面(电脑、手机端界面正常使用)多参数搜索(文章标题,文章简介,文章发布时间等)文章链接跳转 效果图 手机端 电脑端 搜索实现 搜索功能实现解释 定义文章数据: 文章数据保存在一个 JavaScri…

评价指标--深度学习

目录 1分类任务1.1 二分类1.1.1 含义介绍1.1.2 指标 1.2多分类 2图像分割2.1 常用指标2.2 具体含义2.3 代码实现 1分类任务 1.1 二分类 混淆矩阵 1.1.1 含义介绍 TP:预测为真所以是Positive,预测结果和真实结果一致所以为TrueTN:预测为假…

【Python 逆向滑块】(实战六)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期:2024.08.04 使用工具:Python,Node.js 本章知识:逆向【NECaptchaValidate】参数并成功发送短信 文章难度:中等(没耐心的请离开) 文章全程已做去敏处理!!&#xf…

【SpringBoot】 定时任务之任务执行和调度及使用指南

【SpringBoot】 定时任务之任务执行和调度及使用指南 Spring框架分别通过TaskExecutor和TaskScheduler接口为任务的异步执行和调度提供了抽象。Spring还提供了支持应用程序服务器环境中的线程池或CommonJ委托的那些接口的实现。最终,在公共接口后面使用这些实现&…

POE服务机器人-快速开始

快速开始 POE与服务机器人部署服务机器人与poe集成迭代你的机器人其他 POE与服务机器人 在本快速入门指南中,我们将使用 Python 构建一个机器人服务器,然后将其与 Poe 集成。一旦您创建了由您的服务器驱动的 Poe 机器人,任何 Poe 用户都可以…

解密XXE漏洞:原理剖析、复现与代码审计实战

在网络安全领域,XML外部实体(XXE)漏洞因其隐蔽性和危害性而备受关注。随着企业对XML技术的广泛应用,XXE漏洞也逐渐成为攻击者们利用的重点目标。一个看似无害的XML文件,可能成为攻击者入侵系统的利器。因此&#xff0c…

R语言统计分析——描述性统计

参考资料&#xff1a;R语言实战【第2版】 1、整体统计 对于R语言基础安装&#xff0c;可以使用summary()函数来获取描述性统计量。summary()函数提供了最小值、最大值、四分位数、中位数和算术平均数&#xff0c;以及因子向量和逻辑向量的频数统计。 myvars<-c("mpg&…

JRT多维取数据三件套

今天补齐DolerData判断数据是否存在的API&#xff0c;即M的$d。 兜兜转转&#xff0c;经过近十年探索&#xff0c;3年的酝酿&#xff0c;10个月的开发&#xff0c;JRT终于集齐多维取数据三件套。分别是$get,$listget,$data。通过多维取数据的支持&#xff0c;JRT特别适合医疗数…

7.怎么配置一个axios来拦截前后端请求

首先创建一个axios.js文件 导入我们所需要的依赖 import axios from "axios"; import Element from element-ui import router from "./router"; 设置请求头和它的类型和地址 注意先注释这个url,还没有解决跨域问题,不然会出现跨域 // axios.defaults.…

6-5 多输入多输出通道

虽然我们在前面描述了构成每个图像的多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来代表红、绿和蓝。 但是到目前为止&#xff0c;我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时&#xff0c;我…

搭建高可用OpenStack(Queen版)集群(一)之架构环境准备

一、搭建高可用OpenStack&#xff08;Queen版&#xff09;集群之架构环境准备 一、架构设计 二、初始化基础环境 1、管理节点创建密钥对&#xff08;方便传输数据&#xff09; 所有控制节点操作 # ssh-keygen #一路回车即可 Generating public/private rsa key pair. Enter f…