【零基础学AI】第 21 章——神经网络怎样工作

发布时间:2026/11/2 11:06:00

【零基础学AI】第 21 章——神经网络怎样工作 第 21 章 神经网络怎样工作文章目录第 21 章 神经网络怎样工作 关于《AI 零基础 36 讲》1. 从一个加权计算开始2. 沿着图算到输出3. 把图翻译成数组4. 改一项权重观察输出5. 激活函数增加了什么能力6. 根据损失更新参数7. 连续更新与实验范围8. 运行与常见错误9. 独立练习先给出两个数字 1 和 2按几组权重算下去得到 5.5。目标值是 4当前偏高。调整参数后重新计算一次更新就能得到约 3.733。这是本章神经网络实验实际发生的变化。我们从一个两个输入、两个隐藏节点、一个输出的网络开始。它小到可以拿纸笔算完也能用 NumPy 验证。读完本章你会得到网络结构图、逐步手算表、参数修改对照、二十次更新记录并能说明每层的输入输出形状。请先完成第 16 章的梯度下降与第 20 章的评估熟悉第 13 章数组计算。 关于《AI 零基础 36 讲》零基础也能开始学 AI《AI 零基础 36 讲》是一套面向初学者的 AI 入门教程。课程从认识和使用 AI 开始逐步学习Python、数据处理、机器学习与深度学习再进入大模型应用开发最后完成个人知识库助手的综合实践。本篇是正式讲解文章通过具体例子、原创图示和操作结果讲清概念。涉及编程的章节提供可运行代码方便你边读边试。读完以后动手检验建议按专栏顺序学习并完成对应的课后训练检查自己能否独立运用本章知识。博客专栏《AI 零基础 36 讲》1. 从一个加权计算开始线性回归已经用过“输入乘系数再加截距”的计算。一个神经元也可以先做类似动作将收到的数字分别乘权重求和后加偏置再经过激活函数得到输出。这里的神经元是一个计算单元名称不要求我们把程序想成真实大脑。权重决定某个输入对当前加权和的影响偏置提供一个不依赖输入的可调整常数。激活函数是对加权和继续做的一次变换。本章用 ReLU它将负数变成零正数保持原值。中文可以直接理解为“保留正值截去负值”。第一隐藏节点收到输入 1、2对应权重 0.5、1.0偏置为零。加权和为1 × 0.5 2 × 1.0 0 2.5。经过 ReLU 后仍是 2.5。第二隐藏节点收到同样两个输入权重为 -1.0、0.5偏置为 -0.5。加权和为1 × (-1.0) 2 × 0.5 - 0.5 -0.5。经过 ReLU 后是零。这两个节点属于同一层使用同一份输入各自算出一个结果。层就是这样一组计算单元。隐藏层位于输入与最终输出之间当前计算得到两个中间数值所以这一层宽度为 2。2. 沿着图算到输出图的方向从左到右。连线数字表示权重隐藏节点下方写着偏置。输出节点接收 2.5 和 0权重为 2.0、-1.0输出偏置为 0.5。最终结果是2.5 × 2.0 0 × (-1.0) 0.5 5.5。输出层没有额外使用 ReLU。本章做的是单个数值输出5.5 没有分类概率含义。如果任务换成分类还需要匹配类别的输出形式与损失。先把这一条计算走顺下一章再让框架帮助处理参数。量手算过程结果z₁1 × 0.5 2 × 1.0 02.5z₂1 × (-1.0) 2 × 0.5 - 0.5-0.5h₁max(0, z₁)2.5h₂max(0, z₂)0预测h₁ × 2.0 h₂ × (-1.0) 0.55.5平方损失(5.5 - 4)²2.25z表示激活前的加权和h表示隐藏层激活后的输出。这两个记号用来区分计算阶段。前向计算就是按输入、隐藏层、输出层的方向依次算出结果。损失函数将预测与目标之间的差异变成一个数训练时希望它变小。本章采用平方损失偏差 1.5平方后为 2.25。第 20 章讨论过训练损失与最终评估的用途在这里只观察训练变化。3. 把图翻译成数组先固定矩阵的含义。W1的行对应输入列对应隐藏节点。第零列[0.5, 1.0]是第一节点的两项权重第一列[-1.0, 0.5]是第二节点的权重。importnumpyasnp xnp.array([1.0,2.0])W1np.array([[0.5,-1.0],[1.0,0.5]])b1np.array([0.0,-0.5])W2np.array([2.0,-1.0])b20.5zx W1b1 hnp.maximum(0,z)predictionh W2b2print(加权和,z)print(激活后,h)print(预测,prediction)print(损失,(prediction-4)**2)输出依次为[2.5 -0.5]、[2.5 0.]、5.5、2.25与表格一致。是矩阵乘法运算符会按对应方向相乘求和。*默认逐元素相乘不会自动完成每个神经元的加权求和。数组本章形状对应含义x(2,)一条记录的两个输入W1(2, 2)两输入到两隐藏节点的权重b1、z、h(2,)每个隐藏节点一个数W2(2,)两个隐藏结果到单输出的权重b2、预测标量一个数值本章只支持单条记录因此没有批次维度。若一次输入三条记录通常使用(3, 2)的矩阵第一项表示记录条数第二项表示每条特征数。下一章会实际使用一批数据不能直接把本章限定单条的入口当成批量训练函数。W1恰好为方阵转置后形状仍为(2, 2)程序可能运行却含义改变。维度检查不能代替检查“行列各指什么”本章手算表和数值测试同时核对了这个约定。4. 改一项权重观察输出先不训练只人工改变第一输入到第一隐藏节点的权重将 0.5 改成零。第一节点加权和从 2.5 变成 2.0第二节点不变最终输出变成 4.5平方损失降为 0.25。fromexamples.network_coreimportX,TARGET,initial_parameters,forward,loss parametersinitial_parameters()print(原输出与损失,forward(X,parameters)[output],loss(X,TARGET,parameters))parameters[W1][0,0]0.0print(改动后输出与损失,forward(X,parameters)[output],loss(X,TARGET,parameters))输出两行分别为5.5 2.25与4.5 0.25。这个实验给了你一条具体影响关系。某条连接的权重改变会先影响相应节点再影响后面的计算。改另一节点的权重时结果未必立刻变化。第二节点当前加权和为负ReLU 输出为零。在改动还没使它跨过零的范围里下游接到的仍是零。这与一个始终按同样比例响应输入的线性模型有差别。5. 激活函数增加了什么能力把两层纯加权求和连接起来并不会仅凭层数就得到非线性关系。将第二层表达式代入第一层后输入仍然只乘一个合并后的系数再加一个合并后的常数。这个关系常被称为仿射变换指线性计算加上偏置。用一维教学例子看 ReLU 的影响。两个隐藏节点分别计算ReLU(x)和ReLU(-x)输出将两项相加。当 x 为负第二项保留当 x 为正第一项保留最终得到绝对值函数|x|。图中的实线出现了折点。删去两个 ReLU 后输出变成x (-x)在所有位置都为零。权重和连接都相同激活函数改变了整段输入输出关系。importnumpyasnp xnp.array([-2.0,-1.0,0.0,1.0,2.0])with_activationnp.maximum(x,0)np.maximum(-x,0)without_activationx(-x)print(加入激活,with_activation)print(移除激活,without_activation)输出为[2. 1. 0. 1. 2.]与五个零。这里的权重由我们设定没有进行训练。这个小例子只说明网络能够表达一种带折点的函数无法证明任意网络都能顺利学到任意目标。多层网络将前一层的输出交给后一层不同层可以形成不同的中间表示。中间数值的实际含义由任务、数据与学到的参数共同决定本章两个隐藏节点仅承担明确写出的数学计算。6. 根据损失更新参数手改 0.5 为零降低了损失但参数很多时需要一种可重复的规则。第 16 章的梯度下降可以继续使用。梯度告诉我们参数在当前位置小幅变化时损失怎样变化更新时用原参数减去学习率乘梯度。反向计算从损失开始沿计算关系往回求每个参数的梯度。这个过程常称为反向传播。本章用明确的链式计算实现再用每个参数左右各改一小步的数值差分独立核对九个参数的解析梯度与差分结果一致。先看输出偏置。损失为(预测 - 4)²对预测的导数为2 × (5.5 - 4) 3。输出偏置每增加一点预测增加同样一点所以它的梯度也是 3。学习率取 0.02偏置从 0.5 更新为0.5 - 0.02 × 3 0.44。输出权重第一项的梯度为3 × h₁ 7.5从 2.0 更新为 1.85。沿着第一隐藏节点往回求得到输入层第一列权重梯度[6, 12]偏置梯度为 6。当前第二节点加权和为 -0.5ReLU 在负半轴局部导数为零这条路径的梯度为零。参数原值梯度一次更新后W1 第一列[0.5, 1.0][6, 12][0.38, 0.76]b1 第一项06-0.12W2 第一项2.07.51.85b20.530.44所有梯度都在同一组旧参数上计算完再一起更新。若改一个参数后立刻用新值计算下一个参数的梯度会变成另一种过程。本章函数返回一组新参数保留旧值测试也确认了这个顺序。fromexamples.network_coreimportX,TARGET,initial_parameters,gradients,update,forward,loss parametersinitial_parameters()new_parametersupdate(parameters,gradients(X,TARGET,parameters),rate0.02)print(新加权和,forward(X,new_parameters)[z])print(新预测,forward(X,new_parameters)[output])print(新损失,loss(X,TARGET,new_parameters))新加权和约为[1.78, -0.5]新预测约为 3.733新损失约为 0.071289。它越过了目标 4但偏离的距离比原来小。梯度下降不要求每一步恰好停在目标上学习率控制本次更新幅度。ReLU 在零点没有普通导数。本章代码采用零次梯度约定差分核验选择的初始点远离零避免把不可导位置的差分当作唯一正确导数。PyTorch 在下一章会自动处理相应计算图具体边界约定仍要以框架文档为准。7. 连续更新与实验范围从初始参数开始学习率保持 0.02连续更新二十次。图的横轴是已完成更新次数纵轴是平方损失。末次预测接近 4损失约为7.89e-31。这是接近浮点计算精度的结果展示时可以写“接近零”不用把它宣传成完全没有误差。这里只有一条训练记录许多不同参数都能使它输出 4结果无法唯一解释每项权重应是什么。没有验证集也没有独立测试数据。下一章会使用一组数据练习训练循环图片分类与泛化评估留到之后。8. 运行与常见错误从本章目录运行无需显卡也无需下载数据。py-3.12-m venv.venv.\.venv\Scripts\python.exe-m pip install-r requirements.txt.\.venv\Scripts\python.exe examples/run_network.py.\.venv\Scripts\python.exe-m unittest discover-s tests-v主程序保存手算表、更新 CSV、梯度差分对照和三张原创图八项测试通过。绘图需要中文字体Windows 使用微软雅黑其他系统可以安装 Noto Sans CJK SC。矩阵乘法提示维度不匹配时先写出每项形状。本章输入长度为 2W1第一维也必须为 2。若误用*程序可能输出一个(2, 2)的表而没有立刻报错这个形状已经暴露了加权求和没有完成。损失上升时先确认梯度与更新方向再尝试减小学习率。若只看到零梯度查看激活前的数值是否落在 ReLU 负半轴。当前负节点的零梯度符合计算不能因此断言所有框架求导都失败了。9. 独立练习保持初始参数把输入改成[2, 1]。先算两项加权和、ReLU 输出与最终预测再用程序核对。尝试只改输出偏置解释为什么预测会同步变化。答案与另外五道练习见【零基础学AI】第 21 章课后练习与答案。下一章用 PyTorch 自动求导让本章人工计算的更新过程成为一个完整训练循环。
延伸阅读

