{"id":26201684,"url":"https://github.com/gugugu12138/adaptoflux","last_synced_at":"2025-04-15T05:56:29.778Z","repository":{"id":281849657,"uuid":"946629121","full_name":"gugugu12138/AdaptoFlux","owner":"gugugu12138","description":"An algorithm that implements intelligence based on a functional set (a collection containing multiple types of functions).  一种基于功能集（包含多种类型的函数的集合）实现智能的算法","archived":false,"fork":false,"pushed_at":"2025-04-12T15:38:03.000Z","size":5650,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T05:56:22.946Z","etag":null,"topics":["adaptive-algorithms","algorithm-design","automated-feature-selection","computational-graph","deep-learning","entropy-optimization","graph-algorithms","machine-learning","neural-networks","path-search","path-search-algorithm","python","reinforcement-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gugugu12138.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-11T12:42:27.000Z","updated_at":"2025-04-12T15:38:06.000Z","dependencies_parsed_at":"2025-03-11T17:22:17.441Z","dependency_job_id":"66aef2ac-2027-4cea-9db2-ebd655aa467b","html_url":"https://github.com/gugugu12138/AdaptoFlux","commit_stats":null,"previous_names":["gugugu12138/fdia","gugugu12138/adaptoflux"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gugugu12138%2FAdaptoFlux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gugugu12138%2FAdaptoFlux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gugugu12138%2FAdaptoFlux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gugugu12138%2FAdaptoFlux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gugugu12138","download_url":"https://codeload.github.com/gugugu12138/AdaptoFlux/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016320,"owners_count":21198832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-algorithms","algorithm-design","automated-feature-selection","computational-graph","deep-learning","entropy-optimization","graph-algorithms","machine-learning","neural-networks","path-search","path-search-algorithm","python","reinforcement-learning"],"created_at":"2025-03-12T03:23:16.531Z","updated_at":"2025-04-15T05:56:29.770Z","avatar_url":"https://github.com/gugugu12138.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | 中文 \n# AdaptoFlux\n\n**一种基于功能集（包含多种类型的函数的集合）实现智能的算法**\n\n## 项目概述\nAdaptoFlux是一种基于功能集的智能算法。不同于传统的深度学习，该算法通过生成一个基于路径的操作流程，实现智能计算和优化。通过对功能集和坍缩函数的操作，该算法拥有极强的兼容性和较强的可解释性。\n\n## 进展情况\n- **模型化简**和**新函数生成**部分仍在开发中。\n- 正在编写**基于该算法在不修改MLP模型情况优化 MLP**的示例代码，并持续优化。\n\n## 未来工作\n- 进一步优化模型化简过程，提高计算效率。\n- 完善新函数生成机制，以增强算法适用性。\n- 完成并优化 MLP 优化示例代码，使其更具参考价值。\n- 载入模型后在原模型基础上训练\n- 从模型中提取一部分已完成的路径进行重新训练\n\n# 如何使用\n1. 创建新的 conda 环境：\n\n```bash\nconda create -n AdaptoFlux python=3.12\nconda activate AdaptoFlux\n```\n\n2. 克隆仓库：\n\n```bash\ngit clone https://github.com/gugugu12138/AdaptoFlux.git\ncd AdaptoFlux\n```\n\n3. 安装依赖：\n\n```bash\npip install -r requirements.txt\n```\n注: 使用的功能集需要额外配置环境\n\n# 修改功能集\nAdaptoFlux的训练和推理基于功能集进行运行，通过修改methods.py中的函数，为AdaptoFlux提供不同的选择，达到更好的效果。\n(你甚至可以往功能集里面塞随机森林和MLP模型)\n\n# 数据处理模型结构说明\n## 数据流\n从输入数据到输出结果的处理过程。数据沿着动态生成的路径逐层进行特征提取和转换，每一层级执行特定的任务，并最终通过 **坍缩函数** 将中间表示转化为目标形式的过程。\n\n## 坍缩函数\n可选的转换操作，用于在基于动态生成路径的数据流处理过程中，从路径末端提取经过逐层操作后的数据，并将其转化为具有特定目标格式的输出。  \n具体而言，当网络中的某些值与 **指导值** 存在直接关系时，坍缩函数通过聚合或总结操作，将复杂的中间表示简化为更简洁的目标形式。  \n其输入可以是单个节点的特征向量，也可以是整个路径末端的综合数据，输出则根据任务需求定制，例如概率分布、类别标签或其他所需格式。\n（与功能集同理，坍缩函数可以灵活选择算法，如使用MLP作为坍缩函数）\n\n## 指导值\n用于指导神经的生长或退化。\n\n- 指标分类与层级划分：\n\n  | 类别   | 示例指标       | 调整目标      | 影响权重 |\n  | ---- | ---------- | --------- | ---- |\n  | 核心任务 | 准确率、F1分数   | 直接优化任务性能  | 高（α） |\n  | 路径质量 | 路径熵、路径深度   | 保障探索与架构健康 | 中（β） |\n  | 计算效率 | 内存占用、FLOPs | 抑制资源浪费    | 低（γ） |\n  | 损失控制 | MSE、RMSE、交叉熵 | 训练初期调整优化方向，后期减少影响 | 变（δ）\n\n- **多指标融合公式**\n\n  $$\n  指导值 = \\sum \\omega_i \\cdot 核心指标_i + \\sum \\phi_j \\cdot 路径指标_j - \\sum \\psi_k \\cdot 效率指标_k - \\delta \\cdot 损失值\n  $$\n\n- **示例计算公式**：\n\n$$\n指导值 = \\alpha \\cdot 准确率 + \\beta \\cdot 路径熵 - \\gamma \\cdot 冗余操作惩罚 - \\delta \\cdot 损失值\n$$\n\n#### 路径熵计算\n\n$$\n路径熵 = -\\sum P(路径_i) \\cdot \\log P(路径_i)\n$$\n\n其中，P(路径_i) 表示第 $i$ 类路径的出现频率（统计窗口内的占比）。\n\n#### 冗余操作惩罚计算\n\n$$\n冗余操作惩罚 = \\sum (无效计算次数)\n$$\n\n## 功能集（Q）\n包含多种类型的函数的集合。\n\n## 函数集（F）\n只包含映射函数的功能集。\n\n## 操作集（O）\n只包含动作函数的功能集。\n\n\n$$\nG = \\{ g_1, g_2, g_3, \\dots, g_n \\}\n$$\n\n$$\nF = \\{ f_1, f_2, f_3, \\dots, f_m \\}\n$$\n\n$$\nO = \\{ o_1, o_2, o_3, \\dots, o_k \\}\n$$\n\n![基础结构](./assets/images/基础结构图2.0.png)\n\n## 模型处理流程\n1. **输入层处理**  \n   - 初始数据点数量：n\n   - 按照功能集规则随机分组\n   - 对每个分组执行对应函数\n\n2. **迭代处理**  \n   - 处理后将数据还原并重新分组\n   - 重复流程直至到达路径末端\n\n3. **输出生成**  \n   - 对尾部数据应用坍缩函数\n   - 生成最终网络输出\n\n---\n\n## 数据量变化公式\n### 关键参数定义\n- `Iₐ`：函数a的输入/输出数据量比\n- `H`：每层数据期望减少比例\n- `k`：功能集函数总数\n- `Wₐ`：函数a的被选概率\n\n**核心公式**  \n```math\nH = \\sum_{i=1}^{k} W_i I_i\n```\n\n在不同训练阶段采用不同的功能集进行处理，可以实现对数据的扩维，修改，降维\n\n### 层间数据量关系\n- `n₀`：初始数据量\n- `L`：模型层数\n- `nₗ`：第L层数据量  \n```math\nn₀ \\cdot H^L = n_L\n```\n\n\n---\n\n## 函数集特性分析\n### 分类定义\n| 类型       | 特性                          | 反向推导能力        |\n|------------|-------------------------------|---------------------|\n| 双射函数集 | 所有函数为双射                | 完全可逆            |\n| 单射函数集 | 所有函数为单射                | 可逆（需额外信息）  |\n| 满射函数集 | 所有函数为满射                | 多输入对应单输出    |\n\n### 特殊函数集示例\n```math\nF = \\begin{cases}\nf_1(a,b) = a \\cdot c_1 + b \\cdot d_1 \\\\\nf_2(a,b) = a \\cdot c_2 + b \\cdot d_2 \\\\\n\\vdots \\\\\nf_n(a,b) = a \\cdot c_n + b \\cdot d_n\n\\end{cases}\n```\n*条件：任意一组(c,d)互质*\n\n---\n\n## 应用特性\n### 满射函数集特性\n- **输入空间增长公式**  \n  ```math\n  T = R^C\n  ```\n  - `T`：输入空间大小\n  - `R`：函数输入数量均值\n  - `C`：函数调用总次数\n\n### 加密与压缩应用\n- 通过添加随机变量实现单射转换\n- 支持输出到唯一输入的映射\n\n### 对无直接输入数据时\n当没有直接输入时，可以通过使用一个操作集作为功能集，我们可以使用一个周期信号作为输入，通过操作集中的动作函数组合获取数据（或者使得指导函数趋向目标），以此来实现模型的构建。  \n\n**（这部分理论可行，之后会把图和完整概念放上来）**\n\n---\n\n### 已知的问题","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgugugu12138%2Fadaptoflux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgugugu12138%2Fadaptoflux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgugugu12138%2Fadaptoflux/lists"}