在github上公开一个论文idea:DelfNet - Deep Self-Organizing Neural Network
介绍我在github上公开的一个论文仓:https://github.com/binxu986/DelfNet
想法还很粗浅,权当抛砖引玉了;可以把问题和当前给的一套解决方案思路分开看;欢迎讨论;转发请注明出处:
- 作者:大饼博士
- Github:https://github.com/binxu986/DelfNet
- CSDN:https://xubin.blog.csdn.net/article/details/159056197
🧠 DelfNet - Deep Self-Organizing Neural Network
对现有Transformer架构进行兼容性改进,构造出能一定程度上表达时间维度t、深度、自组织特性的神经网络结构。希望通过多个实验方向的研究,提升现有DNN训练和推理效率与精度,同时也希望能为未来的神经网络架构设计提供一点点新的思路。
✏️ 说明
我会在业余时间、以个人名义,在这个仓写一篇文章(目前还只是draft,english版本后续也会提供),标题是“The fundamental idea of deep self-organizing neural networks”。我手上没有GPU硬件条件可以做大规模的实验。如果有人有兴趣一起合作,基于本文的idea进行研究,完成模型的训练和测试,并做出任何结果,都可以联系我: 188997452@qq.com, 或者通过github issues进行讨论。
-
方法完全公开,你可以和我一起讨论,也可以自行验证/使用/修改/创新;
-
唯一的要求:引用本项目的出处,并在你的任何工作中进行说明;给本项目点一个star;分享你的研究方向、实验结果、或任何其它你想分享的内容。
🤝 寻找合作
欢迎潜在的 Co-authors 联系与讨论、或自行验证后告知我,共同推进DelfNet以下研究方向:
- 权重训练方法、增加参数约束、优化目标函数、激活函数的选择与设计等
- 训练、推理效率优化,包括软件实现、硬件加速等
- 其他
合作方式:
- 🔬 代码实现,实验论证
- 💡 讨论启发方法
- ✍️ 优化论文写作
- 🎨 绘制图片
- 🔧 其他
⚠️ DNN 现存问题
📉 训练问题
| 问题 | 描述 |
|---|---|
| 🔴 训练效率较低 | 神经网络层之间没有直接的联动 |
| 🔴 梯度传播局限 | 每一层的 dy 仅作用于当前层的权重 |
🏗️ 结构问题
| 问题 | 描述 |
|---|---|
| 🔴 网络过深 | 大模型应该有足够大的参数量,但并不一定需要这么多“独立的”参数层;就好比人脑的深层结构也许并没有L=80这么多层? |
| 🔴 缺乏局部信息交互 | 神经元之间没有形成局部网络,同一层内的神经元没有联系,局部神经元之间没有进行充分的信息共享与竞争(竞争应导致激活与抑制等不同效果)。而例如 SOM(Self-organizing map)与 Hopfield 网络则强调了一组神经元内部的信息交换 |
| 🔴 ANN模型没有对时间t进行建模 | 神经元只能进行一次瞬时处理,就输出信息传递到其他神经元去了,没有局部再处理的机会;当然,也许现有的模型是潜在地通过更多的layers 来模拟时间t的变化。那么我们为什么不显示地建模这一时间维度t呢? |
| 🔴 权重参数固化 | 训练完成后,权重参数是固化的,无法体现生物对环境的适应能力 —— 比如快速反应、快速联想等。这里也许可以联系到大脑system1和system2系统的理论,system1是快速反应,system2是缓慢反应。现在的主流模型没有快慢的区别,这在很多时候是非常低效(浪费算力)的 |
| 🔴 稀疏模型训练不易 | 稀疏训练时只使用部分权重参数,导致模型效果具有随机性,有的好,有的坏。这可能和前后层训练没有联动更新有关。(参考彩票模型假设, lottery ticket hypothesis) |
🚀 推理问题
| 问题 | 描述 |
|---|---|
| 🔴 带宽瓶颈 | Decoding 需要每次都加载完整权重,效率太低;这个问题严重限制了当前 DNN 推理场景的应用效率 |
| 🔴 存储瓶颈 | 模型参数都是独立的,很难压缩,导致存储成本很高;这个问题在一些Edge设备上尤为突出 |
💡 启发来源(仅启发思考)
| 来源 | 说明 |
|---|---|
| 🔵 SOM, Hopfield | 强调神经元内部信息交换 |
| 🔵 RNN | 可看作一种变相的神经元自影响结构 |
| 🔵 GNN | GNN 强调了节点之间的信息交换 |
| 🔵 Transformer Circuits | 神经网络的电路研究,稀疏路径 |
| 🔵 生物神经元 | 激活或膜电位恢复后,神经元本身发生了变化,用于快速适应环境 |
| 🔵 人类训练效应 | 通过训练对事物反应变快,可能是激活了神经网络内的快速通道(?) |
🎯 核心思想
建模层内神经元之间的联系,以实现自组织特性。通过增量参数表达,实现跨block的参数联动更新。
DelfNet 不可能解决上述所有问题,但希望提供一种新的思路。详细可见论文正文部分
🔧 核心方案
📐 簇级结构
Cluster0 { Block0, Block1, …, Block4 }
Cluster1 { Block5, Block6, …, Block9 }
…
Cluter表示一簇神经元,可以看作是一个独立的神经网络功能区域(或者看成是一层神经网络,有独立更新的一批神经元),簇内的神经元之间进行信息交换。继续沿用Block的概念,是为了和Transformer Block概念相对应,方便理解。如Cluster0中的Block0, Block1, … 表达了这一簇神经元随时间t的更新变化情况。当一个Block就是一个Cluster时,就退化到原始的transformer结构了。
🔑 关键细节:Delta Weight 增量神经网络
用 △ weight 表达一个簇内的后序 Block 对前序 Block 权重的变化:
w0
w1 = w0 + △1
w2 = w1 + △2 = w0 + △1 + △2
W3 = w2 + △3 = w0 + △1 + △2 + △3
…
⭐ 核心优势:
- 总的参数量规模没有变化;
- 更新后序 Block 的变量时,dy 会直接作用于前序 Block 的变量,产生联动效果
- 如果 Δ \Delta Δ很稀疏,或者有规律变化,就可能可以实现对参数的有效压缩,以大幅缓解decoding带宽bound问题,以及模型权重的存储问题。
🧪 模型假设(待验证)
| 假设 | 说明 |
|---|---|
| 🟢 △ 变化平滑 | △ 的变化不应该是随机、跳跃、完全自由的。Cluster内相邻的 △ 变化应该是平滑的 |
| 🟢 △ 稀疏性 | △ 可能是稀疏的。Block 之间的联动更新,赋予了 △ 更容易被控制成稀疏的特性。△ 表示对输入信号的抑制或增强 |
| 🟢 △ 生成方式 | △ 可能受离线训练影响(有机会建模每个神经元的不同特性:有些神经元是一步瞬时完成计算,快速响应;而有些则需要更多时间步长来延迟响应)。也可能受前序 Block 的输出影响(Data-Dependent),通过在线计算得到;这种生成方式既保留权重参数自由度,又不必离线保存,对 decoding 推理场景开辟了新机会——部分参数在线生成,缓解 bandwidth bound 问题 |
注:以上假设可能会对模型的性能产生影响,需要在实验中验证。这些假设可能需要通过多个实验阶段来验证,不一定都有效,也不一定会同时生效。
🗺️ 后续研究方向
由近及远
| 阶段 | 目标 | 描述 |
|---|---|---|
| Phase 1 | 🔨 基础改造 | 将 CNN/Transformer 改造成 DelfNet 形式,完成训练。解决过程中遇到的问题 |
| Phase 2 | 📊 约束研究 | 研究 Δ \Delta Δ之间的平滑约束、稀疏约束等假设;同等参数下做出 scaling law 更好的实验结果(optimal) |
| Phase 3 | ⚡ 稀疏压缩 | Δ \Delta Δ高度稀疏,可被特定稀疏压缩编码。推理时提前载入 w 和 压缩后的△,解决部分带宽问题,大幅提高 decoding 性能 |
| Phase 4 | 🚀 算存融合 | 假设 Δ \Delta Δ由 data 产生,以算代存,缓解参数固化的缺陷,模拟生物神经元对环境(输入)的自适应能力 |
📧 联系方式
如有兴趣,欢迎联系!
- 大饼博士,邮箱:188997452@qq.com
DelfNet — 探索神经网络的新可能
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)