0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kaggle知识点:训练神经网络的7个技巧

颖脉Imgtec 2023-12-30 08:27 次阅读

来源:Coggle数据科学


神经网络模型使用随机梯度下降进行训练,模型权重使用反向传播算法进行更新。通过训练神经网络模型解决的优化问题非常具有挑战性,尽管这些算法在实践中表现出色,但不能保证它们会及时收敛到一个良好的模型。

  • 训练神经网络的挑战在训练数据集的新示例之间取得平衡。
  • 七个具体的技巧,可帮助您更快地训练出更好的神经网络模型。

学习和泛化

使用反向传播设计和训练网络需要做出许多看似任意的选择,例如节点的数量和类型、层的数量、学习率、训练和测试集等。这些选择可能至关重要,但却没有百分之百可靠的决策法则,因为它们在很大程度上取决于问题和数据。训练神经网络模型的目标最具挑战性,因为它要解决两个难题:

  • 学习训练数据集以最小化损失。
  • 泛化模型性能以便在未见过的示例上进行预测。

在这些问题之间存在权衡,因为学得太好的模型泛化能力可能较差,而泛化良好的模型可能欠拟合。训练神经网络的目标是在这两方面找到一个良好的平衡。在拟合神经网络模型时,这些术语可以定义为:

  • 偏差:衡量网络输出在所有数据集上的平均差异与期望函数的差异。

方差:衡量网络输出在数据集之间变化的程度。

这种表述将模型的容量定义为偏差的选择,控制可以学习的函数范围。它将方差视为训练过程的函数,并在过拟合训练数据集和泛化误差之间取得平衡。

  • 在训练初期,偏差较大,因为网络输出与期望函数相差很远。方差非常小,因为数据尚未产生太大的影响。在训练后期,偏差较小,因为网络已经学到了基本函数。

然而,如果训练时间太长,网络还将学到特定数据集的噪声,这称为过度训练。在这种情况下,方差将很大,因为噪声在数据集之间变化。


技巧1:随机梯度下降与批量学习

随机梯度下降,也称为在线梯度下降,是指从训练数据集中随机选择一个示例,估算误差梯度,然后更新模型参数(权重)的算法版本。它的效果是快速训练模型,尽管可能会导致模型权重的大幅、嘈杂的更新。

通常情况下,基本反向传播首选随机学习,原因有三:

  1. 随机学习通常比批量学习快得多。
  2. 随机学习通常会导致更好的解决方案。
  3. 随机学习可用于跟踪变化。

批量梯度下降涉及使用训练数据集中所有示例的平均值来估算误差梯度。它执行更快,从理论上更容易理解,但导致学习速度较慢。

尽管随机学习具有诸多优势,仍有理由考虑使用批量学习:

  1. 收敛条件是众所周知的。
  2. 许多加速技术(例如共轭梯度)仅在批量学习中操作。

对权重动态和收敛速率的理论分析更简单。

尽管批量更新具有优势,但在处理非常大的数据集时,随机学习仍然通常是首选方法,因为它更简单更快。


技巧2:打乱样本顺序

神经网络从最意外的样本中学得最快。因此,建议在每次迭代中选择对系统最不熟悉的样本。实现这个技巧的一个简单方法是确保用于更新模型参数的连续示例来自不同的类别。

这个技巧也可以通过向模型展示并重新展示它在进行预测时犯的最多错误或产生最多错误的示例来实现。这种方法可能是有效的,但如果在训练期间过度表示的示例是离群值,它也可能导致灾难。

选择信息内容最大的示例:

  1. 打乱训练集,使连续的训练示例永远(很少)不属于同一类别。

更频繁地呈现产生大误差的输入示例,而不是产生小误差的示例。


技巧3:标准化输入

当训练数据集中的示例总和为零时,神经网络通常学得更快。这可以通过从每个输入变量中减去平均值(称为居中)来实现。通常,如果训练集上每个输入变量的平均值接近零,收敛速度会更快。

此外将输入居中也会提高模型对来自先前层的输入到隐藏层的收敛性。这是令人着迷的,因为它为后来近15年发展并广泛流行的批量归一化技术奠定了基础。

因此,最好将输入移动,以使训练集的平均值接近零。这个启发式方法应该应用于所有层,这意味着我们希望节点的输出的平均值接近零,因为这些输出是下一层的输入。

转换输入

  1. 训练集上每个输入变量的平均值应接近零。
  2. 缩放输入变量,使它们的协方差大致相同。

如果可能的话,输入变量应该无关联。


技巧4:Sigmoid 激活函数

非线性激活函数赋予神经网络非线性能力。其中一种最常见的激活函数形式是 Sigmoid。

在隐藏层使用 logistic 和 tanh 激活函数不再是一个合理的默认选择,因为使用 ReLU 的性能模型收敛速度更快。


技巧5:选择目标值

在二元分类问题的情况下,目标变量可能是 logistic 激活函数的渐近值集合 {0, 1},或者是双曲正切函数的渐近值集合 {-1, 1},分别对应使用交叉熵或铰链损失函数,即使在现代神经网络中也是如此。在激活函数的饱和点(边缘)取得值可能需要更大的权重,这可能使模型变得不稳定。


技巧6:初始化权重

