HackerTube ?

Computer program that learns to play classic NES games

suckerpinch在 YouTube 播放 ↗

从这部视频出发 主题阅读 · 1

机器学习为什么越努力追分,结果反而越奇怪?

字幕解读

Tom7 介绍其用 NES 内存状态自动玩游戏的实验:先记录人工游玩时逐帧的 RAM,再从内存字节中学习按字典序递增的进度指标;程序随后只看内存并搜索能让指标上升的按键序列。为避免纯贪心导致乱按,他加入对随机未来输入序列的规划。方法在以向右推进为主要目标的平台游戏中效果较好,也会利用游戏漏洞;作者展示其在吃豆人、泡泡龙和俄罗斯方块等不同结构游戏中的表现差异,并指出规划视野有限。

自动字幕 · 引文按字幕原文展示,可点时间戳回看片段。

内容要点

  • 方法从人工游戏轨迹中学习 RAM 字节的字典序指标,将其作为自动搜索按键的目标函数。
  • 候选按键规划会测试多种短操作和随机未来序列,以更长远的指标变化选择行动。
  • 有明显空间推进梯度的横版游戏较适合该方法;需要更长远策略或目标不单调的游戏会暴露局限。
视频章节 6
  1. 从 NES 内存自动玩游戏
  2. 用字典序识别游戏进度
  3. 搜索按键与改进规划
  4. 训练数据与目标函数
  5. 修复漏洞后的马力欧表现
  6. 跨游戏结果与方法边界
具体观点与证据 3

PlayFun从人类示范的RAM变化学习进度指标,再搜索让内存字节序上升的输入,不依赖画面识别。

这是特定NES模拟器与内存表示下的方法。

It's just looking at RAMs and it's trying to find sequences of inputs
探索此观点 →

相对随机未来输入序列进行短序列规划,比逐帧贪心更容易形成跨越障碍的连贯动作。

仍是有限规划视野,未解决长期战略。

keep track of a bunch of random future inputs that we might execute
探索此观点 →

俄罗斯方块展示短视优化的失败:堆叠得分诱导坏布局,最后暂停游戏来避免立即失败。

不能把暂停当作系统理解胜负或通用智能的证据。

playing Tetris well requires some thinking ahead, and this algorithm does not think very far ahead.
探索此观点 →
补充字幕原文 2

作者以调侃语气概括方案:用简单的数学代理目标直接驱动游戏搜索。

this is a really simple, mathematically elegant and stupid technique

作者将俄罗斯方块表现不佳归因于算法前瞻深度不足,说明目标代理和搜索视野限制了可处理任务。

this algorithm does not think very far ahead
解读边界

进度代理指标来自 RAM 字节的递增规律,依赖游戏内部状态与目标结构;作者展示的效果跨游戏差异很大,且有限的前瞻规划不适合需要深远策略的任务。

相关视频与证据 2

受限表示对照游戏智能的失败可以来自输入和目标的限制

盲棋只给占位掩码,因此相同输入可能对应不同真实棋盘;PlayFun用示范RAM构造上升指标并短视搜索,俄罗斯方块中堆叠小得分反而导向失败。两例说明评估行为前需要检查表示丢失了什么、指标奖励了什么。

关联视频

30 Weird Chess Algorithms: Elo World ↗

位图歧义使棋盘恢复不可能总正确。

the representation is ambiguous and of course when it gets it wrong
▶ 31:51–32:17 · 观看片段
当前视频

Computer program that learns to play classic NES games

短期得分优化会在俄罗斯方块产生坏策略。

playing Tetris well requires some thinking ahead, and this algorithm does not think very far ahead.

适用边界 一端是不可辨识输入,一端是目标和规划视野,两者不是相同故障,也不能由此否定更完整的学习系统。

不同搜索策略不同代理暴露不同限制:结构演化与搜索视野

MarI/O 从基础网络演化神经元和连接结构;NES 视频指出俄罗斯方块代理因前瞻不足而受限。并读可区分结构如何形成与决策向前看多远这两类问题。

关联视频

MarI/O - Machine Learning for Video Games ↗

MarI/O 从基础网络结构开始演化连接。

without presupposing the best structure for the neurons and their connections
▶ 4:58–5:06 · 观看片段
当前视频

Computer program that learns to play classic NES games

NES 视频指出其俄罗斯方块算法的前瞻深度不足。

this algorithm does not think very far ahead

适用边界 两种方法针对不同游戏与状态编码;NES 方法依赖目标指标对进度有用,并明确在需要更长远规划的情形下受限。

Hacker News 评论

查看 HN 原评论 ↗