神经网络基础结构

embedded/2024/9/24 0:25:39/

1. 神经网络

神经网络中,每个神经元都有一个与之关联的权重和偏置,它们用于计算神经元的输出值。神经元接收来自上一层神经元的输入,并将这些输入与权重相乘并加上偏置,然后通过激活函数进行非线性处理,最终产生输出值。
在这里插入图片描述

  1. 输入层(Input Layer):输入层是神经网络接收外部输入数据的地方。每个输入层节点代表输入数据的一个特征或属性。例如,对于图像分类任务,每个输入节点可以表示图像中的像素值。
  2. 隐藏层(Hidden Layers):隐藏层位于输入层和输出层之间,用于处理输入数据并提取特征。神经网络可以有一个或多个隐藏层,这取决于网络的复杂程度。每个隐藏层由多个神经元(节点)组成,每个神经元接受来自前一层的输入,并通过权重和激活函数处理输入。
  3. 输出层(Output Layer):输出层是神经网路产生结果的地方。每个输出节点对应于网络的一个输出类别或预测结果。例如,在图像分类任务中,每个输出节点可以表示一种可能的类别。

2. 卷积神经网络(CNN)

与传统神经网络区别:
在这里插入图片描述

在这里插入图片描述
卷积层(Convolutional Layer):在卷积层中,有一组可学习的滤波器(也称为卷积核),每个滤波器都是一个小的二维矩阵。这些滤波器通过对输入数据进行卷积操作,可以提取出不同的特征。卷积操作是通过将滤波器与输入数据的局部区域进行逐元素相乘,并将结果相加得到特征图的过程。
卷积层的主要功能包括:

  • 特征提取:通过对输入数据进行卷积操作,提取出不同的特征,如边缘、纹理等。

  • 参数共享:卷积层中的每个滤波器都使用相同的权重参数对输入数据进行卷积操作,从而减少了参数数量,降低了模型复杂度。

  • 平移不变性:卷积操作具有平移不变性,即无论物体在图像中的位置如何变化,卷积操作都能够识别出相同的特征。

    通过堆叠多个卷积层,神经网络可以逐渐提取出越来越抽象和高级的特征,从而实现对复杂数据的表征和分类。卷积层的引入极大地提升了神经网络在图像处理等领域的性能和应用范围。

在这里插入图片描述
其中W1、H1表示输入的宽度、长度;W2、H2表示输出特征图的宽度、长度;
F表示卷积核长和宽的大小;S表示滑动窗口的步长;P表示边界填充(加几圈0)。
在这里插入图片描述
在这里插入图片描述
池化层(Pooling Layer):池化层是卷积神经网络(CNN)中的一个重要组成部分,用于减少数据维度并保留最显著的特征。它通常紧跟在卷积层之后,有助于提高网络的计算效率和泛化能力。
池化层的主要功能包括:

  • 下采样:池化层通过将输入数据进行下采样,即减少数据的尺寸和维度。这样可以大幅降低网络的参数量,减少计算复杂度,并提高模型训练和推理的效率。
  • 特征选择:通过池化操作,池化层会选择输入数据中最显著的特征,并保留其相对位置关系。这有助于提取出最重要的特征,并且使得网络具有一定程度的平移不变性和局部不变性。
  • 降噪:在某些情况下,池化层可以帮助降低输入数据中的噪声和冗余信息,提高模型的鲁棒性和泛化能力。

常见的池化操作包括最大池化和平均池化。最大池化从输入数据的局部区域中选择最大值作为输出,而平均池化则计算输入数据局部区域的平均值作为输出。最大池化更常用,因为它能够更好地保留输入数据的显著特征。

通过交替堆叠多个卷积层和池化层,CNN能够逐渐提取出抽象和高级的特征,并在全连接层中进行进一步的处理和分类。池化层的引入不仅有效地减少了计算量,还有助于提高网络对位置和尺度变化的鲁棒性,使得CNN在图像处理、物体识别等任务中表现出色。

在这里插入图片描述

全连接(Fully Connected Layer):全连接层也称为密集连接层或输出层,是神经网络中的一种常见层类型。它通常位于卷积层和池化层之后,负责将前面层的特征进行扁平化并与权重进行全连接操作。

在全连接层中,每个神经元都与前一层的所有神经元相连。这意味着每个神经元都接收来自前一层所有神经元的输入,并通过权重进行处理。全连接层的每个神经元都有其独立的权重参数,这些参数将在训练过程中进行学习和更新。

全连接层的主要功能包括:

  • 特征组合:全连接层能够将前面层提取到的特征进行组合和整合,从而得到更高级别的表征。这有助于网络对输入数据进行更复杂、更抽象的分析和理解。
  • 分类和预测:全连接层是神经网络的最后一层,通常用于进行分类、预测或输出。它将前面层的特征映射到最终的输出类别或数值。

深度学习任务中,通常会将全连接层放置在卷积层和池化层之后,构成一个典型的卷积神经网络(CNN)结构。全连接层的引入可以增加网络的灵活性和表达能力,使其能够适应各种复杂的任务,并进行准确的分类和预测。然而,随着网络层数的增加,全连接层的参数量也会大幅增加,导致计算量增加和过拟合的风险,因此需要适当的正则化和优化策略来处理。

神经网络层数 = CONV + FC


http://www.ppmy.cn/embedded/42487.html

相关文章

【计算机网络原理】对传输层TCP协议的重点知识的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

通过python读取并发送二进制文件到串口

代码 #!python.exe """ filename send_bin.py brief According to the users input, read bin file, subpackage and send the file by UART. HowToUse send_bin.py -h author shadowThreeDgmail.com data 20220224 &q…

JAVA:深入了解JAVA中的23种设计模式(二)- 结构型模式

一、前言 在上一篇 《深入了解JAVA中的23种设计模式(一)- 创建型模式》 中介绍了Java中的23种设计模式的创建型模式中的一些设计模式,本文将继续介绍设计模式中的结构型模式。 二、结构型模式 1. 适配器模式 1.1 简介   适配器模式就是起…

Leecode热题100---114:二叉树展开为链表

题目: 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同…

了解和熟悉多线程(四)《实践:使用线程池优化Web应用性能》

《实践:使用线程池优化Web应用性能》 在现代Web应用中,性能和响应速度至关重要。随着用户请求数量的增加,服务器需要高效地管理和处理这些请求,线程池作为一种高效的并发处理机制,可以显著提高Web应用的性能。本文将介…

【Python设计模式14】状态模式

状态模式(State Pattern)是一种行为型设计模式,它允许对象在其内部状态改变时改变其行为。状态模式将不同状态的行为封装到不同的状态类中,使得状态之间的转换独立于对象本身,减少了条件语句的使用,提高了代…

从ES5迈向ES6:探索 JavaScript 新增声明命令与解构赋值的魅力

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! ES5、ES6介绍 文章目录 💯声明命令 let、const🍟1 let声明符&a…

MySQL基础

文章目录 数据库操作创建数据库查看数据库修改数据库编码删除数据库选择数据库 常用数据类型整数小数位类型字符、文本枚举集合类型 set日期二进制JSON类型空间类型 数据表操作创建表查看表修改表字段重命名表删除表清空表 提交与回滚提交commit回滚rollback 表数据操作运算符添…