news 2026/6/10 4:55:49

刘二大人-卷积神经网络(基础篇)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
刘二大人-卷积神经网络(基础篇)

C:即channel,通道的意思,在卷积神经网络(CNN)中:输入层中的通道对应于图像的通道,例如 RGB 图像的三个颜色通道。隐藏层中的通道代表卷积核的数量,每个卷积核在特征图中产生一个通道,捕捉图像的不同特征。

W:weight,宽度

H:high,高度,一个通道中有w乘h个元素

convolution:卷积层,在图像识别任务中,CNN通过一系列卷积层和池化层来提取图像的特征,然后通过全连接层或其他类型的层来进行分类。

subsampling:下采样,使用下采样不改变通道数,目的是减少数据量,降低运算的需求

池化层:池化层是下采样在卷积神经网络中的一种具体实现。池化层通过在特征图上滑动窗口并执行某种聚合操作(如最大值、平均值或总和),来减少特征图的尺寸,同时保留重要的特征信息。

fully connected:全连接,在全连接层中,每一层的每个神经元都与上一层的所有神经元相连,以及下一层的所有神经元相连。

  • 在卷积神经网络中,全连接层通常位于网络的末端,紧接在一系列卷积层和池化层之后。它们将卷积层提取的特征转换为最终的分类结果。
  • 有时,为了减少参数数量并提高效率,全连接层会被替换为全局平均池化

前四步为Feature Extraction:特征提取器

卷积神经网络(CNN):自动从图像中学习层次化的特征表示。

后面两步为classification:分类器

目的:

  • 预测:给定一个新的、未见过的数据实例,预测它属于哪个类别。
  • 组织:将数据按照特定的属性或特征进行分组,以便于进一步的分析和处理。

分类类型:

  1. 二分类:只有两个类别,例如“是/否”,“阳性/阴性”。
  2. 多分类:有三个或更多的类别,例如“红色/绿色/蓝色”。
  3. 多标签分类每个实例可以同时属于多个类别,例如一篇文档可能同时被标记为“科技”和“教育”。

方法:

  1. 监督学习分类算法

    • 逻辑回归:用于二分类问题,通过最大化似然函数来估计参数。
    • 支持向量机(SVM):寻找一个最优的边界(称为超平面),以最大间隔分隔不同类别的数据。
    • 决策树:通过一系列的判断规则来进行分类。
    • 随机森林:由多个决策树组成,每个树给出一个分类结果,通过投票决定最终类别。
    • 神经网络:模仿人脑的处理方式,通过多层神经元进行特征学习和分类。
  2. 无监督学习分类算法

    • K-均值聚类:将数据点分配到K个簇中,每个簇的中心由簇内数据的均值确定。
    • 层次聚类:通过逐步合并或分裂已有的簇来形成一棵聚类树。

RGB代表红绿蓝(Red Green Blue),是一种颜色模型,用于在电子显示设备上表示颜色。在RGB颜色模型中,通过混合不同强度的红色、绿色和蓝色光来创建各种颜色。

栅格图像通常使用RGB颜色模型来表示颜色。这意味着栅格图像的每个像素都包含红色、绿色和蓝色的强度值,这些值共同决定了像素显示的颜色。

图像到底是什么?根据核的大小从输入中每次取同大小块,一次遍历所有图像。

单通道:关于核中的第一个元素,从1 * 5 * 5 输入中拿出 第一个3 * 3 框与核做卷积(数乘),

数乘:对应元素相乘再相加得结果

遍历完成得到的输出。

对于多通道:

每个通道都要配一个核,卷积核的数量与通道匹配,然后各自进行数乘

最后将得到的三个结果各个数相加得到输出。

cat:拼接

多个垒起来,输入 n * w * h,通过m个 n * w 1* h1卷积核就能输出 m * w 1* h1,得到多个输出。

在卷积神经网络(CNN)中,“权重”(Weights)是指神经网络中的参数,它们在训练过程中通过学习数据集进行优化。权重决定了卷积核(或过滤器)的作用方式,以及如何从输入特征图中提取特征。

代码与输出。

Padding方法:

5 * 5 和 3 * 3 的卷积核 得到 3 * 3,但是希望图像大小不变,得到 5 * 5
把图像周围填充0成 7 * 7 ,就可以了。这里主要参考上面的公式。

