首页 > 其他分享 >卷积神经网络

卷积神经网络

时间:2023-07-20 16:27:07浏览次数:37  
标签:卷积 Filter 神经网络 参数 channel 图片

Convolutional Neural Network(CNN卷积神经网络)

解释一

  • 应用于Image classification(图像分类)

  • 一张图片如何作为一个模型的输入:一张图片可以当成三维的Tensor(维度大于等于2的矩阵),三维分别代表图片:宽、高、channels(宽高代表像素,channels代表RGB三色)

  •  参数过多,模型弹性越大,越容易过度拟合

减少参数

观察一:由于可以识别一些关键特征得到结果,所以可对特征值做简化

简化一:划分接受域(Receptive Field),将每个接受域中特征值做神经网络得到输出作为下一层神经网络的输入;

并且,接受域之间可以重叠,甚至同一个接受域可以为两个神经网络的输入

设置接受域的内核大小(kernel size)为3*3,步长(stride)为2,就可出现重叠(overlap),当超出边界时可以填充值(padding)

 观察二:关键模式可能出现在不同位置,由于每个区域都被某个接受域(receptive field)包含

简化二:让不同接收域的神经网络共享参数(parameter sharing)

卷积层的优点:

 解释二

  • 卷积层:就是里面有很多filter(过滤器)

 例如:6*6的黑白图片被两个Filter(大小:3*3,步长:1)过滤后得到有两层数据的feature map(特征映射)

此时的feature map(特征映射)可以看做一张新的图片,此图片的channel(通道)不是RGB,而channel=2,每个channel就对应一个Filter

  •  Convolutional Layer(卷积层)可以叠多层,并且这层卷积层的Filter的个数应该等于上一层图片的channel;

 结:解释一中的Neural(神经网络)会共用参数,对应解释二中就是Filter(过滤器)

  不同的Neural共享参数,对应不同的接受域,共享参数的意思也就是一个Filter扫过一张图片的过程,这个过程就叫Convolutional(卷积)

 Pooling(池化)

  • 把一张大的图片子采样缩小,不影响图片的内容

每个Filter都产生一堆数据,做Pooling时就是将这些数据几个分成一组,每组中选一个代表来简化这组数据

Max pooling:

 图像辨识的过程

  • 经过多次处理的图片,Flatten(拉平)之后变成向量,作为特征值传入全连接的神经网络,得到结果,可再次softmax得出结果

 CNN还适合做围棋,做分类预测下一步落子位置在哪里最好

围棋和影象的共同点

  • 都有很多重要的pattern(模式、特征),只需要看小范围就可以
  • 相同的pattern(模式)可出现在不同的区域

注意:CNN不能处理影像放大、缩小或者旋转的情况,spatial transformer layer(空间变压器层)可以

 spatial transformer Layer

  • 对图片数据做旋转缩放的方法:变化后数据的每个值都由原数据的全部值通过计算得出

  • 转化就是将图片中像素值改变位置

例如:

 

标签:卷积,Filter,神经网络,参数,channel,图片
From: https://www.cnblogs.com/TianLiang-2000/p/17568697.html

相关文章

  • c语言卷积的编程
    1、用c语言做这个离散卷积2、ccs5编写c语言卷积算法一般多少个周期?3、快速卷积在什么情况下效率最高呢4、C语言怎么实现小波变换5、C语言用子函数实现卷积6、怎样用c语言编写卷积计算程序用c语言做这个离散卷积暴力N^2可以直接乘,直接双重循环即可,要快的话可以用NlogN......
  • matlab怎么使用BP神经网络知乎
    使用BP神经网络解决二分类问题问题描述假设我们有一个数据集,其中包含一些二维点的坐标和它们对应的标签。我们想要训练一个神经网络来对新的点进行分类,即判断它们属于哪个类别。解决方案为了解决这个问题,我们可以使用BP神经网络。BP神经网络是一种经典的人工神经网络,通过反向传......
  • 完善1x1卷积方案
    完善1x1卷积方案1x1的卷积和3x3的卷积有什么区别?1x1卷积是一种特殊的卷积操作,它只对输入数据的每个像素点进行一次乘法和累加,而不需要构造3x3的矩阵。这样可以减少计算量和内存消耗,同时也可以改变输入数据的通道数,实现特征融合或降维。3x3卷积则是一种常见的卷积操作,它需要对......
  • 深度学习(七)——神经网络的卷积操作
    卷积操作一、torch.nn中ConvolutionLayers函数的介绍1.参数介绍nn.Conv1d:Conv取自Convolution的前四个字母,1d代表的是一个一维操作。nn.Conv2d:2d表示是一个二维的操作,比如图像就是一个二维的。其余参数不常用,见官网文档:torch.nn—PyTorch2.0documentation......
  • 单层反馈神经网络
    如何实现单层反馈神经网络简介单层反馈神经网络(Single-layerFeedforwardNeuralNetwork)是一种最简单的神经网络模型,也叫感知机(Perceptron)。它由输入层、输出层和一个称为激活函数的非线性函数组成,可以用于二分类或多分类问题。本文将介绍如何使用Python实现单层反馈神经网络。......
  • 神经网络与机器学习邱锡鹏
    如何实现神经网络与机器学习邱锡鹏作为一名经验丰富的开发者,我将以一种简洁明了的方式来教会你如何实现"神经网络与机器学习邱锡鹏"。下面是整个流程的步骤概述:步骤说明1.数据准备收集、清洗和准备数据2.特征工程对数据进行预处理和特征提取3.神经网络建模......
  • 神经网络结构图工具
    如何实现神经网络结构图工具作为一名经验丰富的开发者,我很高兴能够教会你如何实现一个神经网络结构图工具。在本文中,我将为你提供一个详细的步骤,以及每一步需要做什么和相应的代码示例。让我们开始吧!步骤一:项目初始化首先,我们需要创建一个新的Python项目,并初始化一个虚拟环境来......
  • 神经网络降噪演示
    神经网络降噪演示介绍神经网络降噪是一种常用的图像处理技术,通过训练神经网络来去除图像中的噪声。本文将介绍神经网络降噪的原理,并通过一个代码示例演示如何使用Python实现神经网络降噪。原理神经网络降噪通常包括两个步骤:训练和应用。在训练阶段,我们使用一组带有噪声的图像......
  • 神经网络分类模型
    神经网络分类模型神经网络是一种模仿人类神经系统构造的人工智能模型。它由多个神经元组成的层级结构,每个神经元通过输入信号的加权和进行激活,传递给下一层的神经元。神经网络模型可以用于各种机器学习任务,包括分类、回归和聚类等。本文将重点介绍神经网络在分类任务中的应用,并提......
  • 训练类神经网络
    结果不理想的检查步骤情况一:模型问题所设的模型不包含要找的函数;需要重新修改模型可以增加模型中特征值,或者增加层数(DeepLearning),以增加模型的复杂度情况二:优化(optimization)没做好没有找到模型中解决问题的最好的方法如何判断问题出自情况一还是二:上图右边......