HALCON 20.11:深度学习笔记(5)

HALCON 20.11.0.0中,实现了深度学习方法。关于超参数的有关设置内容如下:

不同的DL方法被设计用于不同的任务,它们的构建方式也会有所不同。它们都有一个共同点,即在模型的训练过程中都面临着一个最小化问题。

训练网络或子网络,一个目标是努力使适当的损失函数最小化,参见“网络和训练过程”一节。

为此,有一组进一步的参数,这些参数是在开始训练之前设置的,在训练期间未进行优化。我们将这些参数称为超参数

对于DL模型,您可以设置更改策略,指定您希望在培训期间何时以及如何更改这些超参数。

在本节中,我们将解释不同超参数的概念。注意,某些方法有额外的超参数,你可以在它们各自的章节中找到更多的信息。

如前所述,损失比较来自网络的预测与图像内容的给定信息。损失决定惩罚偏差。训练网络以这样的方式更新滤波器权值,使损失受到的惩罚更少,从而使损失结果得到优化。

为此,需要从训练数据集中获取一定数量的数据。对于这个子集,计算损失的梯度,并修改网络以更新其相应的滤波权重。

现在,对下一个数据子集重复这一过程,直到整个训练数据被处理。这些训练数据的子集被称为,这些子集的大小,即“batch_size”,决定了一个批处理的数据数量,并作为结果一起处理。

对整个训练数据的完整迭代称为epoch。对训练数据进行多次迭代是有益的。迭代次数由“epochs”定义。因此,“epochs”决定了算法在训练集上循环多少次。

一些模型(如异常检测)一次训练使用整个数据集。对于其他模型,数据集按批处理,为了做到这一点,使用了随机梯度下降算法SGD(Stochastic Gradient Descent)。这涉及到更多的参数,将在下面解释。

在每次计算损失梯度后,滤波器权值被更新。

对于这个更新,有两个重要的超参数:

'learning_rate',它决定更新的损失函数参数(过滤器权重)上的梯度的权重,以及间隔内的'momentum',它指定以前更新的影响。更多信息可以在train_dl_model_batch的文档中找到。

简单地说,当我们更新损失函数参数时,我们仍然记得上次更新所采取的步骤。

现在,我们在梯度方向上迈出一步,其长度取决于学习速率;此外,我们重复上次所做的步骤,但这次只乘以上次的时间。

下图给出了可视化效果。学习率过大可能会导致算法发散,学习率过小则会花费不必要的多步。

因此,习惯上从一个较大的学习率开始,并在训练过程中潜在地降低它。对于动量,动量方法没有影响,所以只有梯度决定更新向量。

Sketch of the 'learning_rate' and the 'momentum' during an actualization step

The gradient step: the learning rate λ times the gradient g (λg - dashed lines)

The momentum step: the momentum λ times the previous update vector v (μv - dotted lines)

Together, they form the actual step: the update vector v (v - solid lines).

为了防止神经网络的过拟合(见下文“欠拟合和过拟合的风险”部分),可以使用正则化。利用这种技术,在损失函数中添加了额外的一项。

一种可能的正则化类型是权重衰减,有关详细信息,请参阅train_dl_model_batch文档。

它的工作原理是惩罚较大的权重,即将权重推到零。简单地说,这种正则化倾向于更简单的模型,这些模型不太可能适应训练数据中的噪声,并能更好地泛化。

它可以通过超参数'weight_prior’进行设置。选择它的值需要权衡模型的泛化能力、过拟合能力和欠拟合能力。

如果'weight_prior’太小,模型可能会过度拟合,如果它太大,模型可能会失去很好地拟合数据的能力,因为所有权重实际上都是零。

除了训练数据和所有的超参数,还有许多不同的方面可以对这种复杂算法结果产生影响。

为了提高网络性能,通常添加训练数据也会有所帮助。

请注意,是否收集更多的数据是一个好的解决方案,也总是取决于简单模型是否难以实现。

通常,一个小的额外部分不会显著改变整体性能。

(0)