Stried步长=2

如果要得到尺寸为2的输出,则有(5-3)/2+1=2

import torch input = [3,4,6,5,7, 2,4,6,8,2, 1,6,7,8,4, 9,7,4,6,2, 3,7,5,4,1]#构建输入数据 input = torch.Tensor(input).view(1, 1, 5, 5) # 1 batch, 1 channel, 5x5 image,构建输入数据 #conv_layer = torch.nn.Conv2d(1, 1, kernel_size=3, padding=1, bias=False)#构建卷积层,1个输入通道,1个输出通道,卷积核大小为3x3,padding为1就是加一圈0,bias偏置量为False conv_layer = torch.nn.Conv2d(1, 1, kernel_size=3, stride=2, bias=False) kernel = torch.Tensor([1,2,3,4,5,6,7,8,9]).view(1, 1, 3, 3) #构建卷积核,1个输入通道,1个输出通道,卷积核大小为3x3 conv_layer.weight.data = kernel.data#将卷积核赋值给卷积层的权重 output = conv_layer(input)#进行卷积操作 print(output)

把padding=1改成stride=2即可、

最大池化层MaxPooling:默认步长为2,图像尺寸缩成原来一半,选择里面最大的数作为输出,通常用于卷积神经网络中的特征提取阶段,紧跟在卷积层之后,用于减小特征图的尺寸,同时保留关键特征,为后续的全连接层或其它层提供更抽象的特征表示。

import torch input = [3,4,6,5, 2,4,6,8, 1,6,7,5, 9,7,4,6, ] input = torch.Tensor(input).view(1, 1, 4, 4) maxpooling_layer = torch.nn.MaxPool2d(kernel_size=2) # 默认stride=kernel_size=2 output = maxpooling_layer(input) print(output)

最大池化层不影响输入输出,只缩小一半尺寸。

20x4x4=320个元素

最后一个全连接层直接将320降到10维,即分成10类。

ReLU层(Rectified Linear Unit Layer)是深度学习中常用的一种激活函数层,其主要作用是在神经网络中引入非线性因素,使得网络能够学习和模拟更复杂的函数。

把全连接网络改成卷积神经网络

课后作业。。。。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 4:55:12

CocosBuilder:5分钟快速上手的跨平台游戏开发终极指南

CocosBuilder:5分钟快速上手的跨平台游戏开发终极指南 【免费下载链接】CocosBuilder CocosBuilder, the visual editor for cocos2d 项目地址: https://gitcode.com/gh_mirrors/co/CocosBuilder 还在为游戏界面设计而烦恼吗?想要一个能够让你快速…

作者头像 李华
网站建设 2026/6/10 4:54:09

opencv分别用cpu和gpu读取视频

代码#include <iostream>#include "opencv2/opencv_modules.hpp"#include <string> #include <vector> #include <algorithm> #include <numeric>#include <opencv2/core.hpp> #include <opencv2/cudacodec.hpp> #include…

作者头像 李华
网站建设 2026/6/10 4:52:05

为什么原生JavaScript是现代化Web开发的终极选择?

为什么原生JavaScript是现代化Web开发的终极选择&#xff1f; 【免费下载链接】vanilla-js-dom Vanilla JS is a fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications. 项目地址: https://gitcode.com/gh_mirrors/va/va…

作者头像 李华
网站建设 2026/6/10 4:50:06

告别复杂代码!audioMotion-analyzer让音频可视化变得如此简单

告别复杂代码&#xff01;audioMotion-analyzer让音频可视化变得如此简单 【免费下载链接】audioMotion-analyzer High-resolution real-time graphic audio spectrum analyzer JavaScript module with no dependencies. 项目地址: https://gitcode.com/gh_mirrors/au/audioM…

作者头像 李华
网站建设 2026/6/10 4:47:00

Virtualenv Burrito扩展开发:如何定制自己的环境管理工具

Virtualenv Burrito扩展开发&#xff1a;如何定制自己的环境管理工具 【免费下载链接】virtualenv-burrito One command to have a working virtualenv virtualenvwrapper environment. 项目地址: https://gitcode.com/gh_mirrors/vi/virtualenv-burrito 想要快速搭建P…

作者头像 李华