上一部分 6 –卷积猫和狗
在过去的几篇文章中,您已经了解了卷积神经网络及其在计算机视觉中的应用。您为时尚、马和人以及猫和狗构建了分类器。但有一个共同的主题是过度拟合的概念。我们只能获得有限的数据进行训练。您的神经网络可以非常擅长识别训练过的数据,但不一定擅长识别之前没有见过的数据。
为了帮助理解这一点,请
考虑以下场景。假设你一生中只见过这样的鞋子。那么对你来说,鞋子就是这个样子的。它们会覆盖脚踝。它们的鞋底是平的,有鞋带——所有这些东西。所以如果我给你看这张图片,你会立刻认出这里的所有东西都是鞋子——大的、小的、侧面的——它们仍然在你的脑海中,是鞋子。但如果我给你看这张图片呢?我们知道这是一只鞋,因为我们接触过像这样的鞋子。但同样,如果你见过的只是我之前提到的鞋子,你不会认出这双鞋。没有鞋带。鞋底完全不对。而且它可能没有覆盖你的脚踝。然后,你会在你认为构成鞋子的数据中过度拟合。
神经网络也是如此。如果它没
卢森堡移动数据 卢森堡拥有广泛的 4G 覆盖范围和不 卢森堡手机移动数据 断发展的 5G 基础设施,可提供可靠且快速的移动数据服务。得益于电信运营商具有竞争力的数据计划,当地人和游客都可以使用移动互联网。卢森堡作为欧洲首屈一指的银行和技术中心的形象因其最先进的数字基础设施而得到加强,这些基础设施可确保全国范围内不间断的连接。
有接触过看起来像高跟鞋的标签样本,那 入站营销中的人工智能:完整指南 么它就和我们假设的人只见过踝靴一样。当然,如果你没有数据,你就没有数据。但在许多情况下,神经网络会因为图像中以前没有见过的属性而过度拟合。但使用一种称为图像增强的技术,我们可能能够解决这个问题。这可能看起来有点模糊。让我们举个例子。
左边是一只猫,右边是一个人。计算机
视觉通过隔离特征来工作。因此,你可能会有一些特征,比如顶部的尖耳朵表示是猫,或者底部的两条腿表示是人。但就猫而言,例如右边的图像就是一只猫。你我都知道这一点。但计算机可能不知道,因为如果它只对像左边这样的图像进行训练,那么它会寻找图像顶部附近向上的三角形。但右边猫的耳朵看起来不是那样的。那么,如果我们在训练集上可以旋转图像呢?所以我们用一张像这样的带标签的猫图像进行训练。那么耳朵就和右边的猫一样了。所以通过使用旋转之类的变换,我们有效地创建了新的数据来训练。
好消息是,您已经拥有开始
使用图像增强技术所需的所有工具,可以人为地扩展数据集,为神经网络的训练提供新信息。这确实可以帮助您解决过度拟合问题。
首先,您可以使用图像数据生成器。
train_datagen = ImageDataGenerator(重新缩放= 1 ./ 255 )
您已经看到了图像处理中的这一功能,您已经通过重新缩 bmb目录 放来规范化图像。它支持更多参数。让我们来探索一些示例。
训练数据生成器= 图像数据生成器(
重新缩放= 1. / 255,
旋转范围= 40,
宽度移位范围= 0.2,
高度移位范围= 0.2,
剪切范围= 0.2,
缩放范围= 0.2,
水平翻转= True,
填充模式= '最近')
这是扩展的图像数据生成器
构造函数,我在其中添加了更多参数,以及您已经看到的重新缩放参数。您已经看到了rotation_range
。这将随机旋转每幅图像,旋转量最多为参数化的量,正负皆可。所以在这里您可以看到它是 40 度。因此图像将向左或向右旋转该量。
宽度和高度偏移范围将使图像在框架内移动该量。因此,在这里,图像的宽度或高度最多可以移动 20%,这可以产生这样的效果,即图像宽度偏移,主体向左移动。共享可以产生出色的效果。您可以使用参数进行设置shear_range
。值从 0 到 1。因此,使用 0.2,您可以剪切最多 20%。要了解它何时有用,请考虑这些图像。
左侧图像来自“马或人”数据
集。该人站立并举起双手。右侧图像在数据集中没有任何类似图像。因此,可能无法将其归类为人类。例如,我们对站立姿势过度拟合。但如果左侧图像被剪切,它就会突然看起来更像右侧图像。网络在接受训练时可以训练识别右侧图像,并且不再仅对站立姿势过度拟合。
另一个例子是zoom_range
。这个参数给我们一个从 0 到 1 的值来缩放。这将给我们一个从 0% 到 20% 的图像大小的随机缩放。让我们再看一个例子来说明它为什么有用。左边的图像是来自《马或人》训练集中的女性。右边的女人很像。但由于图像的取景方式,我们看不到她的腿。同样,神经网络可能过度适应看到包括腿在内的全身。右边的女士显然是人类。但神经网络可能无法识别这一点。
但如果我们放大左边的图片,它现在与右边的女人更加相似。如果我们用左边的数据进行训练,我们也许能够识别出右边的女人是人类。
另一个例子是horizontal_flip
。如果将其
设置为 true,则图像将被随机翻转。让我们看一个例子来了解它如何有效。左侧的图像来自 Horses and Humans 数据集。如您所见,她举起了右手。右边的女人非常相似。但她举起了左手。如果训练集只有像左侧这样的图像,我们可能会对举起左手的人产生过度拟合。但是如果我们随机翻转,我们可以有效地扩展我们的数据集以包括举起左手的人。
Fill_mode
equalsnearest
用于填充图像中可能在倾斜等某些操作中丢失的部分。
以上就是对图像增强的一些操作的介绍——这是一个非常酷的工具,可以帮助您避免基于图像的数据集过度拟合。
我希望这对你有用。
下一步:第 8 部分 –自然语言处理的标记化