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本篇基于generative-ai-for-beginners仓库中的课程资料 own_framework.md(保加利亚语翻译版,英文原文见 own_framework.md),系统讲解多层感知机(Multi-Layered Perceptron,MLP)的数学形式化:机器学习问题的损失函数定义、基于梯度下降与随机梯度下降(SGD)的参数优化,以及通过链式法则实现反向传播(backpropagation)的核心推导过程。读完后,你将能够理解现代神经网络训练的本质——如何通过最小化损失函数来迭代更新参数,并理解课程中自研模块化 Python 神经网络框架的设计动机。这份文档在课程中的位置该文档是课程 Lesson 15(RAG 与向量数据库)知识基地料之一,存放于 translations/bg/15-rag-and-vector-databases/data/ 目录下,与 perceptron.md(单层感知机,即本文的前一节)、frameworks.md(神经网络框架与过拟合,即后续内容)构成一个完整的学习序列:从最简单的单层感知机,扩展到多层感知机,再过渡到 TensorFlow/PyTorch 等工业框架。值得注意的是,从 notebook-rag-vector-databases.ipynb 中可以看到,课程笔记本的data_paths显式引用了data/own_framework.md,即这份神经网络讲义在本仓库中同时承担着 RAG 实战的知识库文档角色——15 课 README 描述的把 AI for beginners 神经网络课程资料作为数据源来给 LLM 做 grounding的场景,正是以这几份 Markdown 文档为语料。因此,理解本文的内容,既是在学习神经网络基础,也是在理解该课程 RAG 案例中被检索、被引用的那部分知识本体。提示:该保加利亚语文档注明由 AI 翻译服务生成,原文档提示自动翻译可能含错漏,英文原版 15-rag-and-vector-databases/data/own_framework.md 应视为权威来源;本文基于两者内容一致的部分进行讲解。从单层感知机到更灵活的框架文档开篇指出,在前一节(perceptron.md)中,读者已经学习了最简单的神经网络模型——单层感知机,它本质上是一个二分类的线性模型。本节将其扩展为一个更灵活的框架,使模型能力从三处得到提升:除二分类外,支持多分类(multi-class classification);除分类外,可以解决回归问题;能够分割线性不可分的类别。扩展的手段是叠加层数:文档明确提出要开发一个自研的模块化 Python 框架,用来搭建不同架构的神经网络。这也是该节标题 own framework(自己的框架) 的由来。作为对照,前一节 perceptron.md 中感知机的输出定义为y(x) f(wᵀx),其中 f 是阶跃激活函数;其训练通过最小化感知机判据E(w) -Σwᵀxᵢtᵢ来完成,权重更新式w⁽ᵗ⁺¹⁾ w⁽ᵗ⁾ Σηxᵢtᵢ已经初现梯度下降的影子——本文的 MLP 内容正是这一思路向多层、非线性场景的推广。机器学习问题的形式化文档首先对机器学习任务做形式化定义:设训练数据集为X,标签为Y,需要构建一个模型f使预测尽可能准确,预测质量由损失函数(Loss function)ℒ 衡量。文档给出的常用损失函数为:回归问题(预测一个数值):可使用绝对误差Σᵢ|f(x⁽ⁱ⁾) − y⁽ⁱ⁾|或平方误差Σᵢ(f(x⁽ⁱ⁾) − y⁽ⁱ⁾)²;分类问题:使用0-1 损失(本质上等价于模型的准确率 accuracy)或对数损失(logistic loss)。对单层感知机而言,函数f被定义为线性函数:f(x) wx b其中w是权重矩阵,x是输入特征向量,b是偏置向量。而对不同的神经网络架构,f可以呈现更复杂的形式。文档还强调了一个分类场景的常见技巧:为了把网络输出转换为各类别的概率(例如对输出做归一化),常引入softmax函数 σ,此时f变为:f(x) σ(wx b)在上述定义中,w与b合称为参数θ ⟨w, b⟩。给定数据集 ⟨X,Y⟩,就可以把整个数据集上的总误差表示为参数 θ 的函数。由此得到本节的核心命题(文档原文以 ✅ 高亮框强调):神经网络训练的目标,就是通过改变参数 θ 来最小化误差。梯度下降优化(Gradient Descent)文档给出最经典的函数优化方法——梯度下降的形式化描述:计算损失函数对参数的导数(多维情形下称为梯度),并沿使误差减小的方向更新参数。算法步骤为:用随机值初始化参数:w⁽⁰⁾、b⁽⁰⁾;反复迭代以下步骤:w⁽ⁱ⁺¹⁾ w⁽ⁱ⁾ − η · ∂ℒ/∂w b⁽ⁱ⁺¹⁾ b⁽ⁱ⁾ − η · ∂ℒ/∂b其中 η 即学习率(learning rate)。文档随后区分了两个实践要点,值得在动手实现框架时记住:理想情况:每一步优化都基于整个数据集计算(因为损失是对所有训练样本求和);实际情况:每次只取数据集的一小部分——小批量(minibatch)——来估计梯度。由于子集每次都是随机抽取的,该方法被称为随机梯度下降(Stochastic Gradient Descent,SGD)。这一区分直接决定了自研框架中train循环的写法:内层循环应当按 minibatch 采样并更新参数,而不是每个 epoch 只更新一次。多层感知机与反向传播单层网络只能分类线性可分的类别。为了构建更丰富的模型,文档的方案是组合多个层,数学上等价于把f的计算拆成多步:z₁ w₁x b₁ z₂ w₂α(z₁) b₂ f σ(z₂)其中:α 是非线性激活函数(non-linear activation function),它是打破多层线性叠加仍等于一层线性这一退化现象的关键;σ 是 softmax 函数(用于把输出转为类别概率);参数为 θ ⟨w₁, b₁, w₂, b₂⟩。梯度下降算法本身保持不变,但梯度计算变得复杂。依据复合函数求导的链式法则(chain rule),对各层权重的导数为:∂ℒ/∂w₂ (∂ℒ/∂σ)(∂σ/∂z₂)(∂z₂/∂w₂) ∂ℒ/∂w₁ (∂ℒ/∂σ)(∂σ/∂z₂)(∂z₂/∂α)(∂α/∂z₁)(∂z₁/∂w₁)文档用一个关键观察点出了反向传播名字的由来:上述所有表达式的最左侧因子(∂ℒ/∂σ …)是相同的,因此可以从损失函数出发,沿计算图从后往前逐层复用中间结果来计算所有参数梯度。这一从损失向后穿行的计算图遍历方式,就是训练多层感知机的backpropagation(反向传播)算法。✅ 文档明确强调:链式法则用于计算损失函数对各参数的导数;而反向传播的更细致实现,课程计划在配套的笔记本示例中展开。从文档本身看,当前仓库中该配套笔记本路径并未随数据文件提供(data 目录下仅有三份 Markdown),因此本文以文档内的公式推导为准,不虚构具体代码文件。学习路径:从手写 backprop 到框架自动微分文档中有一句承上启下的话:我们将开发自己的模块化 Python 框架,以便搭建不同的神经网络架构。这句话与下一节 frameworks.md 形成呼应:该节指出,像numpy这样的库能完成张量运算(乘、加、sigmoid、softmax 等),但梯度需要自己算——在上一节我们开发的框架中,不得不在backward方法里手动编写所有求导函数来实现反向传播;理想的框架应当能对任意表达式自动计算梯度。由此可以推断课程的完整设计意图:本文(own_framework):手写 MLP 的前向计算与backward求导,吃透反向传播;frameworks.md:理解计算图(computational graph)、自动微分,以及 TensorFlow/PyTorch 的低级 API 与高级 API(Keras、PyTorch Lightning)的分工;GPU 并行:深层网络训练计算量巨大,把计算分布到 GPU/TPU 等专用计算单元上,是工业框架的另一核心能力。课程挑战与作业继承原文档的实战安排:挑战(Challenge):在配套的 OwnFramework 笔记本中,实现一个用于构建与训练多层感知机的自有框架,亲手看清现代神经网络如何运转(文档中此笔记本链接为课程外部资源,当前仓库未包含该文件);作业(Assignment):使用你在本节构建的框架,完成MNIST 手写数字分类任务——这是从二维简单分类跃迁到多分类、真实数据集的标志性一步,正好验证本文扩展为多分类框架的三条能力;自研学习:反向传播是 AI/ML 中极其常见的算法,文档建议进一步深入钻研。小结本文对应的课程文档虽然篇幅不长,但完整覆盖了一条严谨的技术主线:环节核心概念文档位置问题定义数据集 ⟨X, Y⟩、损失函数 ℒ(绝对/平方误差、0-1 损失、对数损失)own_framework.md优化方法梯度下降、学习率 η、minibatch 与 SGDown_framework.md模型结构多层线性变换 非线性激活 α softmax σown_framework.md训练算法链式法则 从损失向后遍历计算图 反向传播own_framework.md实战目标自研模块化框架 MNIST 多分类作业own_framework.md结合本仓库的实际用途,这份文档还扮演了 RAG 知识基座中可被向量检索的领域知识的角色:当你实现课程中的 notebook-rag-vector-databases.ipynb 并向其中的问答系统提问什么是反向传播时,被召回并注入 LLM 上下文的,正是本文讲解的这些段落。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考