gpt4 book ai didi

machine-learning - 具有更高抽象级别的机器学习

转载 作者:行者123 更新时间:2023-11-30 08:33:28 24 4
gpt4 key购买 nike

我想知道如何让机器学习算法以更高的抽象级别进行思考 - 我似乎找不到任何这方面的资源。

假设我使用包含 1000 个标记示例的数据集训练了一种机器学习算法来识别猫。我是否需要构建一个全新的算法并在 1000 个新数据点上训练它来识别狗,即使猫和狗有点相似?有没有办法做一些事情,我向猫算法提供一些狗的图片(远少于 1000 张),现在它也能够检测到狗了?必须重新训练算法来完成非常相似的事情(到目前为止我一直在做),这似乎很乏味。

很抱歉,如果这个问题看起来非常初级。我对机器学习非常陌生(没有上过任何类(class)或任何东西);到目前为止,我只使用了非常简单的分类算法和基本 tensorflow 。

最佳答案

是的,实际上您正在寻找的东西称为迁移学习,它实际上在深度学习尤其是当今的图像识别中非常常见。

以下是转移学习的工作原理(直观地):

就您的示例而言,您的模型已经很好地学会了识别猫。但为了使模型能够识别图像(注意:计算机将图像视为像素数组,仅此而已)是否是猫,它首先需要能够看到更简单的特征(例如线条) 、曲线、角、圆)。我们将这些称为低级功能。通过组合这些特征,模型现在可以学习如何查看更高级别的特征,或更复杂的形状,可能是特定领域的(例如眼睛、耳朵、爪子、尾部)。现在这些高级特征被传递给一个简单的分类器来告诉我们它是否是猫。

现在假设我们想要制作一个模型来识别图像是否是狗。通常我们必须从头开始训练它,但我们真的必须这样做吗?事实上,!我们可以利用从猫模型中学到的一些知识来让我们的生活变得更轻松。事实证明,猫模型必须首先学习的这些低级特征(线条、边缘等)几乎是通用的,可以用于任何图像识别任务!因此,我们可以按原样使用这些低级特征,调整高级特征,最后完全训练分类器。因此,通过最少的训练,我们就有了一个可以学习如何识别狗的模型!

一旦您了解了这些功能,整个概念就会变得更加清晰:

在底部,您可以看到可用于任何图像相关任务的通用低级功能。然后,每个模型从低级特征创建自己的高级特征。这意味着一旦模型学会了提取这些知识,这些知识就可以传递给另一个模型。

除了减少训练时间之外,模型实际上可以受益于较大的训练集初始模型的训练!随后,正如您所说,第二个模型可以使用比第一个模型更少的图像进行训练!

这在实践中是如何完成的?

最简单的方法是在第一个任务(在您的例子中是猫)上训练卷积神经网络,然后使用相同的架构训练第二个任务关于第二个任务(狗)。诀窍是将第二个模型的权重初始化为第一个模型的权重。然后,您可以选择卡住模型的第一层,因为这些层对应于模型已经学会提取的低级特征。

这个过程实际上非常常见,以至于当今训练的大多数图像识别模型的权重都是从另一个预训练模型初始化的。

有什么例子吗?

我第一次看到这个是在Cats vs Dogs kaggle competition期间,排名最高的参赛者之一只是下载了在 ImageNet 数据集上预训练的模型的权重,然后训练模型大约 5 分钟(顺便说一句,这个过程通常称为微调)。

关于machine-learning - 具有更高抽象级别的机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51663206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com