相关推荐

  • 为什么机器学习算法难以优化?一文详解算法优化内部机制

    作者|小舟 来源|机器之心 损失线性组合是正确的选择吗?这篇文章或许能够给你答案. 在机器学习中,损失的线性组合无处不在.虽然它们带有一些陷阱,但仍然被广泛用作标准方法.这些线性组合常常让算法难以调整 ...

  • Caffe代码阅读

    最近忙着看TI没有及时写文章,今天赶紧补一篇-- Net是Caffe代码中一个比较核心的类,往下看它封装了所有的Layer,构建起了整个神经网络:往上看它对外提供了前向后向计算,以及核心数据结构的访问 ...

  • DL一(ML基础知识)

    基础知识ML 在进行深度学习前,根据学习网站的建议,首先学习机器学习的基础课程,学习资料主要是Andrew讲的ShortVideo,网址:http://openclassroom.stanford.e ...

  • tensorflow 学习笔记-- 深度学习中epochs batchsize iteration的概念

    深度学习框架中涉及很多参数,如果一些基本的参数如果不了解,那么你去看任何一个深度学习框架是都会觉得很困难,下面介绍几个新手常问的几个参数. batch 深度学习的优化算法,说白了就是梯度下降.每次的参 ...

  • 梯度下降法的三种形式BGD、SGD以及MBGD

    阅读目录 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD 4. 总结 在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法 ...

  • 一文搞懂NLP中的对抗训练

    来自:李rumor 本文主要串烧了FGSM, FGM, PGD, FreeAT, YOPO, FreeLB, SMART这几种对抗训练方法,希望能使各位大佬炼出的丹药更加圆润有光泽,一颗永流传 简介 ...

  • 树模型奠基性论文解读| GBM: Gradient Boosting Machine

    树模型奠基性论文解读| GBM: Gradient Boosting Machine

  • CS224N课程笔记:神经网络与反向传播

    NewBeeNLP原创出品 公众号专栏作者@Ryan 知乎 | 机器学习课程笔记 CS224N课程笔记系列,持续更新中 课程主页:http://web.stanford.edu/class/cs224 ...

  • R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化

    原文链接:http://tecdat.cn/?p=22336 Boosting算法是一种把若干个分类器整合为一个分类器的方法,也就是一种集成分类方法(Ensemble Method). 计量经济学的视 ...

  • HALCON 20.11:深度学习笔记(10)

    HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何在训练和推理阶段使用基于深度学习的分类. 基于深度学习的分类是一种对一幅图像分配一组置信值的方法.这些置信度值表明图像属于每个可 ...

  • HALCON 20.11:深度学习笔记(12)

    HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何使用基于深度学习的语义分割,包括训练和推理阶段. 通过语义分割,我们使用深度学习(DL)网络将输入图像的每个像素分配到一个类. ...

  • HALCON 20.11:深度学习笔记(11)

    HALCON 20.11.0.0中,实现了深度学习方法. 本章讲解了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在图像中找到不同的实例,并将它们分配给一个类.实例可以部分重叠,但仍然可以区 ...

  • HALCON 20.11:深度学习笔记(9)

    HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何使用基于深度学习的异常检测. 通过异常检测,我们想要检测图像是否包含异常.异常指的是偏离常规的.未知的东西. 异常检测的例子:输 ...

  • HALCON 20.11:深度学习笔记(8)

    HALCON 20.11.0.0中,实现了深度学习方法. 本章解释HALCON中深度学习(DL)模型的一般概念和数据处理. 从概念上讲,HALCON中的深度学习模型是深度神经网络的内部表示. 每个深度 ...

  • HALCON 20.11:深度学习笔记(7)

    HALCON 20.11.0.0中,实现了深度学习方法.下面,我们将描述深度学习环境中使用的最重要的术语: anchor (锚) Anchors are fixed bounding boxes. T ...

  • HALCON 20.11:深度学习笔记(6)

    HALCON 20.11.0.0中,实现了深度学习方法.不同的DL方法有不同的结果.相应地,它们也使用不同的测量方法来确定网络的"好坏".在训练一个网络时,不同的模型会有不同的行为 ...

  • HALCON 20.11:深度学习笔记(4)

    HALCON 20.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的.整个网络的输出由许多预测组成.例如,对于一个分类任务,预测得到的每个 ...

  • HALCON 20.11:深度学习笔记(3)

    HALCON 20.11:深度学习笔记(3)---Data(数据) HALCON 20.11.0.0中,实现了深度学习方法.其中,关于术语"数据"的介绍如下: 术语"数据 ...