更多相关文章

2026/11/2 11:06:00

Python aie-ipyleaflet 包详解与实战案例

1. 引言aie-ipyleaflet 是面向 AI Earth(阿里云达摩院推出的地球科学云计算平台)的交互式地图可视化 Python 包。它基于 ipyleaflet 构建,将 AI Earth 平台的海量遥感数据、地理计算能力与 Jupyter 生态的交互式地图组件深度结合,…

2026/11/2 11:00:59

计算机网络八股

1、TCP/IP模型和OSI模型的区别OSI模型是一个用于计算机或通信系统之间互相联系的标准体系。将计算机网络分成不同的7个层级,每个层级都有自己相对应的功能。每个层级都建立在下方层级之上。下层为上层提供服务,上层为下层提供接口。七层从下到上分别是物…

2026/11/2 11:00:59

C语言知识学习第三天

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 12:06:13

GEE云平台实现红树林自动化制图的技术解析

1. GEM_v2.0红树林制图方法概述红树林作为海岸带关键生态系统,其动态监测对生态保护和气候变化研究具有重要意义。传统遥感解译方法需要专业GIS软件操作和大量本地计算资源,而GEM_v2.0创新性地利用Google Earth Engine(GEE)云平台…

2026/11/2 12:06:13

Context Graph:动态上下文感知的图数据模型解析

