不懂卷积神经网络?别怕,看完这几张萌图你就明白了

简介:
本文来自AI新媒体量子位(QbitAI)

这篇文章用最简明易懂的方式解释了卷积神经网络(CNN)的基本原理,并绕开了里面的数学理论。

同时,如果想对从头开始构建CNN网络之类的问题感兴趣,作者推荐去读《 Artificial Intelligence for Humans Volume 3: Deep Learning and Neural Networks》中第10章节的内容。

不多说了,开始CNN之旅——

网络结构

CNN的模型通常建立在前馈神经网络模型之上,它的结构你也应该不陌生。不同是的,“隐藏层”将被以下这些层取代:

卷积层(Convolutional Layers)

池化层(Pooling Layers)

全连接层(稠密层,Dense Layers)

结构类似下图:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

卷积

在此阶段,输入图像被一个grid扫描,并作为输入传递到网络。之后,这个网络将一层卷积层应用于输入的图像,将它分割成包含3张图像的三维立方体结构。这3三张图像个框架分别呈现原图的红色、绿色和蓝色信息。

随后,它将卷积滤波器(也称神经元)应用到图像中,和用PhotoShop中的滤镜突出某些特征相似。例如在动画片《Doc And Mharti》中,用罗伯茨交叉边缘增强滤波器处理过的效果如下图所示:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 原图

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 处理后

可以想象,拥有100多个不同滤波器的神经网络筛选复杂特征的能力有多强大,这将大大助力它识别现实世界中事物。一旦神经网络已经将卷积滤波器应用到图像中,我们就能得到特征/激活图。

特征图谱会被指定区域内的特定神经元激活,比如我们将边缘检测滤波器添加到下面左图中,则它的激活图如右图所示:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 这些点代表0的行(表明这些区域可能是边缘)。在二维数组中,“30”的值表明图像区域存在边缘的可能性很高

激活层

当我们有了激活图,就能在其中让激活函数大显身手了,我们用研究人员的首选函数——ReLU激活函数(修正线性单元)举个例子。然而,一些研究人员仍然认为用Sigmoid函数或双曲切线能得到提供最佳的训练结果,但我不这么认为。

使用激活层是在系统中引入非线性,这样可以提高输入和输出的一般性。ReLU(x)函数只返回max(0、x)或简单地返回激活图中的负权值。

池化层

之后的最佳做法通常是在特征图中应用最大池化(或任何其他类型的池)。应用最大池化层的原理是扫描小型grid中的图像,用一个包含给定grid中最高值的单个单元替换每个grid:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

这样做的重要原因之一是,一旦我们知道给定特征在一个给定的输入区域,我们可以忽略特征的确切位置将数据普遍化,减少过拟合。举个例子,即使训练精度达到99%,但拿到没见过的新数据上测试时,它的精确度也只有50%。

输出层

最大池化层后我们讲讲剩下的另一个激活图,这是传递给全连接网络的一部分信息。它包含一个全连接层,将上一层中每个神经元的输出简单映射到全连接层的一个神经元上,并将softmax函数应用到输出中,就是和我们之前提到的ReLU函数类似的激活函数。

因为我们将用神经网络将图片分类,因此这里使用了softmax函数。softmax输出返回列表的概率求和为1,每个概率代表给定图像属于特定输出类的概率。但后来涉及到图像预测和修复任务时,线性激活函数的效果就比较好了。

值得注意的是,讲到这里我们只考虑了单卷积层和单池层的简单情况,如果要实现最佳精度通常需要它们多层堆叠。经过每个完整的迭代后,通过网络反向根据计算损失更新权重。

原文地址:https://authomaton.blogspot.co.uk/2017/10/machine-learning-but-funner-02.html

本文作者:林鳞
原文发布时间:2017-10-20 
相关文章
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习入门:理解卷积神经网络(CNN)
【9月更文挑战第14天】本文旨在为初学者提供一个关于卷积神经网络(CNN)的直观理解,通过简单的语言和比喻来揭示这一深度学习模型如何识别图像。我们将一起探索CNN的基本组成,包括卷积层、激活函数、池化层和全连接层,并了解它们如何协同工作以实现图像分类任务。文章末尾将给出一个简单的代码示例,帮助读者更好地理解CNN的工作原理。
19 7
|
2天前
|
机器学习/深度学习 算法 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第16天】本文将深入浅出地介绍卷积神经网络(CNN)的基本概念、结构和工作原理,同时通过一个实际的代码示例来展示如何在Python中使用Keras库构建一个简单的CNN模型进行图像识别。我们将看到,即使是初学者也能够通过简单的步骤实现深度学习的强大功能,进而探索其在复杂数据集上的应用潜力。
|
10天前
|
机器学习/深度学习 自然语言处理 自动驾驶
CNN的魅力:探索卷积神经网络的无限可能
卷积神经网络(Convolutional Neural Networks, CNN)作为人工智能的重要分支,在图像识别、自然语言处理、医疗诊断及自动驾驶等领域展现了卓越性能。本文将介绍CNN的起源、独特优势及其广泛应用,并通过具体代码示例展示如何使用TensorFlow和Keras构建和训练CNN模型。
|
10天前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。
|
10天前
|
编解码 人工智能 文件存储
卷积神经网络架构:EfficientNet结构的特点
EfficientNet是一种高效的卷积神经网络架构,它通过系统化的方法来提升模型的性能和效率。
18 1
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
深入浅出卷积神经网络(CNN)的奥秘
【9月更文挑战第3天】在人工智能的浪潮中,卷积神经网络(CNN)无疑是最耀眼的明星之一。本文将通过浅显易懂的语言,带你一探CNN的核心原理和应用实例。从图像处理到自然语言处理,CNN如何改变我们对数据的解读方式?让我们一起走进CNN的世界,探索它的魅力所在。
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种结合粒子群优化(PSO)与分组卷积神经网络(GroupCNN)的时间序列预测算法。该算法通过PSO寻找最优网络结构和超参数,提高预测准确性与效率。软件基于MATLAB 2022a,提供完整代码及详细中文注释,并附带操作步骤视频。分组卷积有效降低了计算成本,而PSO则智能调整网络参数。此方法特别适用于金融市场预测和天气预报等场景。
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第13天】本文将深入浅出地介绍卷积神经网络(CNN)的基本原理,并探讨其在图像识别领域的应用。通过实例演示如何利用Python和TensorFlow框架实现一个简单的CNN模型,我们将一步步从理论到实践,揭示CNN如何改变现代图像处理技术的面貌。无论你是深度学习新手还是希望深化理解,这篇文章都将为你提供价值。
|
10天前
|
机器学习/深度学习 人工智能 监控
深度学习浪潮中的轻舟:探索卷积神经网络的奥秘
在这个数据泛滥的时代,深度学习如同一艘巨轮,在知识的海洋中破浪前行。然而,在这艘巨轮上,有一个小小的角落常常被人忽视—那就是卷积神经网络(CNN)。本文将带领读者一探究竟,从CNN的核心概念到其在实际中的应用,我们将用通俗易懂的语言,揭开这一技术神秘面纱,让每一位对深度学习感兴趣的朋友都能轻松理解并应用CNN。
18 0
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)入门
【8月更文挑战第31天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将引导你走进深度学习的核心组件之一——卷积神经网络(CNN),并带你一探其背后的奥秘。通过简明的语言和直观的代码示例,我们将一起构建一个简易的CNN模型,理解它在图像处理领域的应用,并探索如何利用Python和TensorFlow实现它。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。