当前位置: 首页 > news >正文

什么是神经网络,常用的神经网络,如何训练一个神经网络

神经网络:是深度学习的核心技术。模仿生物神经元工作方式的计算模型,由大量互相连接是神经元组成,通过数据学习复杂的模式和关系。

1、神经网络基本组成:神经元、层、连接

  1. 神经元
神经网络的最小单元。
每个神经元接受输入,输入加权求和,经过激活函数输出结果。
加权求和:输入*权重+偏置;权重决定输入的重要性,偏置调整神经元的激活阈值。
激活函数:非线性变换,使网络能拟合复杂函数。

     2.层

神经网络分为三层,神经元根据所在层来进行分工。
输入层:接受原始数据。
隐藏层:复杂特征提取和变换,可以有多层。
输出层:生成最终结果。(如分类概率值、回归值、翻译结果)

    3.连接

权重:连接两个神经元的强度,决定输入的重要性。
偏置:调整神经元的激活阈值。
损失函数:衡量预测值和真实值之间的差异。
前向传播:数据从输入层传递到输出层,计算预测值。
反向传播:根据损失函数计算得到的损失值,通过梯度下降,反向调整权重和偏置,减少误差。
优化器:Optimizer,梯度下降增强版。更新权重和偏置,减少误差。
基于梯度下降,引入额外的机制解决原始梯度下降的缺陷。
神经网络 = 神经元 + 层 + 连接(权重、偏置) + 激活函数 + 损失函数 + 优化器

2、常见的神经网络类型:FNN、CNN、RNN、Transformer

  1. 前馈神经网络(FNN):
最基础、简单的神经网络,数据流向是单向传递(输入层--隐藏层--输出层)。是深度学习的基础,也是其他复杂神经网络(CNN、RNN)的构建模块。

    2.卷积神经网络(CNN):

专门用于处理网格结构数据(如图像、视频)的深度学习模型。主要用于计算机视觉领域(图像分类、目标检测等)。
通过局部连接、权重共享、层次化特征提取,捕捉数据中的空间和或时序模式。
局部连接:每个神经元仅连接输入数据的局部区域,大幅减少参数量。
权重共享:使用卷积核在输入数据上滑动,同一核的参数在不同位置共享。
层次化特征提取:低层提取边缘、纹理等基础特征,高层组合成复杂特征。
  • 核心组件
  • 卷积层:通过卷积核提取局部特征。
  • 池化层:降维、平移不变性。
  • 全连接层:在网络末端,将提取的特征映射到最终输出。
卷积核、卷积层、特征图、池化层的定义与联系:
卷积核:特征提取,一个小矩阵,用于提取局部特征(如边缘、纹理)。
卷积层:生成特征图,由多个卷积核组成,对输入数据进行卷积运算,生成特征图。
特征图:卷积层的输出,每个通道对应一个卷积核的运算结果。
池化层:压缩特征图,对特征图下采样(如取最大值或平均值),减少计算量并增强平移不变性。
  • 整体流程

  • 输入一张图像,每个卷积核在图像上滑动,计算点积生成一个单通道特征图。
  • 对特征图的每个通道独立进行池化(下采样,不改变通道数)。
  • 堆叠卷积层和池化层。
卷积特征提取(看到更多细节)----池化压缩特征(冗余信息)----传递下一层,重复直至高层特征生成。
  • CNN的应用

  1. 图像分类(如ResNet、EfficientNet)
  2. 目标检测(如YOLO、Faster R-CNN)
  3. 语义分割(如U-Net)
  4. 视频分析(3D CNN)
  5. 医学影像(CT、MRI识别)

3. Transformer:

基于自注意力机制的深度学习模型。
优势:
并行计算:自注意力机制允许同时处理所有位置的信息,计算效率高。
长距离依赖:直接建模任意距离的词关系,避免梯度消失的问题。
可扩展性:通过堆叠更多层和头,扩展模型能力。
缺点:
计算复杂程度高、内存消耗大、数据需求大。
应用:自然语言处理(NLP)、计算机视觉(CV)---VIT 图像分块后输入Transformer、多模态任务 CLIP。
具体介绍可参考:Transformer

3、训练神经网络

训练神经网络的过程其实是确定线性公式y=ax+b中参数a,b的值一个过程。
a=权重;b=偏置;
比如训练一个识别图片中数字的神经网络:
  1. 选择一个线性公式,随机初始化一组参数a,b;
  2. 在训练数据集中,利用线性公式来进行分类;
  3. 计算分类结果的误差;(利用损失函数进行计算)
  4. 调整参数a,b,使分类结果的误差可以减少;(梯度下降)
  5. 回到步骤2;
  6. 重复2-5步骤,直至模型收敛;
模型收敛:误差减少的趋势渐缓,参数无论怎么变化误差都变化不大。
全连接层:神经网络最基础层之一,负责将前一层的所有神经元与当前层的所有神经元进行完全连接,实现特征的整合和分类。
http://www.dtcms.com/a/279329.html

相关文章:

  • python 循环遍历取出偶数
  • 「日拱一码」027 深度学习库——PyTorch Geometric(PyG)
  • MCP基础知识二(实战通信方式之Streamable HTTP)
  • 【CTF学习】PWN基础工具的使用(binwalk、foremost、Wireshark、WinHex)
  • ewdyfdfytty
  • LangChain教程——文本嵌入模型
  • 20250714让荣品RD-RK3588开发板在Android13下长按关机
  • Debezium日常分享系列之:提升Debezium性能
  • 制造业实战:数字化集采如何保障千种备件“不断供、不积压”?
  • 16.避免使用裸 except
  • MFC扩展库BCGControlBar Pro v36.2新版亮点:可视化设计器升级
  • 计算机毕业设计Java轩辕购物商城管理系统 基于 SpringBoot 的轩辕电商商城管理系统 Java 轩辕购物平台管理系统设计与实现
  • 面向对象的设计模式
  • 【数据结构】树(堆)·上
  • js的局部变量和全局变量
  • 测试驱动开发(TDD)实战:在 Spring 框架实现中践行 “红 - 绿 - 重构“ 循环
  • Bash vs PowerShell | 从 CMD 到跨平台工具:Bash 与 PowerShell 的全方位对比
  • vue3 服务端渲染时请求接口没有等到数据,但是客户端渲染是请求接口又可以得到数据
  • 7.14 map | 内存 | 二维dp | 二维前缀和
  • python+Request提取cookie
  • 电脑升级Experience
  • python transformers笔记(Trainer类)
  • 代码随想录算法训练营第三十五天|416. 分割等和子集
  • LLM表征工程还有哪些值得做的地方
  • 内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
  • 防火墙技术概述
  • Qt轮廓分析设计+算法+避坑
  • Redis技术笔记-主从复制、哨兵与持久化实战指南
  • 第五章 uniapp实现兼容多端的树状族谱关系图,剩余组件
  • 学习C++、QT---25(QT中实现QCombobox库的介绍和用QCombobox设置编码和使用编码的讲解)