卷积神经元网络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的网络结构中的一种,每层识别的特征由简到繁。


相关文章
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
3月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
401 11
|
6月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本内容展示了一种基于粒子群优化(PSO)与时间卷积神经网络(TCN)的时间序列预测方法。通过 MATLAB2022a 实现,完整程序运行无水印,核心代码附详细中文注释及操作视频。算法利用 PSO 优化 TCN 的超参数(如卷积核大小、层数等),提升非线性时间序列预测性能。TCN 结构包含因果卷积层与残差连接,结合 LSTM 构建混合模型,经多次迭代选择最优超参数,最终实现更准确可靠的预测效果,适用于金融、气象等领域。
|
3月前
|
机器学习/深度学习 传感器 数据采集
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
497 0
|
3月前
|
机器学习/深度学习 传感器 数据采集
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
224 0
|
4月前
|
机器学习/深度学习 并行计算 算法
【图像分割】基于神经气体网络的图像分割与量化(Matlab代码实现)
【图像分割】基于神经气体网络的图像分割与量化(Matlab代码实现)
|
5月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
285 7
|
6月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络和GEI步态能量提取的步态识别算法matlab仿真,对比不同角度下的步态识别性能
本项目基于CNN卷积神经网络与GEI步态能量提取技术,实现高效步态识别。算法使用不同角度(0°、45°、90°)的步态数据库进行训练与测试,评估模型在多角度下的识别性能。核心流程包括步态图像采集、GEI特征提取、数据预处理及CNN模型训练与评估。通过ReLU等激活函数引入非线性,提升模型表达能力。项目代码兼容Matlab2022a/2024b,提供完整中文注释与操作视频,助力研究与应用开发。
|
6月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的TCN-GRU时间卷积神经网络时间序列预测算法matlab仿真
本内容包含时间序列预测算法的相关资料,涵盖以下几个方面:1. 算法运行效果预览(无水印);2. 运行环境为Matlab 2022a/2024b;3. 提供部分核心程序,完整版含中文注释及操作视频;4. 理论概述:结合时间卷积神经网络(TCN)与鲸鱼优化算法(WOA),优化TCN超参数以提升非线性时间序列预测性能。通过因果卷积层与残差连接构建TCN模型,并用WOA调整卷积核大小、层数等参数,实现精准预测。适用于金融、气象等领域决策支持。
|
6月前
|
机器学习/深度学习 数据采集 并行计算
基于WOA鲸鱼优化的TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于TCN(Temporal Convolutional Network)与WOA(Whale Optimization Algorithm)的时间序列预测算法。TCN通过扩张卷积捕捉时间序列长距离依赖关系,结合批归一化和激活函数提取特征;WOA用于优化TCN网络参数,提高预测精度。算法流程包括数据归一化、种群初始化、适应度计算及参数更新等步骤。程序基于Matlab2022a/2024b开发,完整版含详细中文注释与操作视频,运行效果无水印展示。适用于函数优化、机器学习调参及工程设计等领域复杂任务。

热门文章

最新文章