感知机神经网络入门指南:用简单示例实现数据分类
理解感知机:数据分类的实战示例
本文属于感知机神经网络系列文章。无论您是初学者还是想复习特定主题,下方相关文章提供完整学习路径。
- 如何使用神经网络进行分类:什么是感知机?
- 如何用简单感知机神经网络示例对数据分类
- 如何训练基础感知机神经网络
- 理解简单神经网络训练
- 神经网络训练理论导论
- 理解神经网络中的学习率
- 多层感知机进阶机器学习
- Sigmoid 激活函数:多层感知机神经网络中的激活
- 如何训练多层感知机神经网络
- 理解多层感知机的训练公式与反向传播
- Python 实现的神经网络架构
- 如何用 Python 创建多层感知机神经网络
- 神经网络信号处理:神经网络设计中的验证
- 神经网络训练数据集:如何训练与验证 Python 神经网络
什么是单层感知机?
感知机是最基础的神经网络类型。它由一个将数据分发至单一计算层的输入层组成,该层神经元执行加权求和后接激活函数。输入节点与计算层间的连接分配标量权重,决定各输入特征对最终输出的影响程度。

尽管网络包含两个物理层(输入与输出),但仅有一个计算层,故称为单层感知机。
用感知机进行分类
通过一个具体示例来理解。我们将构建一个接收三维向量 ⟨x, y, z⟩ 的感知机,根据点相对 x 轴的位置进行分类:
- x 轴下方(y < 0):判定为无效(输出 0)
- x 轴上方或上(y ≥ 0):判定为有效(输出 1)
网络输入向量直接映射至三个坐标:input₀ = x、input₁ = y、input₂ = z。因问题线性可分,可直接分配权重:

将输出神经元激活函数设为单位阶跃函数:
\[f(x)=\begin{cases}0 & x < 0\\1 & x \geq 0\end{cases}\]
此设置下 y、z 分量被忽略(权重为 0),分类仅取决于 x 坐标。点在 x 轴下方时加权和为负,阶跃函数输出 0;否则输出 1。
从手工设计到自动化训练
上例展示人类如何为简单问题设计感知机。现实场景中——手写识别、语音处理、医疗诊断——精确定义输入与期望输出的数学关系极不现实。取而代之的是数据驱动法:提供大量输入-输出对,让网络自行学习潜在模式。
训练即调整权重的过程,使感知机对未见数据给出正确输出。它迭代对比网络预测与已知标签,朝减小误差方向微调权重。
在我们的有效/无效分类器上用 1,000 个合成点训练后,感知机自动发现了恰当的权重向量,与手工推导的解一致:

下一步
下一篇文章将演示单层感知机的简明 Python 实现,并详述产生上述权重的训练流程。敬请期待,学习如何从零编写并训练自己的感知机。
嵌入式