ARTICLE DETAIL

资讯详情

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

generative-ai-for-beginners:感知器(Perceptron)模型与训练算法技术解析

generative-ai-for-beginners:感知器(Perceptron)模型与训练算法技术解析 generative-ai-for-beginners感知器Perceptron模型与训练算法技术解析【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners本文基于 15 课 RAG 与向量数据库模块下的感知器讲义爱沙尼亚语译本 translations/et/15-rag-and-vector-databases/data/perceptron.md系统讲解现代神经网络的最早雏形——1957 年 Rosenblatt 提出的感知器其历史硬件实现 Mark-1、二值分类的数学模型、感知器准则perceptron criterion误差函数以及基于梯度下降的训练算法与 Python 实现。读完后你将能够理解单神经元二值分类器的完整工作原理复现其训练循环并知道如何在仓库配套 Notebook 中用它区分手写数字。历史背景从 1957 年的 Mark-1 到现代神经网络实现类似现代神经网络的第一次尝试是由 Cornell Aeronautical Laboratory 的 Frank Rosenblatt 于 1957 年完成的。这是一个名为Mark-1的硬件实现设计目标是识别三角形、正方形、圆形等原始几何图形。讲义原文还引用了当年《纽约时报》对感知器的报道一台电子计算机的胚胎[美国海军]希望它能行走、说话、看、写、自我复制并意识到自身的存在——这既反映了当时对感知器的巨大期待也说明了它在机器学习史上的起点地位。Mark-1 的输入输出结构如下输入图像由 20x20 的光敏元件photocell阵列捕捉即神经网络拥有400 个输入输出仅1 个二值输出网络结构只包含 1 个神经元也称为阈值逻辑单元threshold logic unit训练方式网络权重表现为电位器potentiometer一种可调节电路阻值的装置需要在训练阶段手动调节——这正是后来算法化自动权重更新之前的做法。感知器的数学模型假设模型中有 N 个特征则输入向量就是大小为 N 的向量。感知器是一个二值分类binary classification模型即它只能区分输入数据的两个类别。假设对每个输入向量 x感知器的输出为 1 或 -1取决于类别输出按下式计算$$y(x) f(w^T x)$$其中 f 是一个阶跃激活函数step activation function内积 wTx 为正时输出 1否则输出 -1。这里 w 是与输入特征等长的权重向量wTx 即输入特征加权和。✅ 从结构上看感知器就是线性加权和 阶跃函数的最简神经网络没有隐藏层、没有偏置项偏置可通过追加一个恒为 1 的特征吸收因此只能划分线性可分的两类数据。这一点在仓库配套的下一节讲义 多层感知器Multi-Layered Perceptron 中得到了印证——该讲义明确指出单层感知器是线性两类分类模型并以此引出多类分类、回归问题与不可线性分开类别的解决方案。感知器准则误差函数的定义训练感知器的目标是找到一个权重向量 w使尽可能多的样本被正确分类即使误差error最小。讲义用感知器准则来定义误差$$E(w) -\sum_i , w^T x_i , t_i$$其中求和仅针对那些被错误分类的训练样本 ixi是输入数据ti对正例取 1、对负例取 -1。直觉上对分类正确的样本wTxi与 ti同号乘积为正对被分错的样本乘积为负。前面的负号使得分错的样本越多、错得越离谱E(w) 就越大——因此最小化 E(w) 等价于消除所有误分类。用梯度下降训练感知器感知器准则是权重 w 的函数需要将其最小化。讲义给出的方法是梯度下降gradient descent从某个初始权重 w(0)出发每步按下列公式更新权重$$w^{(t1)} w^{(t)} - \eta , \nabla E(w)$$其中 η 是学习率learning rate∇E(w) 是 E 的梯度。对感知器准则求梯度后代入更新式得到$$w^{(t1)} w^{(t)} \sum_i \eta , x_i , t_i$$即每当一个样本被分错就把权重朝该样本的类别方向修正一个与 η 成正比的量。这一推导也完整呈现在 多层感知器讲义 的梯度下降优化小节中并进一步推广为带参数 θ⟨w, b⟩ 的通用训练目标——神经网络训练的目标就是改变参数 θ 来最小化误差。讲义给出的 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结合公式理解这段代码num_iterations默认 100是训练步数eta默认 1即学习率权重初始化为 3 维零向量[0,0,0]——3 维对应 2 个特征加 1 个偏置项与上面偏置可通过恒为 1 的特征吸收的结构解释一致每个训练步随机抽一个正例pos和一个负例neg用np.dot计算感知器输出 z若正例输出 z 0被误判为负类按weights eta*...正向修正若负例输出 z ≥ 0被误判为正类按weights - eta*...负向修正——这正是仅对误分类样本更新权重的感知器准则的在线随机抽样实现。需要注意原讲义代码中eta*weights.shape是笔误按推导的更新式w η·x_i·t_i及代码注释语义正确写法应为weights eta*pos与weights - eta*neg即按误分类样本本身更新而非按权重的形状/规模更新。复现时应以该修正版本为准。小结本讲义的核心知识点可以归纳为三点感知器是最早的神经网络实现之一1957 年 Mark-1400 个光敏输入、1 个二值输出、1 个阈值逻辑单元感知器是二值分类模型输出 y(x) f(wTx)f 为阶跃函数训练目标是最小化感知器准则 E(w) -Σ wTxiti仅对误分类样本求和用梯度下降按 w(t1) w(t) Σ η xiti迭代更新权重。实战延伸手写数字分类任务与课程内衔接讲义的练习部分提出一个完整的实战任务在课程中我们已用感知器完成两个手写数字的二分类练习要求彻底解决数字分类问题——给定一张图片判断它最可能对应哪个数字。讲义建议读者使用仓库配套 Notebooknotebook-rag-and-vector-databases.ipynb动手实践若要借助无代码工具搭建感知器讲义还推荐了微软 Azure ML 设计器上的对应实验。在整门课程中这一讲义并非孤立存在它与同目录下的 data/perceptron.md英文版原讲义、data/own_framework.md多层感知器与自研模块化训练框架以及 data/frameworks.md 构成单层感知器 → 多层感知器 → 主流框架的递进学习路径。值得注意的是感知器正是本 RAG 课程知识库的一部分主讲义 15-rag-and-vector-databases/README.md 中演示的问答应用检索的示例问题恰恰就是 what is a perceptron?——感知器讲义的文本经过分块与嵌入后被建入向量索引再由 LLM 基于检索到的段落生成答案。换言之本文讲解的经典算法同时也是向量检索系统中被检索与引用的知识源之一。适用前提说明本文所有模型公式与代码均以仓库讲义为准。感知器只能处理线性可分的二分类问题多类分类、回归与不可线性分开的数据需要引入 多层感知器讲义 中介绍的隐藏层、偏置项与反向传播机制。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表