卷积神经网络(一)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 卷积神经网络(一)

开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):卷积神经网络(一)

课程地址:https://edu.aliyun.com/course/3112108/lesson/19268

 

卷积神经网络(一)

 

内容介绍

一、 卷积神经网络的概述

二、 卷积神经网络的层级结构

三、 经典卷积神经网络

四、 卷积神经网络的应用

 

一、卷积神经网络的概述


图片519.png

卷积神经网络(CNN),即Convolutional Neural Network,是一种深度学习模型的一部分。"C"表示"卷积",而"NN"代表神经网络。卷积神经网络是一种神经网络,其主要功能是通过特征提取和分类识别来处理输入数据。可以将CNN视为主要用于图像分类的工具。

CNN最早在1989年提出,最初用于语音和手写数字图像的识别。


2012年更深层次的AlexNet网络取得成功,此后卷积神经网络被广泛用于各个领域。

在左图中,你可以看到它的输入层、隐藏层和输出层。在传统神经网络中,每个神经元都与前一层的每个神经元相连接。然而,当处理图像等输入具有大量像素的数据时,这种全连接的结构会导致问题。


这就是CNN的出现原因。当我们观察CNN的结构时,首先将输入图像从高维(例如12维的二维图像)转化为低维。然后,通过一系列层次的计算,逐渐提取特征。在这个过程中,每一层的特征图的数量会逐渐减少,最终得到一个分类结果。你可以将其比喻为逐渐变细的通道,这种结构非常适用于图像分类。


接下来,让我们更详细地了解CNN的内部结构和工作原理。我们将首先讨论CNN的输入数据,然后深入研究其内部结构。

 

二、卷积神经网络的层级结构


图片520.png

卷积神经网络(CNN)通常用于处理图像等具有多维数据的任务。输入数据的维度可能会有很多,不仅包括一维数据,还可能包括高维数据。在输入层,我们需要对数据进行标准化处理,这是为了提高神经网络的学习效率。标准化包括处理数据的范围和单位,以确保输入数据适应激活函数的范围。

卷积层是CNN的核心特征,它主要用于从输入数据中提取特征。卷积是一种特征提取的过程,通过滤波器(卷积核)对输入数据进行操作,以获取特征。卷积的过程可以理解为将滤波器应用于输入数据,逐步提取出各种特征。


卷积核的应用方式是通过对输入数据进行滑动操作,从左上到右下,逐渐覆盖整个输入区域。每次滑动都会执行一次卷积操作,将滤波器与输入数据相乘并求和,生成特征图。这个特征图是从输入数据中提取的特定特征。


总而言之,卷积神经网络通过卷积层来提取输入数据中的特征,这些特征对于任务(如图像分类)非常重要。卷积核的应用方式是滑动操作,逐步捕捉不同位置的特征。这一过程有助于神经网络识别和理解输入数据。

图片521.png
卷积神经网络通常处理大规模的输入数据矩阵,并生成相应的输出矩阵。这个过程可以看作是一个滑动窗口在输入矩阵上移动,逐步生成输出矩阵的过程。每次滑动窗口操作都会生成输出矩阵中的一部分。


在这个过程中,输入矩阵的活动会引导下一个窗口的位置,然后生成下一个节点的输出。这个过程会不断滚动窗口,直到处理完整个输入矩阵,最终得到右边的输出矩阵。输出矩阵中包含了通过卷积操作提取的局部特征。相对于输入数据矩阵,这些特征矩阵通常更小。


这种卷积操作主要用于图像处理,因为图像通常具有二维结构,我们可以更好地利用图像中的信息。例如,一张图像可以看作是一个二维矩阵,具有高度、宽度和深度(通道)。每个像素的值不同,因为它包含了红、绿和蓝等不同的颜色通道。这种结构可以通过卷积层进行处理,以提取图像中的特征。


