HALCON 21.11:深度学习笔记---网络和训练过程(4)

HALCON 21.11:深度学习笔记---网络和训练过程(4)

HALCON 21.11.0.0中,实现了深度学习方法。关于网络和训练过程如下:

在深度学习中,任务是通过网络发送输入图像来执行的。整个网络的输出由许多预测组成。例如,对于一个分类任务,预测会得到每个类的置信度,表示图像显示该类实例的可能性有多大。

具体的网络会有所不同,特别是从一种方法到另一种方法。一些方法,如对象检测,使用子网络生成特征图(参见下面和深度学习/对象检测, 实例分割中给出的解释)。在这里,我们将解释一个基本的卷积神经网络(CNN)。这种网络由一定数量的层或滤波器组成,这些层或滤波器按特定的方式排列和连接。一般来说,任何层都是执行特定任务的构建块。可以将它看作一个容器,它接收输入,根据函数转换输入,并将输出传入到下一层。因此,不同类型的层可以有不同的功能。在“分类解决方案指南”中给出了几个可能的例子。许多层或滤波器都有权重,参数也称为滤波器权重。这些是在网络训练过程中修改的参数。大多数层的输出都是特征图(feature map)。因此,特征映射的数量(层输出的深度)和大小(宽度和高度)取决于特定的层。

HALCON 21.11:深度学习笔记---网络和训练过程(4)_第1张图片

HALCON 21.11:深度学习笔记---网络和训练过程(4)_第2张图片

Schema of an extract of a possible classification network.

Below we show feature maps corresponding to the layers, zoomed to a uniform size.

为了训练一个网络完成特定的任务,需要添加损失函数。不同的任务有不同的损失函数,但它们都遵循以下原则。损失函数将网络的预测与给定的信息(在图像中可以找到什么(如果适用的话,还可以在哪里))进行比较,并对偏差进行惩罚。然后滤波器权值以使损失函数最小化的方式更新。因此,对网络进行特定任务的训练,力求使网络的损失(误差函数)最小化,希望这样做也能提高性能度量。在实际应用中,这种优化是通过计算梯度并相应地更新不同层的参数(过滤器权重)来实现的。这可以通过对训练数据进行多次迭代来重复。

还有一些额外的参数会影响训练,但这些参数并不是在常规训练中直接学到的。这些参数在开始训练之前已经设置了值。我们将最后一种类型的参数称为超参数,以区别于在训练过程中优化的网络参数。请参阅“设置训练参数:超参数”一节。

为了从零开始训练所有的滤波器权重,需要大量的资源。因此,我们可以从以下观察中获益。第一层检测底层特征,如边缘和曲线。下面各层的特征映射较小,但它们代表更复杂的特征。对于一个大型网络,底层特征足够通用,因此相应层的权值在不同任务之间不会有太大的变化。这就产生了一种称为迁移学习的技术:利用一个已经训练好的网络,再训练它以适应特定的任务,从而受益于底层已经相当合适的过滤器权重。因此,所需的资源要大大减少。虽然在大型数据集上进行训练时,网络通常会更可靠,但再训练所需的数据量也取决于任务的复杂性。迁移学习工作流程的基本模式在下面的图中通过分类显示出来。

HALCON 21.11:深度学习笔记---网络和训练过程(4)_第3张图片

 

Basic schema of transfer learning with the aid of classification.

(1) A pretrained network is read.

(2) Training phase, the network gets trained with the training data.

(3) The trained model with new capabilities.

(4) Inference phase, the trained network infers on new images.

你可能感兴趣的:(HALCON,Halcon,21,AI)