ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

感知机(Perceptron)入门:从 Mark-1 到二元分类与梯度下降训练——generative-ai-for-beginners 第 15 课基础篇

感知机(Perceptron)入门:从 Mark-1 到二元分类与梯度下降训练——generative-ai-for-beginners 第 15 课基础篇 感知机Perceptron入门从 Mark-1 到二元分类与梯度下降训练——generative-ai-for-beginners 第 15 课基础篇【免费下载链接】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》课程第 15 课RAG 与向量数据库配套的感知机讲义展开。它既是理解神经网络最朴素的起点——Frank Rosenblatt 1957 年的 Mark-1 硬件感知机也是该课程 RAG 实战中用于构造知识库文档的三篇基础材料之一见 15-rag-and-vector-databases/data/perceptron.md。读完本文你将掌握感知机的数学模型、感知机准则与梯度下降推导、完整的 Python 训练代码以及如何把它接入课程 RAG 检索管线的实际调用链。为什么第 15 课需要一篇感知机讲义本仓库的 15-rag-and-vector-databases/README.md 构建了一个教育场景把AI for Beginners 的神经网络讲义作为私有知识库喂给 LLM 驱动聊天机器人。该知识库的数据源正是data目录下的三份 Markdown 文档——感知机perceptron、多层感知机own_framework与神经网络框架frameworks。从 notebook-rag-vector-databases.ipynb 第 205 行可以看到数据路径被显式声明data_paths [data/frameworks.md, data/own_framework.md, data/perceptron.md]随后这些文档被切块、嵌入并建立检索索引用户提问what is a perceptron?时检索器返回的就是感知机讲义的内容。因此感知机不只是一个历史知识点它本身就是这门 RAG 课程中被落地grounding的语料。理解它你才能看懂后面整个检索链路在检索什么。历史起点1957 年的 Mark-1 硬件感知机感知机是 Frank Rosenblatt 于 1957 年在康奈尔航空实验室Cornell Aeronautical Laboratory提出的、最早接近现代神经网络的尝试之一。它是一台名为Mark-1的硬件实现设计目标是从原始几何图形三角形、正方形、圆形中识别出基本形状。Mark-1 的输入是一块 20×20 的光电池阵列因此网络共有400 个输入和1 个二值输出。整张网络只有一个神经元也叫阈值逻辑单元threshold logic unit。在那个时代网络权重扮演的是**电位器potentiometer**的角色——一种允许用户手动调节电路电阻的装置训练阶段需要人工逐一拧动。当时《纽约时报》曾如此描述感知机一台电子计算机的胚胎[海军]期望它有朝一日能行走、说话、观看、书写、自我复制并意识到自身的存在。这段历史的核心启发是学习的本质就是调整权重。Mark-1 靠人工调电位器现代感知机则用梯度下降自动调 w思想一脉相承。感知机模型从 N 维特征到 ±1 输出假设模型有 N 个特征那么输入向量就是 N 维向量 x。感知机是一个**二元分类binary classification**模型只能区分两类输入数据。约定对于每个输入向量 x感知机输出 1 或 -1分别对应两个类别。输出由如下公式计算y(x) f(wᵀx)其中 f 是一个阶跃激活函数step activation function当加权和 wᵀx 大于等于 0 时输出 1小于 0 时输出 -1或反之取决于符号约定。w 是权重向量训练的目标就是找到一组 w使得大多数样本被正确分类。训练目标感知机准则与误差函数要训练感知机需要找到一个权重向量 w能正确分类大部分样本也就是让误差尽可能小。该误差由**感知机准则perceptron criterion**定义E(w) -Σ wᵀxᵢ·tᵢ其中求和只针对那些被错误分类的训练样本 ixᵢ 是输入数据tᵢ 对正例取 1、对负例取 -1。把 E(w) 看成权重 w 的函数训练就变成了一个最小化问题找到使 E(w) 最小的 w。注意符号设计——只有当样本被误分类时-wᵀxᵢ·tᵢ 才为正贡献正确分类的样本不进入误差项这保证了梯度下降只会修正错误。梯度下降训练从偏导到权重更新公式求解最小化问题最常用的方法是梯度下降gradient descent从一个初始权重向量 w⁽⁰⁾ 出发每一步按负梯度方向更新权重w⁽ᵗ⁺¹⁾ w⁽ᵗ⁾ - η·∇E(w)其中 η 是学习率learning rate∇E(w) 是 E 对 w 的梯度。对感知机准则求梯度后更新公式化简为w⁽ᵗ⁺¹⁾ w⁽ᵗ⁾ Σ η·xᵢ·tᵢ求和仍只针对误分类样本。直观含义非常优雅把被误分类的正样本方向加上去、把被误分类的负样本方向减掉每轮都朝修正错误的方向迈一小步步长由 η 控制。这一推导是后续课程内容的基石。15-rag-and-vector-databases/data/own_framework.md 中多层感知机MLP的训练就是同一套梯度下降框架的推广——误差函数换成交叉熵等损失、梯度通过**反向传播backpropagation**用链式法则逐层计算而 15-rag-and-vector-databases/data/frameworks.md 则指出 TensorFlow / PyTorch 等框架正是把张量运算 自动求梯度这两件事自动化了。感知机的E(w)与w w - η∇E正是它们全部工作的最小原型。Python 实现单层感知机训练算法讲义给出了完整的训练伪代码Python 风格原文如下def train(positive_examples, negative_examples, num_iterations 100, eta 1): weights [0,0,0] # Initialize weights (almost randomly :) for i in range(num_iterations): pos random.choice(positive_examples) neg random.choice(negative_examples) z np.dot(pos, weights) # compute perceptron output if z 0: # positive example classified as negative weights weights eta*weights.shape z np.dot(neg, weights) if z 0: # negative example classified as positive weights weights - eta*weights.shape return weights逐行解读初始化weights [0,0,0]从全零向量出发注释调侃almost randomly。全零初始化在感知机上是可行的因为第一轮误分类一定会触发更新随机采样每轮从正例、负例集合中各随机抽一个样本random.choice这使其本质上是**随机梯度下降SGD**的雏形——每次只用一对样本估计梯度而非全部数据前向计算z np.dot(pos, weights)即 wᵀx误分类修正正样本被判为负z 0时weights weights eta*weights.shape负样本被判为正z 0时做减法。方向与推导的w w ± η·xᵢ·tᵢ一致代码里以eta*weights.shape近似表示沿样本方向的更新迭代默认 100 轮、学习率 η1直到权重收敛或达到轮数上限。说明讲义中的eta*weights.shape写法更接近教学示意weights.shape是数组形状元组而非数值向量实际工程实现应写为eta * pos/eta * neg。本文保留原文以忠实呈现讲义内容读者在 Notebook 练习时可将其替换为规范写法。该算法在课程 Notebook 中被真实引用——notebook-rag-vector-databases.ipynb 中检索what is a perceptron?后返回的正是本讲义中Perceptron Model与训练公式所在段落作为 RAG 增强生成的上下文见第 2764–2806 行附近的相关输出。动手实验与课后任务讲义为读者规划了三个递进层次的学习活动挑战Challenge使用 Microsoft Learn 上基于 Azure ML designer 的实验室亲手构建自己的感知机把数学模型映射到可视化建模界面。复习与自学Review Self Study前往课程的 Perceptron Notebook观察感知机如何解决玩具问题toy problem与真实问题同时阅读关于感知机的延伸文章理解其历史地位与局限如无法解决 XOR 等线性不可分问题。作业Assignment本课用感知机完成了二分类任务——区分两个手写数字。作业要求你把问题完整求解实现数字分类即给定一张图像判断它最可能对应哪一个数字即多分类推广。这正是通往下一课 多层感知机与自研框架 的桥梁——多分类需要 softmax 输出与多层结构单层感知机只能做线性二元分类。小结感知机虽只有一个神经元却浓缩了神经网络的全部核心要素输入向量、权重、激活函数、误差函数、梯度下降。理解E(w) -Σwᵀxᵢtᵢ与w⁽ᵗ⁺¹⁾ w⁽ᵗ⁾ Σηxᵢtᵢ这两条公式你就掌握了从人工拧电位器到自动调权重的跃迁也为后续 MLP、反向传播、TensorFlow/PyTorch 框架乃至本课 RAG 检索管线的理解打好了地基。相关深入材料多层感知机与梯度下降推广15-rag-and-vector-databases/data/own_framework.md神经网络框架TensorFlow / PyTorch、过拟合15-rag-and-vector-databases/data/frameworks.mdRAG 与向量数据库完整课程15-rag-and-vector-databases/README.md检索实现 Notebook15-rag-and-vector-databases/notebook-rag-vector-databases.ipynb【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表