拓冰建站拓冰建站
首页 / 资讯中心 / 正文

从零构建多层感知机框架:梯度下降、反向传播与 MNIST 实战(generative-ai-for-beginners 神经网络专题)

从零构建多层感知机框架梯度下降、反向传播与 MNIST 实战generative-ai-for-beginners 神经网络专题【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners本指南以 own_framework.md 为核心展开讲解如何在单个感知机的基础上扩展出一个支持多分类、回归与非线性可分数据的模块化多层感知机Multi-Layered PerceptronMLP框架。读完本文你将掌握机器学习问题的形式化建模、损失函数选型、梯度下降与随机梯度下降SGD的原理、多层网络的前向计算与反向传播backpropagation推导并理解该框架在 RAG 课程知识库中的真实用途与 MNIST 作业要求。从单层感知机到多层感知机框架升级的三大动机在进入多层感知机之前需要先回顾上一节的单层感知机见 perceptron.md。1957 年 Frank Rosenblatt 在康奈尔航空实验室实现了名为 Mark-1 的硬件感知机用 20×20 的光电池阵列即 400 个输入和一个二值输出识别三角形、正方形、圆形等基础几何图形。单层感知机的输出为y(x) f(wᵀx)其中f是阶跃激活函数本质上是一个二分类线性模型——它只能区分线性可分的两类数据。正是单层模型的这一局限构成了向多层框架扩展的直接动机。own_framework 文档开篇就明确了新框架要达成的三个能力在二分类之外支持多分类multiclass classification在分类之外解决**回归regression**问题能够分离线性不可分的类别。同时我们要用 Python 自建一个模块化框架以便构造不同的神经网络架构——这正是本课程从底层理解神经网络理念的落地。机器学习问题的形式化损失函数与模型参数在构造框架之前先形式化地描述机器学习问题。假设有带标签的训练数据集 ⟨X,Y⟩我们需要构建一个模型f使其预测尽可能准确。预测质量由损失函数Loss functionℒ 度量常用损失包括问题类型损失函数说明回归绝对误差∑ᵢ\|f(x⁽ⁱ⁾) − y⁽ⁱ⁾\|预测数值与真实值的绝对差之和回归平方误差∑ᵢ(f(x⁽ⁱ⁾) − y⁽ⁱ⁾)²放大较大误差的影响分类0-1 损失与模型准确率本质上等价分类逻辑损失logistic loss可导、利于梯度优化对于单层感知机模型f是线性函数f(x) wx bw为权重矩阵、x为输入特征向量、b为偏置向量。在分类任务中我们通常希望网络输出的是各类别的概率因此常引入softmax函数 σ 把任意实数向量归一化为概率分布模型变为f(x) σ(wx b)。w与b统称为模型的参数θ ⟨w, b⟩。给定数据集 ⟨X,Y⟩就可以把整个数据集上的总体误差表达为参数 θ 的函数。由此得到一个贯穿全文的核心结论✅神经网络训练的目标就是通过改变参数 θ 来最小化误差。梯度下降优化与随机梯度下降SGD函数优化领域有一个经典方法——梯度下降gradient descent。其思想是计算损失函数对参数的导数多维情形下称为梯度 gradient然后沿使误差减小的方向调整参数。形式化步骤如下用随机值初始化参数 w⁽⁰⁾、b⁽⁰⁾反复执行更新步w⁽ⁱ⁺¹⁾ w⁽ⁱ⁾ − η·∂ℒ/∂wb⁽ⁱ⁺¹⁾ b⁽ⁱ⁾ − η·∂ℒ/∂b其中 η 是学习率learning rate控制每次更新的步长。需要注意的是理论上每步优化都应基于整个数据集计算因为损失是所有训练样本损失之和但实际中我们只取数据集的一小部分——minibatch——基于数据子集计算梯度。由于子集每次随机选取这种方法被称为随机梯度下降Stochastic Gradient DescentSGD它显著降低了单步计算成本成为现代神经网络训练的标准范式。在 perceptron.md 中可以看到感知机训练的 Python 雏形初始化权重向量后反复随机抽取正负样本按w⁽ᵗ⁺¹⁾ w⁽ᵗ⁾ ∑ηxᵢtᵢ更新权重。多层感知机的训练将延续同样的梯度下降思想只是梯度计算复杂度大幅提升。多层感知机架构多步前向计算与非线性的引入单层网络只能处理线性可分问题。要构造更丰富的模型可以把多个网络层组合起来。数学上这意味着函数f拥有更复杂的形式需要分多步计算z₁ w₁x b₁z₂ w₂α(z₁) b₂f σ(z₂)其中α 是非线性激活函数non-linear activation function——这是多层网络能够拟合非线性决策边界的关键σ 是 softmax 函数用于输出层生成类别概率参数集合扩展为 θ ⟨w₁, b₁, w₂, b₂⟩。隐藏层越多、每层神经元越多模型表达力越强但正如 frameworks.md 中过拟合overfitting一节所强调的模型的丰富度参数数量必须与训练样本数量保持平衡参数过多的强模型会记住训练点而非学到底层规律表现为训练误差极低而验证误差很高。因此在设计自建框架时层与神经元规模应当是一个可配置的参数而不是写死的常量。反向传播链式法则驱动的倒推式梯度计算梯度下降算法本身不变但多层网络的梯度计算变得复杂。利用链式求导法则chain rule各层参数的导数可以分解为∂ℒ/∂w₂ (∂ℒ/∂σ)(∂σ/∂z₂)(∂z₂/∂w₂)∂ℒ/∂w₁ (∂ℒ/∂σ)(∂σ/∂z₂)(∂z₂/∂α)(∂α/∂z₁)(∂z₁/∂w₁)✅ 链式求导法则用于计算损失函数对各参数的导数。注意观察所有这些表达式的最左端部分是相同的——都从损失函数 ℒ 出发。这意味着我们可以高效地先算出损失对输出的导数再沿着计算图倒着逐层传播把每个中间量的偏导复用起来避免重复计算。正因为训练过程中误差信号是从输出端向输入端逐层回传的多层感知机的这一训练方法被称为backpropagation反向传播简称 backprop。框架实现上这就对应 frameworks.md 所说的核心需求不仅要能在张量上做乘法、加法、sigmoid、softmax 等运算还要能计算任意表达式的梯度以便执行梯度下降优化。我们的自建框架正是把每个网络层封装成同时具备前向计算与反向backward即求导能力的组件反向传播时逐层调用 backward 方法累积梯度——这与 TensorFlow、PyTorch 底层计算图computational graph的微分思路一脉相承低层 API 负责构建计算图并自动微分高层 APIKeras、PyTorch Lightning则把网络看作层的序列通过fit一键完成训练。框架的实际落点二维分类挑战与 MNIST 作业文档明确指出本节的目标是亲手构建并训练属于自己的多层感知机框架并把它用于一个简单的二维分类任务从而亲眼看到现代神经网络的工作细节。动手路径如下 挑战Challenge进入随附的 OwnFramework notebook按照指引实现自己的框架前向计算、损失、反向传播、参数更新观察多层感知机的完整训练过程。 作业Assignment使用本节构建的框架解决MNIST 手写数字分类问题——即对给定图像判断最可能对应的数字0–9 共 10 类正是框架多分类能力的直接验证。需要说明的是在当前的 generative-ai-for-beginners 仓库中该文档的原始位置在15-rag-and-vector-databases/data/own_framework.md与 perceptron.md、frameworks.md 同属 RAG 课程预置的神经网络讲义知识库数据。在 notebook-rag-vector-databases.ipynb 的检索结果输出中可以看到这两份讲义被切分为 chunk 并写入带path列的 DataFrame例如data/own_framework.md、data/perceptron.md当用户询问 what is a perceptron? 这类问题时系统会检索出最相近的文档块连同问题一起交给 LLM 生成 grounded 回答。也就是说你在本文学到的多层感知机原理本身就是 RAG 课程用于演示用自有数据给 LLM 增强上下文的知识库内容——先读透它再在 RAG notebook 中观察它如何被索引、检索与增强生成理解会完整得多。学习路径与自测建议文档的复习与自测部分建议进一步钻研 backpropagation——它是 AI/ML 中极其常用的算法值得深入研究。可以围绕以下问题自检单层感知机为何无法处理线性不可分数据引入非线性激活函数后为什么可以梯度下降中学习率 η 过大或过小分别会导致什么问题为什么说反向传播是高效地复用最左端公共导数的链式法则应用minibatch 随机梯度下降相比全量梯度下降在计算效率与收敛行为上有何差异如果想继续深入可以阅读同目录下的 frameworks.md 了解 TensorFlow/PyTorch 的 API 分层设计以及偏置-方差权衡bias-variance tradeoff下的过拟合机制随后进入 notebook-rag-vector-databases.ipynb看这些讲义数据如何被嵌入、建索引并支撑一个 grounded 的 RAG 问答应用。小结本文完整覆盖了从损失函数形式化、梯度下降/SGD 优化、多层前向计算到反向传播推导的整套神经网络入门知识链并明确了自建框架的模块化设计思路与 MNIST 实战作业。理解这条主线就等于打通了单个神经元 → 多层框架 → 真实框架TensorFlow/PyTorch→ RAG 知识库之间的全部关节。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门