卷积神经网络(一)

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 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):在图像分割问题中,输出层通常会为图像中的每个像素提供一个类别标签。这将创建一个与输入图像大小相同的标签图,其中每个像素都分配到相应的类别。这种问题的输出通常是一个多通道的热图,每个通道对应一个类别,像素的值表示其属于哪个类别的概率。

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

相关文章
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其应用
【9月更文挑战第24天】本文将深入探讨深度学习中的一种重要模型——卷积神经网络(CNN)。我们将通过简单的代码示例,了解CNN的工作原理和应用场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
36 1
|
15天前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
65 21
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
15天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
11天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
23 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
3天前
|
机器学习/深度学习 人工智能 算法
深入理解卷积神经网络:从理论到实践
【9月更文挑战第31天】在深度学习的众多模型之中,卷积神经网络(CNN)以其在图像处理领域的出色表现而闻名。本文将通过浅显易懂的语言和直观的比喻,带领读者了解CNN的核心原理和结构,并通过一个简化的代码示例,展示如何实现一个简单的CNN模型。我们将从CNN的基本组成出发,逐步深入到其在现实世界中的应用,最后探讨其未来的可能性。文章旨在为初学者提供一个清晰的CNN入门指南,同时为有经验的开发者提供一些深入思考的视角。
|
3天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第31天】本文旨在通过浅显易懂的语言和直观的比喻,为初学者揭开深度学习中卷积神经网络(CNN)的神秘面纱。我们将从CNN的基本原理出发,逐步深入到其在图像识别领域的实际应用,并通过一个简单的代码示例,展示如何利用CNN进行图像分类。无论你是编程新手还是深度学习的初学者,这篇文章都将为你打开一扇通往人工智能世界的大门。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)入门与实践
【8月更文挑战第62天】本文以浅显易懂的方式介绍了深度学习领域中的核心技术之一——卷积神经网络(CNN)。文章通过生动的比喻和直观的图示,逐步揭示了CNN的工作原理和应用场景。同时,结合具体的代码示例,引导读者从零开始构建一个简单的CNN模型,实现对图像数据的分类任务。无论你是深度学习的初学者还是希望巩固理解的开发者,这篇文章都将为你打开一扇通往深度学习世界的大门。
|
11天前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
30 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
14天前
|
机器学习/深度学习 自动驾驶 TensorFlow
深入理解卷积神经网络(CNN)在图像识别中的应用
【9月更文挑战第20天】本文旨在通过直观的解释和代码示例,向初学者介绍卷积神经网络(CNN)的基本概念及其在图像识别领域的应用。文章将首先解释什么是CNN以及它如何工作,然后通过一个简单的Python代码示例展示如何构建一个基本的CNN模型。最后,我们将讨论CNN在现实世界问题中的潜在应用,并探讨其面临的挑战和发展方向。
36 2
|
14天前
|
机器学习/深度学习 人工智能 算法
深入浅出卷积神经网络(CNN)
【9月更文挑战第20天】在人工智能的璀璨星河中,卷积神经网络(CNN)如同一颗耀眼的星辰,以其独特的魅力照亮了图像处理的天空。本文将带你遨游CNN的宇宙,从其诞生之初的微弱光芒,到成为深度学习领域的超级巨星,我们将一同探索它的结构奥秘、工作原理以及在实际场景中的惊艳应用。你将发现,CNN不仅仅是一段段代码和算法的堆砌,它更是一种让机器“看”懂世界的强大工具。让我们扣好安全带,一起深入CNN的世界,体验技术与创新交织的精彩旅程。
下一篇
无影云桌面