首页
/ fer 的项目扩展与二次开发

fer 的项目扩展与二次开发

2025-06-08 08:03:45作者:冯爽妲Honey

项目的基础介绍

该项目是基于“Fractured Entangled Representation Hypothesis”论文的代码实现。该论文探讨了在深度学习中,随着模型规模的扩大,内部表示是否也会变得更好。项目通过比较通过开放端搜索过程进化出的神经网络和通过传统随机梯度下降(SGD)训练的神经网络在生成单个图像任务上的表现,揭示了两者在内部表示上的显著差异。

项目的核心功能

  1. 加载论文中的 Picbreeder基因组数据。
  2. 将数据转化为多层感知器(MLP)格式。
  3. 训练 SGD 网络以模仿输出。
  4. 可视化内部表示。
  5. 执行权重扫描并可视化结果。

项目使用了哪些框架或库?

  • JAX:用于数值计算和机器学习研究。
  • Flax:基于 JAX 的神经网络库。
  • Evosax:一个进化算法库。
  • Orbax:用于机器学习的实验框架。
  • Optax:用于 JAX 的优化器库。

项目的代码目录及介绍

  • ./assets/:包含论文中的额外数据和所有资产。
  • ./picbreeder_genomes/:包含论文中使用的 skull、butterfly 和 apple 的 Picbreeder 基因组。
  • ./data/:包含层化的 Picbreeder CPPN 和 SGD CPPN 的数据。
  • ./src/:包含项目的代码,具体如下:
    • color.py:HSV 到 RGB 的颜色转换代码。
    • cppn.py:用于构建具有不同激活函数的任意神经元的多层感知器(MLP)的 Flax CPPN 代码。
    • process_pb.py:处理 Picbreeder 基因组以创建层化的 CPPNs。
    • train_sgd.py:在指定架构上针对目标图像训练 SGD CPPN。
    • util.pypicbreeder_util.py:包含一些实用函数。

对项目进行扩展或者二次开发的方向

  1. 数据扩展:收集更多的 Picbreeder 基因组数据,增加模型的训练和测试范围。
  2. 算法改进:尝试不同的神经网络架构和训练策略,以提高模型的性能和泛化能力。
  3. 可视化工具增强:改进内部表示的可视化工具,使其更加直观和易于理解。
  4. 功能模块增加:增加模型分析工具,如模型解释性分析,帮助理解内部表示的结构。
  5. 跨领域应用:将项目的方法和模型应用到其他领域,如自然语言处理、音频处理等,探索跨模态学习的新可能性。
登录后查看全文
热门项目推荐