一、感知机基础
  1. 定义与提出
    由美国学者Frank Rosenblatt 于 1957 年提出,是神经网络的基础单元,核心功能为二分类(输出 0 或 1),区别于回归(输出实数)和 Softmax(输出多分类概率)。

  2. 核心参数与输出逻辑

    • 权重 w:控制输入信号的重要性,权重越大,对应输入对输出影响越强;
    • 偏置 b:调整神经元被激活的容易程度,偏置值越大,神经元越易输出 1;
    • 输出公式:若 b+w1​x1​+w2​x2​≤0,输出 0;若 b+w1​x1​+w2​x2​>0,输出 1。
  3. 应用:简单逻辑电路
    感知机可通过设定不同(w1,w2,b)参数实现与门、与非门、或门,具体真值表与参数如下:

逻辑门类型 真值表(x1,x2→y) 示例参数(w1,w2,b)
与门 (0,0)→0;(1,0)→0;(0,1)→0;(1,1)→1 (0.5,0.5,-0.7)、(0.5,0.5,-0.8)、(1.0,1.0,-1.0)
与非门 (0,0)→1;(1,0)→1;(0,1)→1;(1,1)→0 (-0.5,-0.5,0.7)
或门 (0,0)→0;(1,0)→1;(0,1)→1;(1,1)→1 (0.5,0.5,-0.3)

  1. 局限性
    感知机仅能表示线性可分的空间,无法实现非线性逻辑(如异或门:(0,0)→0、(1,0)→1、(0,1)→1、(1,1)→0),需通过多层感知机解决。
二、多层感知机(MLP)
  1. 核心作用
    作为最简单的深度神经网络,通过引入隐藏层实现非线性空间划分,解决感知机的线性不可分问题。

  2. 网络结构

    • 输入层:接收样本特征(如 x1、x2、x3、x4);
    • 隐藏层:位于输入层与输出层之间,层数和每层单元数为超参数(需人工设定,如 1 层隐藏层含 5 个单元 h1-h5);
    • 输出层:输出模型结果,多分类场景需搭配 Softmax 函数(输出概率分布)。
  3. 关键特点
    隐藏层的存在使网络能学习复杂的非线性关系,例如通过组合多个感知机的输出,实现异或门等非线性逻辑。

三、激活函数
  1. 定义
    激活函数(如 h (x))负责将神经元输入信号的总和转换为输出信号,决定 “如何激活输入信号”,是多层感知机实现非线性的核心。

  2. 关键性质
    为保障网络表示能力与学习效率,激活函数需满足以下 3 点:

    • (1)连续并可导(允许少数点不可导)的非线性函数;
    • (2)函数及导函数形式简单,降低计算复杂度;
    • (3)导函数值域在合适区间,避免影响训练效率与稳定性。
  3. 常见类型

    • 阶跃函数:感知机的激活函数,输入≤0 输出 0,输入 > 0 输出 1;
    • tanh 函数(双曲正切):将输入映射到 (-1,1) 区间,输出具有对称性;
    • ReLU 函数(线性修正单元):输入≤0 输出 0,输入 > 0 时输出等于输入,计算简单且缓解梯度消失问题。
四、学习过程与参数更新
  1. 核心流程
    多层感知机的学习过程通过 “前向传播” 与 “反向传播” 循环进行,最终实现参数(权重 w、偏置 b)更新:

    • 前向传播:信号从输入层→隐藏层→输出层,计算各层输出值;
    • 反向传播:从输出层反向计算误差(与期望输出的差距),求解参数梯度,再根据梯度调整各层权值(修正参数)。
  2. 学习本质
    通过外界输入样本的刺激,动态调整网络的连接权值(乃至拓扑结构),使网络输出不断接近期望输出。