接下来,让我们深入了解卷积操作的详细计算过程。我们将以一个卷积层的计算示例为例,输入矩阵是一个4x4的三通道图像,卷积核是3x3的。我们还有一个参数,即卷积的步长,它决定了卷积核在输入矩阵上的滑动速度。

图片522.png

卷积神经网络(CNN)通常用于处理具有高维度的输入数据,如图像数据。在卷积层中,卷积核滑动在输入矩阵上,执行卷积操作以提取特征。这个过程可以看作是一个窗口在输入数据上移动,并计算每个位置的卷积结果。卷积核与输入数据的对应部分相乘,然后求和以生成输出矩阵的每个元素。这个过程会不断滑动窗口,直到处理完整个输入数据,最终生成输出矩阵。


卷积操作的主要目的是从输入数据中提取局部特征。对于图像处理来说,这是非常重要的,因为图像具有高度、宽度和通道等维度,通过卷积操作,可以更好地利用图像的结构信息。


卷积操作的计算过程相对简单,可以看作是一个窗口在输入数据上按时间顺序滑动的过程,每次滑动都执行卷积操作,最终得到输出矩阵。这个过程是卷积层的核心操作之一。

图片523.png
在卷积操作之后,通常会使用池化层进行特征降维。池化操作的目的是通过取局部区域的最大值或均值来减小特征图的维度。这有助于减少网络参数数量和计算量。池化操作通常分为最大池化和平均池化两种方式,它们都是对特征图进行相邻区域的操作,以获取单一值。

全连接层是卷积神经网络中的另一层,它将前一层的所有节点连接到当前层的每个节点,因此称为全连接。全连接层通常出现在网络的末尾,它的每个节点都与前一层的节点相连,是传统神经网络结构的一部分。

图片524.png
在卷积神经网络中,通常都会包括以下几个部分:

输入层:这是网络的初始部分,它接受数据输入。

卷积层:这一层主要负责特征提取,它通常位于前面,并与其他层相连,传递信号。

池化层:用于减少数据的维度和特征,通常使用最大值或均值池化。

全连接层:这是网络的最后一部分,通常用于分类等任务,它包括输出层,其工作原理与前一层相同。

最后,我们要解决一个十分类的问题,需要对输入的图像进行10个类别的分类。我们通常使用全连接层来实现这一任务。

图片525.png

对于不同类型的问题,神经网络的输出层会有不同的结构和目标:

分类问题(Classification):在分类问题中,输出层通常包含一个节点或多个节点,每个节点对应一个类别。神经网络通过这些节点输出每个类别的概率分数,然后选择具有最高概率分数的类别作为最终分类结果。例如,在一个10类别的图像分类问题中,输出层可能有10个节点,每个节点代表一个类别,最终输出层会指示图像属于哪个类别。


目标检测问题(Object Detection):在目标检测问题中,输出层通常会提供每个检测到的目标的相关信息。这可以包括目标的坐标(通常是矩形框的位置)、目标的类别和置信度分数。通常,每个检测到的目标会用一组数值来表示,例如,(x, y, width, height, class, score),其中 (x, y) 是目标框的左上角坐标,width 和 height 是框的宽度和高度,class 是目标的类别,score 是置信度分数。


分割问题(Segmentation):在图像分割问题中,输出层通常会为图像中的每个像素提供一个类别标签。这将创建一个与输入图像大小相同的标签图,其中每个像素都分配到相应的类别。这种问题的输出通常是一个多通道的热图,每个通道对应一个类别,像素的值表示其属于哪个类别的概率。

总之,输出层的结构和目标取决于你要解决的具体问题类型。不同问题需要不同的输出格式,以便正确地获取所需的信息。

相关文章
|
6天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
9天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
12 2
|
9天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
16 1
|
12天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
49 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
14天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
9天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
11天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。
|
16天前
|
机器学习/深度学习 人工智能 自动驾驶
深入理解深度学习中的卷积神经网络(CNN)
【10月更文挑战第18天】深入理解深度学习中的卷积神经网络(CNN)
26 0
|
19天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。