神经网络中的超参数调整

这篇具有很好参考价值的文章主要介绍了神经网络中的超参数调整。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

        在深度神经网络学习和优化中,超参数调整一项必备技能,通过观察在训练过程中的监测指标如损失loss和准确率来判断当前模型处于什么样的训练状态,及时调整超参数以更科学地训练模型能够提高资源利用率。在本研究中使用了以下超参数,下面将分别介绍并总结了不同超参数的调整规则。

训练错误率,是把训练集输入到网络中的错误率吗,深度学习,人工智能,参数调节,神经网络

神经网络常用参数 

神经网络中常用的参数有以下几种:

1.权重(Weights):用于调整输入特征与神经元之间的连接强度,影响神经元对不同输入的响应程度。

2.偏置(Biases):用于调整神经元的激活阈值,影响神经元的激活状态。

3.学习率(Learning Rate):用于控制权重和偏置在每次迭代中的更新幅度,影响神经网络的训练速度和收敛性。

4.批量大小(Batch Size):指每次迭代更新时参与计算的样本数量,影响训练的速度和稳定性。

5.激活函数(Activation Function):用于引入非线性变换,增加神经网络的表达能力,常用的激活函数包括ReLU、Sigmoid、Tanh等。

6.优化器(Optimizer):用于更新神经网络的参数,常用的优化器包括SGD、Adam、RMSprop等。

7.正则化参数(Regularization Parameters):用于控制神经网络的复杂度,防止过拟合,包括L1正则化、L2正则化等。

        这些参数在神经网络的训练和优化过程中起着重要作用,通过调整这些参数可以影响神经网络的性能和泛化能力。

介绍 

(1)学习率

         学习率是一个比较重要的参数,控制我们要多大程度调整网络的权重,以符合梯度损失。 值越低,沿着梯度下降越慢。 虽然使用较小学习率可能是一个 好主意,以确保我们不会错过任何局部最低点,但也可能意味着我们将花费很长的时间来收敛——特别是当我们卡在平稳区域(plateau region)的时候。

以下公式显示了这种关系。

new_weight = existing_weight — learning_rate * gradient

训练错误率,是把训练集输入到网络中的错误率吗,深度学习,人工智能,参数调节,神经网络

通常,学习率是由用户随意配置的。 用户最多也只能通过之前的经验来配置最佳的学习率。

因此,很难得到好的学习率。 下图演示了配置学习速率时可能遇到的不同情况。

训练错误率,是把训练集输入到网络中的错误率吗,深度学习,人工智能,参数调节,神经网络

与此同时,学习率会影响我们的模型能够以多快的速度收敛到局部最小值(也就是达到最好的精度)。 因此,从正确的方向做出正确的选择意味着我们能用更少的时间来训练模型。 较少的训练时间,花在GPU计算上的花费较少。在“Cyclical Learning Rates for Training Neural Networks.”的第3.3节[4]中,Leslie N. Smith认为,可以在模型初始化的时候设置一个非常小的学习率,通过每次迭代地增加它(线性或指数级地 )。

如果我们记录每次迭代的学习,并绘制学习率(对数)与损失; 我们会看到,随着学习率的提高,会有一个损失停止下降并开始增加的点。 在实践中,我们的学习率理想情况下应该是从图的左边到某处最低点(如下图所示)。 在下图中,0.001到0.01。

使用

        目前,它是fast.ai包的一个API,它是由Jeremy Howard开发的一种基于Pytorch的包(很像Keras和Tensorflow的关系)。在训练神经网络之前,只需输入以下命令即可开始找到最佳学习率。

▌更近一步

我们已经介绍了什么是学习速度,接下来有一点是很重要的,即当我们开始训练我们的模型时,我们怎样才能系统地达到最佳的使用价值。

接下来,我们将介绍如何利用学习率来改善模型的性能。

▌传统方法

通常,当设定他们的学习率并训练模型时,只有等待学习速率随着时间的推移而下降,并且模型才能最终收敛。

然而,随着梯度达到稳定水平(plateau),训练损失变得更难以改善。 在[3]中,Dauphin等人认为,减少损失的难度来自鞍点(saddle points),而不是局部最低点。

训练错误率,是把训练集输入到网络中的错误率吗,深度学习,人工智能,参数调节,神经网络

▌那么我们怎么避免呢?

有几个选项我们可以考虑。 一般来说,从文章[1]引用一句:

...而不是使用一个固定值的学习速度,并随着时间的推移而降低,如果训练不会改善我们的损失,我们将根据一些循环函数f来改变每次迭代的学习速率。 每个周期的迭代次数都是固定的。 这种方法让学习率在合理的边界值之间循环变化。 这是有帮助的,因为如果我们卡在鞍点上,提高学习速度可以更快速地穿越鞍点高原。

学习率(learning rate或作lr)是指在优化算法中更新网络权重的幅度大小。学习率可以是恒定的、逐渐降低的,基于动量的或者是自适应的。不同的优化算法决定不同的学习率。当学习率过大则可能导致模型不收敛,损失loss不断上下震荡;学习率过小则导致模型收敛速度偏慢,需要更长的时间训练。通常lr取值为[0.01,0.001,0.0001]

(2)批次大小batch_size

批次大小是每一次训练神经网络送入模型的样本数,在卷积神经网络中,大批次通常可使网络更快收敛,但由于内存资源的限制,批次过大可能会导致内存不够用或程序内核崩溃。bath_size通常取值为[16,32,64,128]