五、误差评估与验证方法
  1. 误差类型

    • 训练误差:模型在训练数据集上的误差(示例:用历年真题训练,在真题上的成绩);
    • 泛化误差:模型在新数据集(未见过的数据)上的误差(示例:用历年真题训练,在未来考试中的成绩)。
  2. 验证数据集与测试数据集

    数据集类型 作用 关键要求
    验证数据集 评估模型好坏,辅助调整超参数(如隐藏层数量) 从训练数据中划分(如 50% 训练数据),不与训练数据集混合
    测试数据集 评估最终模型的泛化能力 仅使用一次,避免因多次使用导致模型 “适配” 测试集
  3. K - 折交叉验证
    适用于数据量不足的场景,具体算法:

    1. 将训练数据划分为K 个等份(常见 K=5 或 10);
    2. 轮流用第 i 份(i=1 到 K)作为验证集,其余 K-1 份作为训练集;
    3. 计算 K 次验证的误差平均值,作为模型的最终验证误差。
六、过拟合与欠拟合
  1. 定义

    • 过拟合:模型对训练样本 “学太好”,误将训练样本的个别特点(如树叶的锯齿)当作所有潜在样本的一般性质,导致泛化误差高;
    • 欠拟合:模型未学好训练样本的一般性质(如仅认为 “绿色的都是树叶”),导致训练误差和泛化误差均较高。
  2. 影响因素

    • 模型复杂度:关键因素包括 “参数个数”(如 (d+1) m+(m+1) k,d 为输入维度、m 为隐藏层单元数、k 为输出维度)和 “每个参数的选择范围”,复杂度过高易过拟合,过低易欠拟合;
    • 数据复杂度:受样本数量、每个样本的特征数、数据多样性、时空结构影响,数据越复杂(样本多、特征全、多样性高),越易训练出泛化能力强的模型。
  3. 解决方法
    针对过拟合,常用方法包括权重衰减(限制参数取值范围)、暂退法(丢弃法)(随机丢弃部分神经元,降低过拟合风险)。


4. 关键点

1.感知机无法实现异或门的根本原因是其仅能表示线性可分的空间,而异或门的输入输出关系((0,0)→0、(1,0)→1、(0,1)→1、(1,1)→0)属于线性不可分场景(无法用一条直线将 “输出 1” 和 “输出 0” 的样本完全分开)。多层感知机通过引入隐藏层解决此问题:隐藏层可将线性不可分的输入特征转换为更高维度的线性可分特征,例如将异或门的输入(x1,x2)通过两个感知机(隐藏层单元)转换为中间特征,再通过输出层感知机组合中间特征,最终实现异或逻辑的非线性划分。

2.激活函数是多层感知机实现非线性的核心,其需具备3 个关键性质:(1)连续并可导(允许少数点不可导)的非线性函数,确保网络能学习复杂关系;(2)函数及导函数形式简单,提升计算效率;(3)导函数值域在合适区间,避免影响训练稳定性(如梯度消失或爆炸)。
常用激活函数及特点如下:(1)阶跃函数:感知机的激活函数,输入≤0 输出 0、输入 > 0 输出 1,缺点是不连续、不可导,仅适用于简单二分类;(2)tanh 函数:将输入映射到 (-1,1) 区间,输出对称,解决了 Sigmoid 函数输出非对称的问题,但仍存在梯度消失风险;(3)ReLU 函数:输入≤0 输出 0、输入 > 0 输出输入值,计算简单、缓解梯度消失,是当前深度学习中最常用的激活函数之一。

 3.在模型评估中,训练误差与泛化误差的核心区别在于评估数据集不同:(1)训练误差是模型在 “训练数据集”(用于模型参数更新的数据)上的误差,反映模型对训练数据的拟合程度;(2)泛化误差是模型在 “新数据集”(未参与训练的数据)上的误差,反映模型的泛化能力(如用历年真题训练的模型在未来考试中的成绩)。当训练数据量不足时,可采用K - 折交叉验证保障验证结果的可靠性,具体步骤为:(1)将训练数据划分为 K 个等份(常用 K=5 或 10);(2)对每个 i(1≤i≤K),用第 i 份作为验证集,其余 K-1 份作为训练集训练模型,并计算验证误差;(3)取 K 次验证误差的平均值作为最终验证结果,避免因 “数据划分方式” 导致的验证结果偶然性,提升可靠性。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