游戏编程中的人工智能技术:神经网络入门
ABSTRACT
CSDN 剪藏,实为 Mat Buckland《游戏编程中的人工智能技术》(AI Techniques for Game Programming)神经网络章节的中译连载书摘。从零讲人工神经网络:生物神经元启发、感知器数学模型(权重求和 + 激励函数)、前馈网络结构,并以「聪明扫雷机」工程演示用遗传算法(而非反向传播)演化网络权重的完整实现。
核心要点
- 生物启发:神经细胞 = 树突接收信号、细胞体求和、超阈值则轴突兴奋输出;大脑的特点是并行、无监督学习(Hebb 可塑性)、容错、擅长归纳推广。
- 人工神经元模型:激励值 a = Σ(wi·xi),超过阈值输出 1 否则 0(阶跃函数);权重正负对应激发/抑制作用。
- 偏移(bias)技巧:把阈值 t 视为「恒乘输入 -1 的权重」,每个神经元多挂一个权重,阈值即可随权重一起演化,无需单独处理。
- 前馈网络:输入层 → 隐藏层(一层通常够用)→ 输出层;规模尽量小以保证速度;手写数字识别是典型入门应用(8×8 格点 64 输入)。
- Sigmoid 激励函数:1/(1+e^(-a/p)),把阶跃输出平滑为 0~1 连续值,使网络可输出模拟量(如扫雷机左右履带速度);p 控制曲线陡峭度。
- 输入设计经验:输入个数越少网络越快;所有输入要规范化到相近量级(如向量归一化),必要时以 0 为中心重定标;自己预算输入特征(如点积角度)可大幅加速演化,代价是 CPU。
- 扫雷机工程:4 输入(视线向量 + 指向最近地雷的向量,均归一化)→ 1 隐藏层 10 神经元 → 2 输出(左右履带力);适应度 = 找到的地雷数。
- 遗传算法演化权重:实数编码(逐层展开权重向量,含 bias);轮盘赌选择 + 精英保留;突变为按率扰动(±dMaxPerturbation);群体 30、杂交率 0.7、突变率 0.1、每代 2000 帧。
- 改进一:按神经细胞边界切分的两点杂交(CalculateSplitPoints),避免在单个神经元权重中间切断造成断裂性破坏,效果优于任意点单点杂交。
- 改进二:输入从 4 个精简到 1 个——视线向量与目标向量的点积(转角大小)× Vec2DSign(左右符号),演化速度显著提升。
关键实体与概念
人工神经网络、感知器、激励函数、Sigmoid、bias 偏移、前馈网络、遗传算法、实数编码、轮盘赌选择、精英保留、神经演化、输入规范化、点积
关联概念
(无合适概念页,留空)
来源回溯
- 原始文件:
raw/gamedev/游戏编程中的人工智能技术-csdn博客.md(evernote/FW-游戏3研发技术 导入)
时效性评估
- 仍有效:感知器数学、bias 内化、输入规范化、遗传算法演化权重(神经演化,NEAT 思路前身)的讲解仍是优秀的入门材料。
- 已过时:2000 年代初的 C++/GDI 代码与 Win32 工程形态陈旧;现代游戏 AI 主流是行为树/GOAP/状态机(决策层)与 ML-Agents 等强化学习(学习型 NPC),反向传播 + GPU 框架早已取代手写 GA 训练小网络。