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

  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.mzph.cn/news/889200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwen2.5-7B-Instruct vLLM 部署调用

Qwen2.5-7B-Instruct vLLM 部署调用 vLLM 简介 vLLM 框架是一个高效的大语言模型推理和部署服务系统,具备以下特性: 高效的内存管理:通过 PagedAttention 算法,vLLM 实现了对 KV 缓存的高效管理,减少了内存浪费&…

解决 Mac(M1/M2)芯片,使用node 14版本

前言 nvm 在安装 Node.js v14.21.3 时,报错: nvm install 14 Downloading and installing node v14.21.3... Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz... curl: (56) The requested URL returned error: 404Bin…

TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面

前言 前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。 普通用户使用 参照上一篇教…

车载ADB:让汽车更智能的桥梁

随着科技的不断进步,汽车行业也在迅速迈向智能化。车载Android系统(通常称为Android Auto)正在变得越来越流行,而Android Debug Bridge (ADB) 作为连接和调试这些系统的桥梁,也变得尤为重要。在本文中,我们…

【ETCD】【源码阅读】configurePeerListeners() 函数解析

configurePeerListeners 是 ETCD 的一个核心函数,用于为集群中节点之间的通信配置监听器(Peer Listener)。这些监听器主要负责 Raft 协议的消息传递、日志复制等功能。函数返回一个包含所有监听器的列表。 函数签名 func configurePeerList…

uniapp改成用vue起项目

目的:让项目按照vue的打包流程跑流水线 1.按照uniapp官网教程执行 2.执行第二条命令时报错 ERROR Failed to get response from true/vue-cli-version-marker 3.解决方式 报错可能跟yarn有关,然后切换成npm 找到自己本地电脑的这个文件 按照截图修…

装饰器模式(Decorator Pattern)

装饰器模式(Decorator Pattern) 定义 装饰器模式是一种结构性设计模式,通过 动态组合对象 的方式,为对象添加额外功能,而无需修改原有类。 装饰器模式的核心思想 对象增强:在现有类的基础上动态添加功能&…

【SH】微信小程序调用EasyDL零门槛AI开发平台的图像分类研发笔记

文章目录 微信小程序字符串字符串模板字符串拼接 上传图片编写JS代码编写wxml代码编写wxss代码 GET请求测试编写测试代码域名不合法问题 GET和POST请求测试编写JS代码编写wxml代码编写wxss代码 效果展示 微信小程序字符串 字符串模板 这是ES6引入的特性,允许你通过…

【C#】int? , C# 中的可空类型(Nullable Types)

在 C# 中,问号(?)用于表示可空类型(nullable types)。在你的代码中,int? 表示的是可空的整数类型,也就是可以存储 int 类型的值,也可以存储 null。具体来说: int? 详…

[小白系列]Ubuntu安装教程-安装prometheus和Grafana

Docker安装prometheus 拉取镜像 docker pull prom/prometheus 配置文件prometheus.yml 在/data/prometheus/建立prometheus.yml配置文件。(/data/prometheus/可根据自己需要调整) global:scrape_interval: 15s # By default, scrape targets ev…

在Spring Boot项目中整合Redis:高效数据存储与缓存的最佳实践

目录 1. 引入依赖 2. 创建序列化配置类 2.1 序列化的选择 3. 配置YAML文件 3.1 连接池的配置 4. 使用Redis 4.1 复杂数据类型的存储 4.2 列表、集合和哈希的使用 4.2.1 列表示例 4.2.2 集合示例 4.2.3 哈希示例 5. 处理事务和管道 5.1 事务示例 5.2 管道示例 6…

嵌入式硬件设计 — 智能设备背后的隐形架构大师

目录 引言 一、嵌入式硬件设计概述 (一)需求分析 (二)硬件选型 (三)电路设计 (四)PCB 制作与焊接 (五)硬件调试与测试 (六)软…

调度系统:使用 Airflow 对 Couchbase 执行 SQL 调度时的潜在问题

使用 Airflow 对 Couchbase 执行 SQL 调度时,通常情况下不会直接遇到与 Couchbase 分布式特性相关的异常,但在某些特定情境下,可能会出现一些与分布式环境、调度和数据一致性相关的潜在问题。以下是一些可能会遇到的问题和建议的解决方案&…

[大数据]Hudi编译集成

1. Hudi概述 1.1 Hudi简介 What is Apache Hudi Apache Hudi is the next generation streaming data lake platform. Apache Hudi brings core warehouse and database functionality directly to a data lake. Hudi provides tables, transactions, efficient upserts/dele…

windows下 mysql开启 binlog日志

一、查看是否开启 binlog -- 方式一 show binary logs;-- 方式二 show VARIABLES like log_bin 说明没有开启 方式一 :you are not using binary logging 方式二:log_bin off 二、编辑 my.ini 配置文件 默认安装地点位于:C:\ProgramDat…

本题要求采用选择法排序,将给定的n个整数从大到小排序后输出。

#include <stdio.h> #define MAXN 10 int main() { int i, index, k, n, temp; int a[MAXN]; scanf("%d", &n); for (i 0; i < n; i) { scanf("%d", &a[i]); } // 外层循环控制排序轮数&#xff0c;一共需要n-1轮 for (k 0; k < n…

Vue.js的生命周期

Vue.js 是一个构建用户界面的渐进式框架&#xff0c;它提供了一个响应式和组件化的方式来构建前端应用。了解 Vue 的生命周期对于开发者来说至关重要&#xff0c;因为它可以帮助我们更好地控制组件的状态和行为。本文将详细介绍 Vue 的生命周期&#xff0c;并提供相应的代码示例…

Java-22 深入浅出 MyBatis - 手写ORM框架3 手写SqlSession、Executor 工作原理

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

Android 逆向/反编译/Hook修改应用行为 基础实现

前言&#xff1a;本文通过一个简单的情景案例实现安卓逆向的基本操作 一、情景描述 本文通过一个简单的情景案例来实现安卓逆向的基本操作。在这个案例中所使用的项目程序是我自己的Demo程序&#xff0c;不会造成任何的财产侵害&#xff0c;本文仅作为日常记录及案例分享。实…

IDEA创建Spring Boot项目配置阿里云Spring Initializr Server URL【详细教程-轻松学会】

1.首先打开idea选择新建项目 2.选择Spring Boot框架(就是选择Spring Initializr这个) 3.点击中间界面Server URL后面的三个点更换为阿里云的Server URL Idea中默认的Server URL地址&#xff1a;https://start.spring.io/ 修改为阿里云Server URL地址&#xff1a;https://star…