1. Context Graph 的本质解析Context Graph(上下文图)是一种用于表示和建模复杂系统中实体间多层次关系的图结构数据模型。它不同于传统图结构的关键在于,Context Graph 能够动态捕捉和反映实体间交互的上下文环境变化。1.1 核心特征与典型应…

2026/11/2 12:06:13

网络游戏数值策划核心:EHP与EDPS模型及属性换算公式详解

简介:面向游戏数值策划与战斗系统设计者的入门到进阶学习资料,围绕网络游戏数值体系展开,重点解决属性价值评估、战斗公式推导与平衡性设计等实际问题。内容从公式与模型的基本逻辑切入,依次讲解模型设定、模型特征参数与公式简介…

2026/11/2 12:06:13

Flink实时计算核心技术与生产环境实践指南

1. Flink实时计算的核心价值与应用场景 Apache Flink作为第三代大数据处理引擎的领军者,其核心优势在于同时支持高吞吐和低延迟的流批一体处理能力。在实际生产环境中,Flink的典型处理延迟可以控制在毫秒级,而吞吐量可达百万级事件/秒。这种特…

2026/11/2 12:06:13

DVWA靶场实战:SQL注入漏洞攻防解析

1. DVWA靶场与SQL注入漏洞概述Damn Vulnerable Web Application(DVWA)是一个专为安全测试设计的PHP/MySQL Web应用,内置了从低到高不同安全等级的漏洞环境。其中SQL注入模块模拟了真实Web应用中常见的数据库安全缺陷,是学习渗透测…

2026/11/2 12:01:12

Moltbot强化学习机器人控制平台实战指南

1. Moltbot(原Clawdbot)项目概述Moltbot(原名Clawdbot)是一款基于强化学习框架开发的智能机器人控制平台,最初由开源社区开发者团队在2021年推出。这个项目最吸引我的地方在于它将复杂的强化学习算法封装成简单易用的A…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