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

  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简单易用的用户界面。 普通用户使用 参照上一篇教…

【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 找到自己本地电脑的这个文件 按照截图修…

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

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

[小白系列]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…

[大数据]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…

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

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

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

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

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

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

基于MATLAB的信号处理工具:信号分析器

信号(或时间序列)是与特定时间相关的一系列数字或测量值,不同的行业和学科将这一与时间相关的数字序列称为信号或时间序列。生物医学或电气工程师会将其称为信号,而统计学家或金融定量分析师会使用时间序列这一术语。例如&#xf…

Plugin - 插件开发03_Spring Boot动态插件化与热加载

文章目录 Pre方案概览使用插件的好处流程CodePlugin 定义Plugin 实现Plugin 使用方动态加载插件类加载器注册与卸载插件配置文件启动类测试验证 小结 Pre 插件 - 通过SPI方式实现插件管理 插件 - 一份配置,离插件机制只有一步之遥 插件 - 插件机制触手可及 Plug…

ECharts柱状图-阶梯瀑布图,附视频讲解与代码下载

引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…

C/C++流星雨

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/C…

ModelScope-Agent(1): 基于开源大语言模型的可定制Agent系统

目录 简介快速入门 简介 github地址 快速入门 看前两篇,调用千问API和天气API # 选用RolePlay 配置agent from modelscope_agent.agents.role_play import RolePlay # NOQArole_template 你扮演一个天气预报助手,你需要查询相应地区的天气&#x…

【模型对比】ChatGPT vs Kimi vs 文心一言那个更好用?数据详细解析,找出最适合你的AI辅助工具!

在这个人工智能迅猛发展的时代,AI聊天助手已经深入我们的工作与生活。你是否曾在选择使用ChatGPT、Kimi或是百度的文心一言时感到一头雾水?每款AI都有其独特的魅力与优势,那么,究竟哪一款AI聊天助手最适合你呢?本文将带…

微信小程序uni-app+vue3实现局部上下拉刷新和scroll-view动态高度计算

微信小程序uni-appvue3实现局部上下拉刷新和scroll-view动态高度计算 前言 在uni-appvue3项目开发中,经常需要实现列表的局部上下拉刷新功能。由于网上相关教程较少且比较零散,本文将详细介绍如何使用scroll-view组件实现这一功能,包括动态高度计算、下拉刷新、上拉加载等完整…

SQL——DQL分组聚合

分组聚合: 格式: select 聚合函数1(聚合的列),聚合函数2(聚合的列) from 表名 group by 标识列; ###若想方便分辨聚合后数据可在聚合函数前加上标识列(以标识列进行分组) 常见的聚合函数: sum(列名):求和函数 avg(列名)…