卷积神经元网络CNN基础

简介: 卷积神经元网络CNN基础

0. 前言

按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。

本文是卷积神经元网络CNN的基础介绍。

1. CNN的基础介绍

卷积神经网络(Convolutional Neural Network, CNN)是一种专门设计用于处理具有类似网格结构数据(如图像、视频和序列数据)的深度学习模型。CNN最初是为计算机视觉任务而发展起来的,特别是在图像识别与分类方面取得了革命性的成功,并且在语音识别、自然语言处理以及许多其他领域中也得到了广泛应用。

CNN的核心特征包括:

  • 局部感受野(Local receptive fields): 卷积层中的每个神经元仅与其输入的一部分(如图像的一个小区域)相关联,这种结构模仿了生物视觉皮层中神经元的工作方式。通过应用可学习的滤波器(或称权重矩阵),CNN可以检测图像中的特定模式或特征,如边缘、角点等。
  • 权值共享(Weight sharing): 在同一层内,所有神经元使用的滤波器是相同的。这意味着在网络中只需要存储一组参数来描述一种特征,无论该特征出现在图像的哪个位置,都可以用同样的权重进行检测。这大大减少了模型参数的数量,并使得网络对平移具有不变性。
  • 卷积操作(Convolution Operation): 卷积神经网络的名字来源于其核心计算单元——卷积运算。这个过程涉及到滤波器在输入数据上滑动并执行元素级别的乘法和加法运算,生成一个特征图(Feature Map),反映了输入数据中特定特征的强度分布。

2. 常见CNN结构

2.1 卷积层(Convolution layer)
  • Filter(卷积核):实际上是一个矩阵,用每个Filter与基础图像做内积(内积,不是卷积)可以得到一个Feature Map
  • Degree of activation of a filer (卷积核的激活度): 对Feature Map中的值进行求和,用途是识别特点的特征(在Input有特定特征时,对应的filter求出的degree of activation会很大)
  • Stride(步长):Filter每次移动的距离

说明

x:有b张图片,3个通道(R,G,B),像素28*28

one k: 单一卷积核(对R,G,B 3个通道各有一个卷积核),3个通道,卷积核矩阵3✖3

multi-k:有多个卷积核(例如blur,sharp,edge等,识别不同特征)

bias:对应每个卷积核有一个偏置

关于卷积操作

一般要处理的彩色图像拥有不止一个通道,那对应的卷积核也不止一个通道,但是卷积计算出的结果只有一个通道。例如:像素为28*28的彩色图像有R,G,B三个通道,原始的数据张量即为(28,28,3),对应卷积核也应该有3个通道,例如(3,3,3)。但是卷积之后,每个通道对应同一位置的像素值会进行求合,所以卷积之后的结果为(26,26,1)

如果卷积核有多个,比如100个,卷积核张量大小为(3,3,3,100),这样卷积之后的结果为(26,26,100)

  • PyTorch代码:
import torch
layer = torch.nn.Conv2d(1,3,kernel_size=3,stride=1,padding=0)  #原图通道为1,卷积核有3个,卷积核大小为3*3,步长为1,补丁(原图扩展)为0
2.2 池化层(Max Pooling layer)
  • 对Feature Map进行压缩(对图像进行压缩,通过一定规则选择特定像素点,比如仅选择feature map中的最大值,以对feature map进行降维)
  • PyTorch代码:
layer = torch.nn.MaxPool2d(3,stride=2)   #卷积核大小为3*3,步长为1,选择feature map中最大值
2.3 Flatten layer
  • 在全链接层之前,需要把数据“压扁”成一维(后面全链接层就和普通的神经元网络一样了)
  • PyTorch中的调用方法为torch.nn.Flatten()
2.4 全链接层(Full connect layer)
  • 全连接层常位于CNN的最后阶段,它们将前面提取到的特征映射转换成固定长度的向量,以便进行分类或回归等最终预测任务。
  • PyTorch代码:
from torch import nn
linear_layer = nn.Linear(in_features=5, out_features=3)
2.5 金子塔结构
  • CNN的网络结构中的一种,每层识别的特征由简到繁。


相关文章
|
9天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
134 55
|
19天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
107 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
22天前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
58 3
图卷积网络入门:数学基础与架构设计
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
22天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
25天前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
35 1
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
1月前
|
机器学习/深度学习 计算机视觉 网络架构
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
纵观近年的顶会论文和研究热点,我们不得不承认一个现实:CNN相关的研究论文正在减少,曾经的"主角"似乎正逐渐淡出研究者的视野。
87 11
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
112 7
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新

热门文章

最新文章