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


相关文章
|
7天前
|
机器学习/深度学习 计算机视觉 网络架构
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
纵观近年的顶会论文和研究热点,我们不得不承认一个现实:CNN相关的研究论文正在减少,曾经的"主角"似乎正逐渐淡出研究者的视野。
29 11
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
6天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
10天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
7天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
21 0
|
10天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
3天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
14 2
|
4天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
3天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
3天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。

热门文章

最新文章