权重的初始值对训练过程有很大影响。权重应该随机选择,但以 sigmoid 函数的线性区域为主要激活区域。这个建议也适用于 ReLU 的权重激活,其中函数的线性部分是正的。

初始权重对模型学习有重要影响,其中大权重使激活函数饱和,导致不稳定的学习,而小权重导致梯度非常小,进而学习缓慢。理想情况下,我们寻求模型权重位于激活函数的线性(非曲线)部分之上。


技巧7:选择学习率

学习率是模型权重在算法的每次迭代中更新的量。较小的学习率可能导致收敛较慢,但可能得到更好的结果,而较大的学习率可能导致更快的收敛,但可能得到不太理想的结果。

建议当权重值开始来回变化,例如振荡时,减小学习率。

  • 大多数方案在权重向量“振荡”时减小学习率,并在权重向量遵循相对稳定方向时增加学习率。

显然,为网络中的每个权重选择不同的学习率(eta)可以提高收敛性。[…] 主要思想是确保网络中的所有权重大致以相同的速度收敛。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4574

    浏览量

    98752
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47689
收藏 人收藏

    评论

    相关推荐

    BP神经网络算法的基本流程

    训练经过约50次左右迭代,在训练集上已经能达到99%的正确率,在测试集上的正确率为90.03%,单纯的BP神经网络能够提升的空间不大了,但kaggle上已经有人有卷积
    发表于 03-20 09:58 396次阅读
    BP<b class='flag-5'>神经网络</b>算法的基本流程

    如何训练这些神经网络来解决问题?

    神经网络建模中,经常会出现关于神经网络应该有多复杂的问题,即它应该有多少层,或者它的滤波器矩阵应该有多大。这个问题没有简单的答案。与此相关,讨论网络过拟合和欠拟合非常重要。过拟合是模型过于复杂
    发表于 11-24 15:35 311次阅读
    如何<b class='flag-5'>训练</b>这些<b class='flag-5'>神经网络</b>来解决问题?

    卷积神经网络(CNN)的工作原理 神经网络训练过程

    前文《卷积神经网络简介:什么是机器学习?》中,我们比较了在微控制器中运行经典线性规划程序与运行CNN的区别,并展示了CNN的优势。我们还探讨了CIFAR网络,该网络可以对图像中的猫、房子或自行车等对象进行分类,还可以执行简单的语
    发表于 09-05 10:19 933次阅读
    卷积<b class='flag-5'>神经网络</b>(CNN)的工作原理 <b class='flag-5'>神经网络</b>的<b class='flag-5'>训练</b>过程

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构和功能的计算模型,也被称为
    的头像 发表于 08-22 16:45 3438次阅读

    卷积神经网络主要包括哪些 卷积神经网络组成部分

    ,并且在处理图像、音频、文本等方面具有非常出色的表现。本文将从卷积神经网络的原理、架构、训练、应用等方面进行详细介绍。 一、卷积神经网络原理 1.1 卷积操作 卷积是卷积神经网络最基本
    的头像 发表于 08-21 17:15 1112次阅读

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型  卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习
    的头像 发表于 08-21 17:11 810次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预测和分类。卷积
    发表于 08-21 17:07 2346次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    卷积神经网络的基本原理 卷积神经网络发展历程 卷积神经网络三大特点  卷积神经网络的基本原理 卷积神经网络(Convolutional Ne
    的头像 发表于 08-21 16:49 1451次阅读

    卷积神经网络如何识别图像

    为多层卷积层、池化层和全连接层。CNN模型通过训练识别并学习高度复杂的图像模式,对于识别物体和进行图像分类等任务有着非常优越的表现。本文将会详细介绍卷积神经网络如何识别图像,主要包括以下几个方面: 1. 卷积神经网络的基本结构和
    的头像 发表于 08-21 16:49 1426次阅读

    卷积神经网络模型训练步骤

    卷积神经网络模型训练步骤  卷积神经网络(Convolutional Neural Network, CNN)是一种常用的深度学习算法,广泛应用于图像识别、语音识别、自然语言处理等诸多领域。CNN
    的头像 发表于 08-21 16:42 1064次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的人工
    的头像 发表于 08-17 16:30 921次阅读

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备上

    有很多方法可以将经过训练神经网络模型部署到移动或嵌入式设备上。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    发表于 08-02 06:43

    什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

    神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。
    的头像 发表于 07-26 18:28 1984次阅读
    什么是<b class='flag-5'>神经网络</b>?为什么说<b class='flag-5'>神经网络</b>很重要?<b class='flag-5'>神经网络</b>如何工作?

    浅析三种主流深度神经网络

    来源:青榴实验室 1、引子 深度神经网络(DNNs)最近在图像分类或语音识别等复杂机器学习任务中表现出的优异性能令人印象深刻。 在本文中,我们将了解深度神经网络的基础知识和三个最流行神经网络
    的头像 发表于 05-15 14:20 611次阅读
    浅析三种主流深度<b class='flag-5'>神经网络</b>

    三个最流行神经网络

    在本文中,我们将了解深度神经网络的基础知识和三个最流行神经网络:多层神经网络(MLP),卷积神经网络(CNN)和递归
    发表于 05-15 14:19 1175次阅读
    三个最流行<b class='flag-5'>神经网络</b>