【卷积神经网络】卷积,池化,全连接

这篇具有很好参考价值的文章主要介绍了【卷积神经网络】卷积,池化,全连接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(Convolution Neural Network,CNN)是深度学习中一项代表性的工作,CNN 是受人脑对图像的理解过程启发而提出的模型,其雏形是 1998 年 LeCun 提出的 LeNet-5 模型。如今,卷积神经网络已被广泛应用于计算机视觉领域。本文主要介绍卷积神经网络中几个基础的运算,包括卷积、池化与全连接。

目录

1 卷积

2 池化

3 全连接


1 卷积


        卷积神经网络中的卷积运算,通常指应用于处理图像的二维卷积。卷积运算是卷积神经网络(Convolution Neural Network,CNN)中不可缺少的部分,使得神经网络具备处理图像的能力。

        在介绍卷积运算之前,需要了解卷积运算涉及的几个必要的概念。

(1)卷积核。卷积核通常是一个 3 x 3,或 5 x 5 大小的矩阵,矩阵的元素表示邻近像素值的权重。在卷积运算时,卷积核与图像中某个小区域(也叫局部感受野)的像素值进行加权平均运算。


(2)填充。填充是指处理输入特征图边界的方式。为了不丢失边界信息,可以对输入图像进行边界填充,再执行卷积操作。


(3)步长。步长指卷积核在输入图像上移动的像素数。步长为 1,则每次移动一个像素;步长为 2,则每次移动两个像素;以此类推。


        对于输入图像 P,使用 3 x 3 卷积核进行卷积运算,运算步骤如下:
(1)用 0 对图像 P 的边界进行填充,得到扩充图像 P_padding;

【卷积神经网络】卷积,池化,全连接,卷积神经网络,深度学习,卷积神经网络

 
(2)按照从上到下、从左到右的顺序,在 P_padding 上移动卷积核,计算像素值的加权平均值,并按照移动的顺序排列,得到输出特征图。

【卷积神经网络】卷积,池化,全连接,卷积神经网络,深度学习,卷积神经网络

        TensorFlow 中使用 tf.nn.conv2d 函数进行卷积运算。

tf.nn.conv2d 用法

tf.nn.conv2d(
   input,
   filter,
   strides,
   padding,
   data_format='NHWC',
   dilations=None,
   name=None
)

tf.nn.conv2d 示例

import numpy as np
import tensorflow as tf

x_in = np.array([[
   [[1], [2], [1]], 
   [[1], [2], [1]],
   [[1], [2], [1]],
]])

kernel_in = np.ones((1,9)).reshape(3, 3, 1, 1)

x = tf.constant(x_in, dtype=tf.float32)
kernel = tf.constant(kernel_in, dtype=tf.float32)

x_feature = tf.nn.conv2d(x, kernel, strides=[1,1,1,1], padding='SAME')
x_feature.numpy().reshape(3, 3)

Spyder 运行结果

【卷积神经网络】卷积,池化,全连接,卷积神经网络,深度学习,卷积神经网络

 

        一个卷积核只能生成一张特征图像,在实际应用中,为了增强卷积层的表示能力,会使用多个不同的卷积核进行卷积运算,得到若干特征图像。

2 池化

        “池化” 一词来源于其英文 pooling,意思是 “使 ...... 集中”。在卷积神经网络中,池化是降低特征图像分辨率的运算,在神经网络中起到二次提取特征的作用。

        常用的池化运算有:

(1)最大池化:对局部感受野中的像素值求最大值,作为输出特征图像对应位置的像素值;

(2)平均池化:对局部感受野中的像素值求平均值,作为输出特征图像对应位置的像素值。

下图是对输入图像进行 2 x 2 最大池化的输出结果。

【卷积神经网络】卷积,池化,全连接,卷积神经网络,深度学习,卷积神经网络

        TensorFlow 常用的池化运算如下:

(1)tf.nn.max_pool2d  最大池化

(2)tf.nn.avg_pool2d   平均池化

tf.nn.max_pool2d 用法

tf.nn.max_pool2d(
   input,
   ksize,
   strides,
   padding,
   data_format='NHWC',
   name=None
)

tf.nn.max_pool2d 示例

import tensorflow as tf

x = tf.constant([[
   [[4], [6], [1], [3] ], 
   [[0], [9], [7], [13]], 
   [[4], [3], [7], [10]], 
   [[1], [0], [3], [8] ],
]])

result = tf.nn.max_pool2d(x, ksize=(2,2), strides=(2,2), padding='SAME')
result.numpy().reshape(2, 2)

Spyder 运行结果

【卷积神经网络】卷积,池化,全连接,卷积神经网络,深度学习,卷积神经网络

 

