亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

Python训练基本感知机神经网络:分步指南

Python训练基本感知机神经网络

本指南演练全注释Python实现,自动学习单层感知机权重。代码可直接复制粘贴运行,并适配自有数据。

探索AAC感知机系列

为深入语境或跳转进阶主题,查看其余文章:

  1. 如何用神经网络分类:什么是感知机?
  2. 如何用简单感知机神经网络示例分类数据
  3. 如何训练基本感知机神经网络
  4. 理解简单神经网络训练
  5. 神经网络训练理论导论
  6. 理解神经网络学习率
  7. 多层感知机进阶机器学习
  8. Sigmoid激活函数:多层感知机激活
  9. 如何训练多层感知机神经网络
  10. 理解多层感知机训练公式与反向传播
  11. Python实现的神经网络架构
  12. 如何用Python创建多层感知机神经网络
  13. 神经网络信号处理:神经网络设计验证
  14. 神经网络训练数据集:如何训练验证Python神经网络

单层感知机分类

从经典3D空间二分类问题开始。网络架构:单隐藏层、三输入节点、单输出节点用单位阶跃激活函数。

Python训练基本感知机神经网络:分步指南

输出节点应用以下单位阶跃函数:

\[f(x)=\begin{cases}0 & x < 0\\1 & x \ge 0\end{cases}\]

为演示学习,扩展架构自动通过简单训练循环调整权重:

Python训练基本感知机神经网络:分步指南

Python实现

以下脚本从Excel读取训练数据,随机初始化权重,用感知机学习规则迭代更新:

 import pandas
import numpy as np
# 输入空间维度(x, y, z)
input_dim = 3
# 学习率控制权重调整幅度
learning_rate = 0.01
# 随机初始权重;可设固定值以复现
Weights = np.random.rand(input_dim)
# Weights = np.array([0.5, 0.5, 0.5])
# 加载数据集:含各特征列和'output'列的工作表
Training_Data = pandas.read_excel("3D_data.xlsx")
# 从特征矩阵分离期望输出
Expected_Output = Training_Data.output
Training_Data = Training_Data.drop(["output"], axis=1)
# 转NumPy数组向量化运算
Training_Data = np.asarray(Training_Data)
training_count = len(Training_Data[:, 0])
# 多epoch训练
for epoch in range(5):
    for datum in range(training_count):
        # 输入加权和
        Output_Sum = np.sum(np.multiply(Training_Data[datum, :], Weights))
        # 应用单位阶跃激活
        Output_Value = 0 if Output_Sum < 0 else 1
        # 计算期望与实际输出误差
        error = Expected_Output[datum] - Output_Value
        # 按学习规则更新各权重
        for n in range(input_dim):
            Weights[n] += learning_rate * error * Training_Data[datum, n]
print(f"w_0 = {Weights[0]:.3f}")
print(f"w_1 = {Weights[1]:.3f}")
print(f"w_2 = {Weights[2]:.3f}") 

关键概念解析

配置网络与组织数据

网络三输入节点匹配3D坐标。学习率0.01为标准起点;实验后可调。权重随机种子避免对称,也可设固定值得确定性行为。

训练数据从Excel读取,拆分为输入和期望输出,再转NumPy数组高效计算。

计算输出值

每epoch遍历所有训练样本。对每样本计算输入加权和。单位阶跃函数将此和映射为二元输出:和为负输出0,否则1。

更新权重

预测输出偏离期望输出时,感知机学习规则按输入值、误差、学习率比例调整各权重:

\[w_{new} = w + (\alpha \times \delta \times input)\]

其中\(\delta = \text{output}_{expected} - \text{output}_{calculated}\),\(\alpha\)为学习率。

结论

你已见完整、带注解的单层感知机Python实现。代码为实验不同数据集、学习率、乃至未来扩展多输出的坚实基础。

嵌入式

  1. 树莓派对接HDC2010:I²C温湿度传感器完整接线与编程指南
  2. 轻松找回并保护Wi-Fi网络安全密钥:完整指南
  3. 中小企业网络安全五大必守防线:从认知到实战
  4. 车间网络安全评估:您准备好了吗?
  5. 为工业 4.0 培育未来劳动力:数字化工厂培训策略
  6. 神经网络训练中的局部极小值:迷思还是现实?
  7. Python多层感知机添加偏置节点:方法与效果评估
  8. 如何成为汽车电工:培训、职责与职业前景
  9. 用Edge Impulse构建离线AI模型检测糖尿病视网膜病变分期
  10. CEVA 发布 NeuPro-S:面向边缘深度神经网络推理的下一代 AI 处理器
  11. 入侵检测系统:用智能警报守护网络安全
  12. 硬化工业物联网设备以防范网络攻击