1988:如履薄冰
/* 复古科技风格 */
:root {
--bg-color: #1a1a2e;
--card-bg: #16213e;
--highlight: #e94560;
--text-main: #ecf0f1;
--bar-bg: #0f3460;
}
body {
font-family: 'Courier New', 'SimHei', monospace;
background-color: var(--bg-color);
color: var(--text-main);
margin: 0;
display: flex;
flex-direction: column;
...
1988:异化的齿轮 (加速版)
body {
background-color: #000;
color: #ccc;
font-family: 'Courier New', Courier, monospace;
padding: 20px;
display: flex;
height: 95vh;
overflow: hidden;
}
/* 布局 */
.col-left { flex: 1.4; padding-right: 15px; border-right: 1px solid #333; display: flex; flex-direction: column; }
.col-mid { flex: 0.6; padding: 0 15px; border-right: 1px solid ...
Amazon AlphaZero: 神经网络架构深度解析
:root {
--bg-color: #0f172a;
--card-bg: #1e293b;
--text-color: #e2e8f0;
--accent-blue: #38bdf8;
--accent-green: #4ade80;
--accent-purple: #a855f7;
--accent-pink: #f472b6;
--accent-orange: #f59e0b;
--border-color: #334155;
}
body {
font-family: 'Segoe UI', system-ui, sans-serif;
background-col ...
最近在折腾 亚马逊棋 的 AI 实现。一路摸爬滚打下来,最大的感悟是:这个游戏的难点并不在于蒙特卡洛树搜索(MCTS)本身,而在于其动作空间(Action Space)的结构极其特殊。
亚马逊棋的一步合法动作由三个强耦合的部分组成:选子 (Src) $\rightarrow$ 移动 (Dst) $\rightarrow$ 射箭 (Arr)。这是一个天然的因果链条。然而,许多基于 AlphaZero 的开源实现为了图省事,往往将其强行拆解为三个独立的分类任务。
这种“扁平化”的处理方式切断了动作间的逻辑联系,导致神经网络难以学到高水平的策略。这篇文章将复盘我是如何引入注意力机制与动态特征更新头,将一个普通的分类网络改造成具备“一次推理、内隐模拟、链式建模”能力的因果架构。
1. 困境:为什么传统的做法行不通?在架构设计的初期,我尝试了两种主流的解决方案,但都撞了墙。
1.1 方案一:扁平化独立输出 (Flat Classification)这是最直观的做法:让网络同时输出三个向量
$$
P(Src)、P(Dst)、P(Arr)
$$
假设:这隐含了一个错误的数学假设,即选子、移动和射 ...
coding
未读🚀 亚马逊棋 AlphaZero:从架构灾难到全链路重铸——行动空间、数据流、Canonical、网络深度、性能优化,一天内完成 5 个史诗级升级
今天,我们为亚马逊棋(Game of the Amazons)的 AlphaZero 系统完成了一次罕见规模、跨越神经网络 / MCTS / N-to-1 / IPC / C++ 引擎 / 深层模型的 全系统重构。
这篇文章将整合今天的全部内容,从最核心的问题出发,按逻辑顺序讲述: 为何旧系统必然训练失败 → 如何设计空间多头网络 → 如何确保数据不乱 → 如何解决 canonical 冲突 → 如何提升 C++ 与 Python 性能 → 如何构建深度 ResNet-40 全新架构。
1. 动作索引灾难:一切问题的起点(Action Index Collapse)
旧系统使用 动作索引(action index in legal_moves list)作为策略向量的定义方式,看似简洁,却触发了两个致命的系统性崩溃:
❌ 1. 对称性冲突 → P2 训练崩坏
getCanonicalForm 会对 P2 棋盘做 180 度旋转
但真正的 ...
用灵耀 14 Air 实时监控宿舍 4090 训练 AlphaZero:我最终搭建的远程科研工作流我宿舍里有一台主力机器:拯救者 Y9000 2024(i9-14900HX + RTX 4090),主要用于深度学习实验,比如自己改的 AlphaZero 模型来训练Amazon棋。 但我并不总是在宿舍,更常在 图书馆、自习室,携带的是轻薄的 灵耀 14 Air。
轻薄本本身没法跑 AlphaZero 的训练,所以我需要做到:
即使人不在宿舍,也能实时看到训练情况
能查看 GPU/CPU 占用
能打开 TensorBoard
能修改代码后立刻重新运行训练
远程查看训练生成的棋局、日志
偶尔传输模型权重、训练数据
于是我搭建了一套完整的、非常稳定的远程科研工作流。
🧩 方案总览:Sunshine + Moonlight + Tailscale这三者组合之后,就变成一整套优雅的系统:
工具
用途
Sunshine
宿舍笔记本的远程桌面 Host,编码高清画面
Moonlight
灵耀 14 Air(或 iPad)用来访问宿舍电脑
Tailscale
在校园网内保 ...
从0到AlphaZero:我的亚马逊棋AI分布式训练系统演进之路这学期xk计概大作业是实现一个亚马逊棋(Amazon Chess)的AI。这是一个在10x10棋盘上进行的复杂策略游戏,棋手不仅要移动棋子(像国际象棋的皇后),还要在移动后“射箭”来封锁格子。它的复杂度远超普通棋类。说实话我也不知道老师在期待什么基础路径,而我对于强化学习和ai的热忱促使我再github上找到了开源的alphazero-general模型,由于从小耳濡目染的了解到了alphazero的强大,虽然其未必是作业的最优解,但是过程中的乐趣和积累强化学习经验的意义都是很宝贵的,于是迅速敲定方案。
这个项目从一个简单的C++游戏引擎开始,最终演变成了一个我始料未及的、复杂但高效的分布式训练系统。这篇文章我想分享的,不仅是我的最终成果,更是这个“系统”是如何一步步演化出来的。
虽然我感觉我的技术路径比较难以复刻,但是在交作业之前还是不便开源了,作业结束之后我会上传到github上开源,也会在本文中附上链接。
阶段一:地基——C++核心与Python集成万丈高楼平地起。项目的第一步是构建一个坚实的地基。
C++核心引擎 ...
思考日记
未读心脏好疼啊我要死了。。。。。
今天模拟考,暴露了很多问题,我们来一一梳理一下。
首先是高数
由于还没有复习xyt讲义的导数和定积分部分,所以导致复合函数导数的取值错误,这倒是无可厚非,需要尽快完成xyt讲义这两章的学习后开始进行往年题梳理,但我感觉优先做完定积分和不定积分好一点。
那我们不妨决定明天(10.25)做完定积分和不定积分的xyt讲义,10.27完成连续部分 10.28完成导数部分,并且全过一遍没做的题忘了的题,之后迅速开始拟合往年题。
线性代数真是寄了,丘砖感觉不太可能刷完,这该怎么复习啊,优先先把4.1 4.2 4.3的例题做完,然后去做ztf讲义的期中复习题,然后每节课挑2-3道自己可能不会的例题做一做。随后开始拟合往年题,从11.6开始比较合理
期中后一定要注意:确保做到 1.在下一节线代课前完成本节的所有丘砖例题 2.在下一章高数课前完成本节的所有 xyt 讲义,不能脱了,之前欠太多账。做的太少,效率太低了,不要老看手机,没有任何营养和必要。
此外的一些思考
1.计算概论A :做题,提升熟练度,下周可以重点提升一下字符串相关问题,做一些洛谷的题
2.信息科学中的物理 ...
coding
未读~~ 本来想着偷懒不学BFS了直接去学dp,结果发现BFS是dp非常重要的基础
好吧其实是因为24计算概论A期中的B卷最后一题星轨罗盘考察了BFS,本人完全没有任何头绪只能构建完最基本的模块后破防。
有点后悔自己没有从初中开始打oi了,现在真是啥也不会… ~~ 初中那么闲,完全可以打一打NOIP啊
于是我们先从一道简单的《马的遍历》开始解构BFS的思想,并最终解决《星轨罗盘》问题
问题引入:马的遍历
P1443 马的遍历题目描述有一个 n x m的棋盘,在某个点 (x, y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。
输入格式输入只有一行四个整数,分别为 n, m, x, y。
输出格式一个 n x m的矩阵,代表马到达某个点最少要走几步(不能到达则输出 -1)。
输入输出样例 #1输入 #113 3 1 1
输出 #11230 3 2 3 -1 1 2 1 4
说明/提示数据规模与约定对于全部的测试点,保证 1<=x<=400,1<=y<=m<=400。
2022 年 8 月之后,本题去除了对输出保留场宽的要求。为了与之兼 ...























