构建第一个卷积神经网络模型的动手指南

概述

本文将简要讨论卷积神经网络(CNN),这是一种专为图像相关任务设计的特殊神经网络。

本文将主要关注CNN的实现部分。

d3e9c98d0cb68a620f37e741e3c94d0e.gif

目录

  • 介绍

  • CNN 模型架构中的主要组成部分

    • 卷积层

    • 池化层

    • 全连接层

  • 代码实现

    • 步骤1:导入必要的库

    • 步骤2:下载训练和测试数据集

    • 步骤3:拆分训练集进行训练和验证

    • 步骤4:使用 Dataloader 将数据集加载到内存中

    • 步骤5:定义架构

    • 步骤6:定义损失函数

    • 步骤7:实施训练和验证算法

    • 步骤8:训练和评估阶段

    • 步骤9:测试阶段

    • 步骤 10 使用样本进行测试

  • 结论

介绍

卷积神经网络由 Yann LeCun 和 Yoshua Bengio 在 1995 年引入,后来证明在图像领域显示出非凡的结果。

那么,当应用于图像领域时,它们与普通神经网络相比有何特别之处?

我将用一个简单的例子来解释其中的一个原因。考虑到任务是对手写数字图像进行分类,下面给出了一些来自训练集的样本。

80afaf8fe6e0cd8876625511730a11db.png

如果你正确观察,你会发现所有数字都出现在相应图像的中心。如果测试图像的类型相似,用这些图像训练一个正常的神经网络模型可能会得到很好的结果。

但是如果测试图像如下所示呢?

41d3982d63090946590239eb9cb13984.png

这里数字九出现在图像的角落。如果我们使用一个简单的神经网络模型来对这张图片进行分类,我们的模型可能会分类失败。

但是,如果将相同的测试图像提供给 CNN 模型,则它很可能会正确分类。它性能更好的原因是它在图像中寻找空间特征。

对于上述情况本身,即使数字 9 位于帧的左角,经过训练的 CNN 模型也会捕获图像中的特征,并且很可能预测该数字是数字 9。普通的神经网络无法做到这种程度。

现在让我们简要讨论一下 CNN 的主要构建块。

CNN 模型架构中的主要组成部分

03517d64c1b355017e26aa9a04e9d43a.png

这是一个简单的 CNN 模型,用于对图像是否包含猫进行分类。

因此,CNN 的主要组成部分是:

  1. 卷积层

  2. 池化层

  3. 全连接层

卷积层 

卷积层帮助我们提取图像中存在的特征。这种提取是在滤波器的帮助下实现的。

请遵守以下操作。

979a00779222d941dda7974f8491d674.gif

在这里,我们可以看到一个窗口在整个图像上滑动,其中图像表示为网格。

现在让我们看看如何进行卷积运算。

b8a62234aa42798d5f6558d33155d671.png

假设输入特征图是我们的图像,卷积滤波器是我们要滑过的窗口。

现在让我们观察卷积运算的实例之一。

e0d8bbe4770402af39ac2ccd8fb15469.png

当卷积滤

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值