分裂纠缠表示假说 (The Fractured Entangled Representation Hypothesis)
akarshkumar0101/fer
用于分裂纠缠表示假说 (The Fractured Entangled Representation Hypothesis) 立场文件的代码!
许可协议
Apache-2.0 license 33 stars 3 forks
The Fractured Entangled Representation Hypothesis
📝Paper PDF
Akarsh Kumar1, Jeff Clune2,3, Joel Lehman4, Kenneth O. Stanley5 1MIT, 2University of British Columbia, 3Vector Institute, 4University of Oxford, 5Lila Sciences
摘要
现代人工智能的许多激动之处来自于这样一种观察,即扩展现有系统可以带来更好的性能。但是,更好的性能是否必然意味着更好的内部表征?虽然表征乐观主义者认为必然如此,但这份立场文件对这一观点提出了挑战。我们将通过开放式搜索过程演化的神经网络与通过传统的随机梯度下降 (SGD) 训练的神经网络在生成单个图像的简单任务上进行比较。这种最小设置提供了一个独特的优势:每个隐藏神经元的完整功能行为都可以很容易地可视化为图像,从而揭示网络的输出行为是如何通过神经元逐个在内部构建的。结果是惊人的:虽然两个网络都产生相同的输出行为,但它们的内部表征却截然不同。经过 SGD 训练的网络表现出一种我们称之为分裂纠缠表征 (FER) 的无组织形式。有趣的是,进化后的网络在很大程度上缺乏 FER,甚至接近于统一因子表征 (UFR)。在大型模型中,FER 可能会降低模型的核心能力,如泛化、创造力和(持续)学习。因此,理解和减轻 FER 对于表征学习的未来至关重要。
更多数据和可视化
这是论文中的所有补充数据。
中间特征图:
- Skull:
- Butterfly:
- Apple:
所有权重扫描:
- Skull:
- Butterfly:
- Apple
论文中选择的权重扫描:
- Skull:
- Butterfly:
- Apple
其他资源
论文中的所有其他重要资源都可以在 ./assets/ 中找到。
代码
此仓库包含以下代码:
- 加载论文中的 Picbreeder genomes
- 将其分层为 MLP 格式
- 训练一个 SGD 网络来模仿该输出
- 可视化内部表征
- 进行权重扫描并可视化结果
Google Colab
为了快速开始,请在 Google Colab 中打开 src/fer.ipynb:
本地运行
要在本地运行此项目,可以从克隆此仓库开始。
git clone https://github.com/akarshkumar0101/fer
然后,使用 conda 设置 python 环境:
conda create --name=fer python=3.10.16 --yes
conda activate fer
现在您可以安装这些库。版本控制需要非常具体。但是,如果您不需要训练 SGD 网络来使用结果,那么您可以按照 官方指南 简单地安装 jax 的 cpu 版本。
python -m pip install jax==0.4.28 jaxlib==0.4.28+cuda12.cudnn89 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html --no-cache-dir
python -m pip install flax==0.10.2 evosax==0.1.6 orbax-checkpoint==0.11.0 optax==0.2.4 --no-deps
然后,安装所有其他必要的 python 库:
python -m pip install -r requirements.txt
现在您可以运行 notebook src/fer.ipynb,它会快速介绍您需要的一切。但是,以下是文件结构的一些其他详细信息:
- ./assets 包含论文中的其他数据和所有资源
- ./picbreeder_genomes/ 包含 skull, butterfly 和 apple 的原始 picbreeder genomes
- ./data/ 包含分层 picbreeder CPPN 和 SGD CPPN 的数据,我们已经为您预先计算了此目录
- ./src/ 包含代码
- ./src/color.py 是将 hsv 转换为 rgb 的代码
- ./src/cppn.py 是 flax CPPN 代码,用于建模在不同神经元处具有任意激活函数的 MLP
- ./src/process_pb.py 处理 picbreeder genome 以创建分层 CPPN
- ./src/train_sgd.py 在目标图像上使用指定的架构训练 SGD CPPN
- ./src/util.py 和 ./src/picbreeder_util.py 包含一些实用函数
联系方式
如果您想获得更多 Picbreeder genomes 用于研究,请通过 akarshkumar0101@gmail.com 与我们联系。
Bibtex 引用
要引用我们的工作,请使用以下内容:
@article{kumar2025fractured,
title = {Questioning Representational Optimism in Deep Learning: The Fractured Entangled Representation Hypothesis},
author = {Akarsh Kumar and Jeff Clune and Joel Lehman and Kenneth O. Stanley},
year = {2025},
url = {https://arxiv.org/abs/2505.11581}
}