3 全连接

        与多层感知机类似,全连接层中的每个神经元与前一网络层中的所有神经元相连。在卷积神经网络中,多个卷积层和池化层后连接着一个或者多个全连接层,全连接运算负责融合卷积层或池化层的局部信息。

【卷积神经网络】卷积,池化,全连接,卷积神经网络,深度学习,卷积神经网络文章来源地址https://www.toymoban.com/news/detail-655862.html

到了这里,关于【卷积神经网络】卷积,池化,全连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】神经网络和深度学习--卷积和池化的作用

    深度学习通常指训练大型深度的神经网络的过程。 与传统的神经网络模型相比,深度学习模型在结构上与之非常相似; 不同的是,深度学习模型的“深度”更大,“深度”的体现就是神经网络层数多,神经网络每一层的结点数多。 本章介绍两种深度神经网络——卷积神经网

    2024年02月16日
    浏览(37)
  • 图解神经网络:卷积、池化、全连接(通道数问题、kernel与filter的概念)

    卷积操作 这个不难理解。我们知道图像在计算机中是由一个个的像素组成的,可以用矩阵表示。 假设一个5x5的输入图像,我们定义一个3x3的矩阵(其中的数值是随机生成的) 然后我们拿这个卷积核,在输入图像里面,选定左上角那个3x3的矩阵,用卷积核与这个矩阵对应的位

    2024年02月09日
    浏览(25)
  • 神经网络必备基础知识:卷积、池化、全连接(通道数问题、kernel与filter的概念)

    这个不难理解。我们知道图像在计算机中是由一个个的像素组成的,可以用矩阵表示。 假设一个5x5的输入图像,我们定义一个3x3的矩阵(其中的数值是随机生成的) 然后我们拿这个卷积核,在输入图像里面,选定左上角那个3x3的矩阵,用卷积核与这个矩阵对应的位置相乘,

    2024年02月05日
    浏览(42)
  • 深度学习基础入门篇[8]::计算机视觉与卷积神经网络、卷积模型CNN综述、池化讲解、CNN参数计算

    计算机视觉作为一门让机器学会如何去“看”的学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场景和故事,以此来模拟人脑视觉系统。因此,计算机视觉也通常被叫

    2024年02月05日
    浏览(62)
  • 【AI】深度学习——前馈神经网络——全连接前馈神经网络

    前馈神经网络(Feedforward Neural Network,FNN)也称为多层感知器(实际上前馈神经网络由多层Logistic回归模型组成) 前馈神经网络中,各个神经元属于不同的层 每层神经元接收前一层神经元的信号,并输出到下一层 输入层:第0层 输出层:最后一层 隐藏层:其他中间层 整个网络

    2024年04月12日
    浏览(89)
  • 【深度学习_TensorFlow】感知机、全连接层、神经网络

    感知机、全连接层、神经网络是什么意思? 感知机: 是最简单的神经网络结构,可以对线性可分的数据进行分类。 全连接层: 是神经网络中的一种层结构,每个神经元与上一层的所有神经元相连接,实现全连接。 神经网络: 是由大量神经元组成的网络结构,通过层与层之间

    2024年02月14日
    浏览(31)
  • 【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)

    卷积神经网络(convolutional neural network, CNN)在提出之初被成功应用于手写字符图像识别,2012年的AlexNet网络在图像分类任务中取得成功,此后,卷积神经网络发展迅速,现在已经被广泛应用于图形、图像、语音识别等领域。 图片的像素数往往非常大,如果用多层全连接网络来

    2024年02月08日
    浏览(34)
  • 入门深度学习——基于全连接神经网络的手写数字识别案例(python代码实现)

    1.1 问题导入 如图所示,数字五的图片作为输入,layer01层为输入层,layer02层为隐藏层,找出每列最大值对应索引为输出层。根据下图给出的网络结构搭建本案例用到的全连接神经网络 1.2 手写字数据集MINST 如图所示,MNIST数据集是机器学习领域中非常经典的一个数据集,由6

    2024年02月03日
    浏览(35)
  • 卷积神经网络(CNN)之卷积操作、池化操作、激活函数

    前言:卷积神经网络是深度学习算法中一个重要组成部分,在深度学习图像识别技术的应用中起到了关键作用。卷积神经网络和循环神经网络(RNN)都是类似于传统的全连接神经网络(也叫深度神经网络,简称DNN),CNN属于编码了空间相关性的DNN,RNN属于编码了时间相关性的DNN。由

    2024年02月04日
    浏览(23)
  • 深度学习|卷积神经网络

    卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习神经网络结构,主要用于 图像识别 、 计算机视觉 等领域。该结构在处理图像等高维数据时表现出色,因为它具有共享权重和局部感知的特点,一方面减少了权值的数量使得网络易于优化,另一方面降低了模型的复

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包