神经网络的起源与工作原理

news/2024/12/12 11:24:20/
  1. 神经网络起源:一个生物神经网络是由一组化学上相连或功能上相关的神经元组成。一个神经元可能与许多其他神经元相连,网络中的神经元和连接的总数可能很广泛。连接,称为突触,通常是从轴突到树突形成的,尽管树突和其他连接是可能的。除了电信号外,还有其他形式的信号,这些信号来自于神经递质的扩散。

    神经网络的起源可以追溯到20世纪40年代,当时科学家们开始尝试模拟人脑的工作原理。以下是神经网络发展的几个重要里程碑:

    1. 1943年:McCulloch-Pitts模型

      • Warren McCulloch 和 Walter Pitts 提出了第一个数学模型,用于描述神经元的工作原理。这个模型被称为 McCulloch-Pitts 神经元,是一种简单的二进制模型,能够模拟基本的逻辑运算。
    2. 1958年:感知器(Perceptron)

      • Frank Rosenblatt 提出了感知器模型,这是第一个能够学习的神经网络模型。感知器能够通过调整权重来学习和分类数据。
    3. 1969年:感知器的局限性

      • Marvin Minsky 和 Seymour Papert 在他们的著作《Perceptrons》中指出,单层感知器无法解决非线性可分问题,如 XOR 问题。这一发现导致了神经网络研究的停滞。
    4. 1986年:反向传播算法

      • David Rumelhart、Geoffrey Hinton 和 Ronald Williams 提出了反向传播算法(Backpropagation),这是一种用于训练多层神经网络的有效方法。反向传播算法的提出使得神经网络能够解决更复杂的问题,重新激发了对神经网络的研究兴趣。
    5. 2006年:深度学习的兴起

      • Geoffrey Hinton 等人提出了深度信念网络(Deep Belief Networks),标志着深度学习的兴起。深度学习通过使用多层神经网络,能够在大规模数据集上进行有效的学习和推理。
  2. 神经网络模型组成:特征、权重和激活函数

    a. 通过分析、设计特征工程,真实世界可以用有限个特征描述。

    b. 而在神经网络中,每一层的参数就是特征,整个神经网络通过若干参数来描述真实世界。

    c. 输入层、输出层、隐藏层的数量和每层参数所用函数,都可以通过特征工程来做相应设计。

    d. 每一个神经网元都是由两部分组成:一个求和、一个函数,

    e. 这个函数我们称为“激活函数”,通过它来为下一层的计算进行判断,来激活下一层,所以叫激活函数f

  3. 神经网络模型-训练过程

    a. 数据准备:确定深度学习模型的输入特征与输出标签数据样本

    b. 设计模型结构:开发者通过 AI 框架开发了神经网络模型结构,实线代表权重、圆代表对输入特征数据计算的操作

    c. 训练过程:

    i. 前向传播(Forward Propagation):输入到输出各层计算(如卷积、池化层等),产生输出并完成损失函数计算。ii. 反向传播(Back Propagation):由输出到输入反向完成整个模型中各层的权重和输出对损失函数的梯度求解。iii. 梯度更新(Weight Update):根据指定的指定学习率,对模型权重通过梯度下降算法完成权重的更新。
    
  4. 神经网络模型-推理过程

    a. 推理(Inference)只需要执行训练过程中的前向传播过程

    b. 当完成模型训练,意味着在给定的数据集上,模型已经达到最佳或者满足需求的预测效果。如果 AI 算法工程师对模型预测效果满意,就可以进入模型部署进行推理和使用模型。

  5. 神经网络模型-学习(训练)与工作(推理)流程

    a. 训练:通过设计合适 AI 模型结构以及损失函数和优化算法,将数据集以 mini-batch (数据集分为多个批次,作用是每次使用少量数据更新模型参数,再用新的数据验证等刚得到模型参数的计算效果)反复进行前向计算并计算损失,反向计算梯度利用优化函数来更新模型,使得损失函数最小。训练过程最重要是梯度计算和反向传播。

    b. 推理:在训练好的模型结构和参数基础上,进行一次前向传播得到模型输出。相对于训练,推理不涉及梯度和损失优化。最终目标是将训练好的模型部署生产环境中。

  6. 神经网络结构与参数的关系

    a. 人类提供了网络的结构,架构是神经网络的天赋

    b. 机器自己根据数据找出所有的参数,机器自己后天学习的成果,得到的不同f函数就是不同模型

  7. 神经网络计算过程

    a. 如果用传统的程序代码写出来,就是对数组用很多循环进行加减乘除。

    b. 如果用数学方法则都是线性代数的矩阵运算,特别适合用GPU做并行计算。

  8. 简单的神经网络模型就是感知机模型,可以简单地理解为单层的神经网络

  9. Weights (权重)和 biases(偏置)被称为的网络参数

  10. 激活函数通俗理解是3个作用:

    a. 归一化:前面的输出z可以是任意字,激活函数把z进行“归一化”,使得输出重新落到(0,1)区间

    b. 权重化:前面输出z在下一层是否值得关注?应按多大的权重关注?用(0,1)区间表示权重。

    c. 传递阀门:再进一步,如果权重低于某个阈值,可以置0,表示不继续传递

    d. PS:激活函数多种,根据需求来选择使用

  11. 神经网络的学习过程

