从头开始训练深度学习模型有什么优点或缺点?

数据挖掘 神经网络 深度学习 张量流 数据科学模型 约洛
2022-03-12 12:57:43

我想知道优点和缺点。另外,转移学习的优点和缺点是什么?

2个回答

(建议和编辑将不胜感激)

让我们讨论从头开始训练深度学习模型的优势:

  1. 从头开始构建和训练 NN 在研究领域非常有用。
  2. 您将对您的模型有最基本的了解,并且可以根据需要在需要时对其进行修改。
  3. 它在大小和训练时间方面会更有效(因为与为不止一个目的训练的任何预训练模型相比,层数可能更少)。最好​​的例子是 VGG16。在 VGG16 的情况下,它训练了 1000 种不同的类别,即使我们只想要 2 个类别,我们也必须训练整个模型,因为如果不深入了解 VGG16 的架构,我们就无法更改层。
  4. 对于任何初学者(比如我)来说,从头开始构建并使用预训练模型都是有益的。
  5. 不需要精通深度学习即可使用预训练模型。

缺点:

  1. 许多预训练模型的训练目的较少或模式不同,因此在某些情况下可能不适合。
  2. 从头开始训练大型模型需要大量资源(时间和计算能力)。

从头开始训练深度学习模型和迁移学习的优势是主观的。这在很大程度上取决于您要解决的问题、时间限制、数据的可用性和您拥有的计算资源。

让我们考虑一个场景,您想为基于人脸图像的情感分类等任务训练一个深度学习模型。你可以

  1. 使用预训练模型:您可以使用预训练模型(例如,Resnet-50 或 VGG-16)作为获取图像特征的主干,并在其之上训练分类器(例如两层神经网络)。在这里,你保持从预训练模型中获得的主干部分固定,只允许分类器的参数改变。当您想要快速训练模型或没有太多计算资源时,这种方法是理想的。在这种情况下,性能可能不是最好的,因为预训练的主干可能会受到域适应的影响。

  2. 从头开始训练模型:您可以针对您的问题从头开始训练深度学习模型(例如 Resnet-50 或 VGG-16)。这意味着您使用新参数初始化模型,即不是从预训练模型获得的。这需要更多的计算资源(或时间)来训练,但会从训练数据中学习所有参数。如果训练数据足够多,则在使用该方法进行训练时,与方法 1 中的模型等效的模型应该会表现得更好。

  3. 传输和微调:您可以使用预训练参数初始化模型(再说一次 Resnet-50 或 VGG-16),并对数据集进行微调。对于相同的模型,这种方法比方法 1 需要更多的计算资源,并且需要与方法 2 相当的计算资源。如果源域(模型预训练的任务)与目标域(您要训练模型的任务)相关,则迁移学习是有利的。例如,Imagenet上的分类任务与人脸图像的情感分类有关。如果您想要获得最佳性能,这是最常用的方法。

在此处了解有关迁移学习的更多信息

TL;博士:

  • 如果您有足够的计算资源,请从相关任务中转移一个预训练模型并对其进行微调。

  • 如果您的计算资源或时间不足,请使用预训练模型作为主干并针对您的任务调整头部。

  • 如果您找不到用于迁移学习的良好源域,或者您不想预训练模型,或者训练数据足够大,那么您可以在不使用预训练参数的情况下从头开始训练模型。