(3)优化器optimizer

目前Adam是快速收敛且常被使用的优化器。随机梯度下降(SGD)虽然收敛偏慢,但是加入动量Momentum可加快收敛,同时带动量的随机梯度下降算法有更好的最优解,即模型收敛后会有更高的准确性。通常若追求速度则用Adam更多。

(4)迭代次数

迭代次数是指整个训练集输入到神经网络进行训练的次数,当测试错误率和训练错误率相差较小时,可认为当前迭代次数合适;当测试错误率先变小后变大时则说明迭代次数过大了,需要减小迭代次数,否则容易出现过拟合。

(5)激活函数

在神经网络中,激活函数不是真的去激活什么,而是用激活函数给神经网络加入一些非线性因素,使得网络可以更好地解决较为复杂的问题。比如有些问题是线性可分的,而现实场景中更多问题不是线性可分的,若不使用激活函数则难以拟合非线性问题,测试时会有低准确率。所以激活函数主要是非线性的,如sigmoid、tanh、relu。sigmoid函数通常用于二分类,但要防止梯度消失,故适合浅层神经网络且需要配备较小的初始化权重,tanh函数具有中心对称性,适合于有对称性的二分类。在深度学习中,relu是使用最多的激活函数,简单又避免了梯度消失。文章来源地址https://www.toymoban.com/news/detail-851859.html

到了这里,关于神经网络中的超参数调整的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 神经网络训练中的 data splits 是什么

    在神经网络训练中,\\\"data splits\\\" 是指将可用数据集划分为不同的子集,以便在训练、验证和测试过程中使用。 通常,常见的数据拆分包括以下几个部分: 训练集(Training Set):这是用于训练神经网络模型的数据子集。通过在训练集上迭代训练模型,神经网络可以学习特征和模

    2024年02月16日
    浏览(39)
  • 神经网络训练中的欠拟合、过拟合问题

    神经网络在数据之海中打捞规律,自成模型。这个过程全权由电脑完成,也因此我们担心它是否是一种泛化的模式,在其它「海域」继续工作时,它能否也能得到正确的结果?如何发现 可以泛化的模式 是机器学习的根本问题。 通常,模型越复杂、训练样本越少,它的泛化能

    2024年02月02日
    浏览(61)
  • 矩阵内积在神经网络训练中的关键作用

    在过去的几年里,神经网络技术在人工智能领域取得了显著的进展。这主要归功于深度学习(Deep Learning)技术的发展,深度学习是一种通过多层神经网络自动学习表示的技术,它已经成功地应用于图像识别、自然语言处理、语音识别等多个领域。 在深度学习中,神经网络的训练

    2024年02月21日
    浏览(41)
  • 大规模参数服务器上的神经网络训练优化——Facebook 研究团队进展报告

    作者:禅与计算机程序设计艺术 随着深度学习在图像、自然语言处理等领域的广泛应用,其模型的规模也越来越大,训练所需要的时间也越来越长。为了加快训练速度,参数服务器(Parameter Server)模式被提出,将神经网络训练过程中的参数分配到多个计算机上,并通过统一

    2024年02月06日
    浏览(44)
  • 使用FORCE训练的脉冲神经网络中的监督学习(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 1.1第一代神经网络 1.2 第二代神经网络:BP 神经网络 1.

    2023年04月26日
    浏览(79)
  • 微结构MRI参数估计的神经网络:在白质扩散-弛豫模型中的应用

    导读 通过使用生物物理模型来解释弛豫-扩散MRI大脑数据,可以研究白质微观结构的具体特征。尽管更复杂的模型有可能揭示组织的更多细节,但也会导致参数估计耗时较长,由于简并拟合地形中普遍存在局部最小值,这些参数估计可能会收敛到不准确的解。已提出机器学习

    2023年04月17日
    浏览(40)
  • bp神经网络参数怎么设置,神经网络参数个数计算

    神经网络各个网络参数设定原则:①、网络节点  网络输入层神经元节点数就是系统的特征因子(自变量)个数,输出层神经元节点数就是系统目标个数。隐层节点选按经验选取,一般设为输入层节点数的75%。 如果输入层有7个节点,输出层1个节点,那么隐含层可暂设为5个节点

    2024年02月06日
    浏览(47)
  • openmv云端训练神经网络自动生成openmv的神经网络模型

    打开openmv工具栏如图所示,点击新数据集  弹出如下界面,这里我选择的是我自己新建的new date文件夹,你们选择自己新建的文件夹即可  接下来我们点击左边红框框起来的地方,可得到中间那个界面,可自己创建名称  左上角就是我创建好的两个,接下来我们点击下面红框

    2024年02月12日
    浏览(40)
  • 利用GPU训练神经网络

    确实训练得要快多了 如果不确定是否有GPU,这种写法更好 判断一下,如果有再执行;这样才在CPU或者GPU上都能跑,优先GPU 修改部分代码 其实模型和损失函数不需另外赋值,但训练和测试部分需要

    2024年01月16日
    浏览(38)
  • 神经网络变得轻松(第二部分):网络训练和测试

    概述 在上一篇名为神经网络变得轻松的文章中,我们曾研究过利用 赫兹量化交易软件配合完全连接的神经网络一起操作的 CNet 构造原理。 在本文中,我将演示一个示例,说明如何在 EA 中利用该类,并在实际条件下评估该类。 1. 定义问题 在开始创建智能交易系统之前,必须

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包