在这里插入图片描述

  1. 利用神经网络学习的全过程

在这里插入图片描述

  1. 神经网络的结构通常包括输入层、隐藏层和输出层:

    1. 输入层(Input Layer)

      • 输入层接收原始数据,每个神经元对应一个输入特征。
    2. 隐藏层(Hidden Layer)

      • 隐藏层位于输入层和输出层之间,负责提取和表示数据的特征。神经网络可以有一个或多个隐藏层,层数越多,网络越深。
    3. 输出层(Output Layer)

      • 输出层生成最终的预测结果,每个神经元对应一个输出类别或回归值。

http://www.ppmy.cn/news/1554480.html

相关文章

16、PyTorch中进行卷积残差模块算子融合

文章目录 1. 1x1卷积核-> 3x3卷积核2. 输入x --> 3x3卷积核,无变化3. 代码 1. 1x1卷积核-> 3x3卷积核 假设我们有一个1x1的卷积核,需要通过填充变为一个3x3的卷积核,实现的是像素之间无关联 [ 4 ] → [ 0 0 0 0 4 0 0 0 0 ] \begin{equation}…

Android显示系统(07)- OpenGL ES - 纹理Texture

Android显示系统(02)- OpenGL ES - 概述 Android显示系统(03)- OpenGL ES - GLSurfaceView的使用 Android显示系统(04)- OpenGL ES - Shader绘制三角形 Android显示系统(05)- OpenGL…

JAVA学习日记(二十五)多线程

一、多线程概念 线程: 线程是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位 (应用软件中相互独立,可以同时运行的功能) 进程: 进程是程序的基本执行实体 多线程应用场景&#x…

Connection对象,Statement对象和ResultSet对象的依赖关系 JDBC

在JDBC(Java Database Connectivity)中,Connection、Statement和ResultSet是三个主要的接口,用于与数据库进行交互。当Connection被关闭时,与之关联的Statement和ResultSet对象也会被关闭,这是因为它们之间…

梳理你的思路(从OOP到架构设计)_基本OOP知识03

目录 1、<基类/子类 >结构的接口(卡榫函数) 1&#xff09;卡榫(Hook) 2&#xff09;卡榫函数的Java实现 2、IoC机制与基於 Default 軟硬整合觀點 函数 1&#xff09;卡榫函数实现IoC机制 2&#xff09;默认(Default)行为 1、<基类/子类 >结构的接口(卡榫函数…

容器部署Prometheus+Grafana

一、Grafana介绍 Zabbix 和 Grafana 是两种流行的监控工具,它们在功能和用途上有所不同: Zabbix: Zabbix 是一个开源的监控解决方案,主要用于监控网络服务和应用程序。它包括了自己的数据存储解决方案,可以直接从监控的设备收集数据。Zabbix 提供了广泛的监控功能,包括但…

【离线环境迁移】使用Conda打包和还原Python环境指南

本文介绍了一种利用Conda工具快速打包和迁移Python环境的方法。 通过简单的步骤&#xff0c;轻松实现离线服务器的环境配置&#xff0c;解决网络限制问题。 1.创建环境并安装相关依赖 conda create -n myenv python3.x conda activate myenv conda install <package_list&g…

Linux絮絮叨(六) 文件与目录管理

Linux 的目录结构为树状结构&#xff0c;最顶级目录为根目录 / 绝对路径与相对路径 绝对路径&#xff1a;以 / 为起点的路径&#xff0c;例如 /usr/share/doc。相对路径&#xff1a;以当前路径为起点的路径&#xff0c;例如 cd ../man。 常用命令 1. ls (列出目录内容) 功能…