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

2024-08-27 13:20

本文主要是介绍一文彻底搞懂Fine-tuning - 超参数(Hyperparameter),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hyperparameter

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

Hyperparameter vs Model Parameter

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

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

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

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

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

Hyperparameter

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

Hyperparameter

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈


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

直接影响神经网络结构的超参数主要包括 网络层数(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

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

这篇关于一文彻底搞懂Fine-tuning - 超参数(Hyperparameter)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111780

相关文章

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

CSP-J基础之数学基础 初等数论 一篇搞懂(一)

文章目录 前言声明初等数论是什么初等数论历史1. **古代时期**2. **中世纪时期**3. **文艺复兴与近代**4. **现代时期** 整数的整除性约数什么样的整数除什么样的整数才能得到整数?条件:举例说明:一般化: 判断两个数能否被整除 因数与倍数质数与复合数使用开根号法判定质数哥德巴赫猜想最大公因数与辗转相除法计算最大公因数的常用方法:举几个例子:例子 1: 计算 12 和 18