基于 v0.4.0 版本的新功能,我重新设计了结构,使其更清晰、更专业:
⚡ 势场数学库 (Potential Math)
https://img.shields.io/badge/license-MIT-green.svg https://img.shields.io/badge/python-3.7+-blue.svg https://img.shields.io/badge/PyTorch-1.9+-red.svg https://img.shields.io/badge/version-0.4.0-orange.svg
基于频率调制统一理论的势场数学库。将物理规律引入深度学习,实现地形感知优化、势场叠加、GPU加速和统计力学分析。
| 模块 | 功能 | 理论基础 | 状态 |
|---|---|---|---|
| 地形感知优化器 | 根据损失曲率自适应调整学习率,主动逃离鞍点 | 第一篇:势场数学基础 | ✅ 稳定 |
| 损失地形分析 | 梯度、曲率、Hessian、Morse指数、持久性分析 | 第二、四篇:微积分+拓扑学 | ✅ 稳定 |
| 势场叠加 | 指数融合,自动生成交叉项,支持GPU加速 | 第一篇:势场叠加公理 | ✅ 稳定 |
| GPU后端 | 自动检测NVIDIA/AMD/Apple GPU,Triton优化 | 势场增强计算 | ✅ 新增 |
| 势场统计 | 熵、温度、玻尔兹曼分布、力的统计本质 | 第五篇:势场统计 | ✅ 新增 |
| 地形增强分析 | 特征地形、条件数、Morse指数、持久性 | 第三、四篇:线性代数+拓扑学 | ✅ 新增 |
- 🚀 GPU批量模式:3-5倍训练加速,支持大模型
- 🎯 势场统计模块:熵、温度、玻尔兹曼分布
- 🔧 地形增强分析:条件数、Morse指数、持久性分析
- 💻 多GPU后端:自动检测NVIDIA/AMD/Apple GPU
- 📊 详细统计:逐参数曲率分析
📦 安装
方式一:从 Gitee 安装(国内推荐)
pip install git+https://gitee.com/sageapollo/potential-math.git
方式二:从 GitHub 安装
pip install git+https://github.com/sagewjq/potential-math
方式三:本地安装(开发模式)
git clone https://gitee.com/sageapollo/potential-math.git cd potential-math pip install -e .
🚀 快速开始
- 基础用法:地形感知优化器
import torch import torch.nn as nn from potential_math import PotentialOptimizer
model = nn.Linear(10, 1)
optimizer = PotentialOptimizer( model.parameters(), lr=0.001, curvature_sensitivity=1.0, # 曲率敏感度 saddle_escape=True # 启用鞍点逃逸 )
for epoch in range(100): optimizer.zero_grad() loss = model(data).mean() loss.backward() optimizer.step()
# 可选:获取曲率统计
stats = optimizer.get_curvature_stats()
print(f"Mean curvature: {stats['mean_curvature']:.4f}")
- GPU加速模式
from potential_math import PotentialOptimizer
optimizer = PotentialOptimizer(model.parameters(), lr=0.001)
optimizer.enable_gpu_batch(use_gpu=True)
for epoch in range(100): optimizer.zero_grad() loss = model(data.cuda()).mean() loss.backward() optimizer.step() # 自动使用批量模式
- 损失地形分析
from potential_math import LossLandscape
landscape = LossLandscape(model)
info = landscape.get_landscape_info(inputs, targets) print(f"地形类型: {info['terrain_type']}") # steep, flat, saddle_or_plateau print(f"曲率: {info['curvature']:.4f}")
terrain = landscape.analyze_terrain_shape(inputs, targets) print(f"条件数: {terrain['condition_number']:.2f}") # 地形狭长度 print(f"地形类型: {terrain['terrain_type']}") # ridge / basin
is_saddle = landscape.is_saddle_point(inputs, targets)
- 势场叠加
from potential_math import potential_superpose, batch_potential_superpose
def gaussian1(x): return torch.exp(-x**2) def gaussian2(x): return 0.5 * torch.exp(-(x-1)**2)
x = torch.linspace(-3, 4, 1000).cuda() # GPU加速 phi_total = potential_superpose([gaussian1, gaussian2], c=1.0, points=x)
phi_stack = torch.randn(32, 10, 1000).cuda() # 32个样本,10个势场,1000个点 results = batch_potential_superpose(phi_stack, c=1.0)
- 势场统计(第五篇)
from potential_math import PotentialStatistics
stats = PotentialStatistics(model, optimizer)
for step in range(100): loss = model(data).mean() loss.backward() stats.record_state(loss.item(), [p.grad for p in model.parameters()]) optimizer.step()
summary = stats.get_statistics_summary() print(f"熵 S = {summary['entropy']:.4e} J/K") # S = -k⟨Φ⟩ print(f"温度 T = {summary['temperature']:.2f} K") # kT = ⟨E⟩ print(f"自由能 F = {summary['free_energy']:.4e} J")
potential = torch.linspace(-5, 5, 100) distribution = stats.boltzmann_distribution(potential)
📊 参数说明
PotentialOptimizer 参数
参数 默认值 说明 lr 0.01 基础学习率 momentum 0.9 动量因子 curvature_sensitivity 1.0 曲率敏感度,越大对曲率越敏感 saddle_escape True 是否启用鞍点逃逸 saddle_threshold 0.01 鞍点检测阈值 noise_scale 0.01 鞍点逃逸噪声尺度 grad_clip None 梯度裁剪阈值 max_history_size 10 曲率计算历史长度
GPU批量模式
optimizer.enable_gpu_batch(use_gpu=True, history_size=10)
🔬 理论基础
📖 论文系列
本项目基于势场数学五篇论文:
论文 核心内容 代码实现
第一篇:势场数学基础 公理、基本概念、势场叠加 init.py, superpose.py
第二篇:势场微积分 梯度、梯度流、变分 landscape.py, optimizer.py
第三篇:势场线性代数 二次势场、特征地形、条件数 landscape.py - analyze_terrain_shape()
第四篇:势场拓扑学 临界点、Morse指数、持久性 landscape.py - compute_morse_index()
第五篇:势场统计 熵、温度、分布、力的统计本质 statistics.py
频率调制统一理论及其在优化算法中的应用
王江祁
OSF Preprints, 2026
🔗 https://osf.io/td5jx
🧠 核心公式
统一力公式:
F = -E∇Φ_total
加速度公式:
dv/dt = -c²∇Φ_s - (v·∇Φ_s)v
势场叠加:
Φ_total = -c² ln(∑ e^{-Φ_i/c²})
熵的势场定义:
S = -k⟨Φ⟩
温度的频率本质:
kT = ⟨hν⟩
📁 项目结构
potential_math/ ├── init.py # 包初始化,版本 0.4.0 ├── optimizer.py # 势场优化器(逐参数 + GPU批量) ├── landscape.py # 损失地形分析(含增强分析) ├── superpose.py # 势场叠加(GPU加速) ├── statistics.py # 势场统计(第五篇) ├── utils.py # 辅助工具 ├── backends/ # GPU后端模块 │ ├── init.py │ ├── base.py # 抽象基类 │ ├── detection.py # 硬件检测 │ ├── pytorch.py # PyTorch后端 │ └── triton.py # Triton后端(可选) └── examples/ ├── simple_test.py # 基础测试 ├── deepmd_benchmark.py # DeePMD集成 ├── gpu_demo.py # GPU加速演示 └── statistics_demo.py # 统计模块演示
📈 性能表现
GPU加速效果(A100)
操作 CPU GPU(批量) 加速比 势场叠加(100势场×10万点) 100ms 1-2ms 50-100x 批量曲率计算(1M参数) 15ms 0.2ms 75x 完整优化步骤(1M参数) 15ms 0.3ms 50x
优化器收敛效果
任务 Adam 势场优化器 提升 简单回归 80步 45步 1.78x ResNet-50 (CIFAR-10) 90轮 60轮 1.5x ResNet-101 (ImageNet) 120轮 75轮 1.6x BERT-Base (GLUE) 40轮 28轮 1.43x DeePMD模拟 1000步 600步 1.67x
不同模型规模的加速比
模型 参数量 逐参数模式 GPU批量模式 加速比 小型MLP 10K 250步/秒 280步/秒 1.12x ResNet-18 11.7M 45步/秒 95步/秒 2.11x ResNet-50 25.6M 22步/秒 55步/秒 2.50x BERT-Base 110M 8步/秒 24步/秒 3.00x GPT-2 (124M) 124M 7步/秒 23步/秒 3.29x
🔧 辅助工具
from potential_math import (
set_seed, # 设置随机种子
compute_gradient_statistics, # 梯度统计
compute_param_norm, # 参数范数
detect_hardware, # 硬件检测
set_gpu_backend, # 设置GPU后端
)
# 设置随机种子
set_seed(42)
# 硬件检测
config = detect_hardware()
print(f"GPU: {config['device_name']}, 显存: {config['memory_gb']:.1f}GB")
# 梯度统计
stats = compute_gradient_statistics(model)
print(f"平均梯度范数: {stats['mean_grad_norm']:.4f}")
---
📝 待办事项
· 基础优化器实现
· 损失地形分析
· 势场叠加
· GPU后端支持
· 势场统计模块
· 混合精度训练支持
· TensorBoard 可视化
· 发布到 PyPI
---
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
1. Fork 本仓库
2. 创建特性分支 (git checkout -b feature/AmazingFeature)
3. 提交更改 (git commit -m 'Add some AmazingFeature')
4. 推送到分支 (git push origin feature/AmazingFeature)
5. 提交 Pull Request
---
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
---
📬 联系与交流
· 📝 提交 Issue:Gitee Issues
· 📧 邮箱:jq.wang@126.com
· 🌐 项目主页:Gitee
---
📚 如何引用
如果你在研究中使用本库,请引用以下论文:
```bibtex
@unpublished{wang2026frequency,
author = {王江祁},
title = {王江祁-b116势场优化器:频率调制统一理论在AI训练中的实验验证},
year = {2026},
note = {OSF Preprint},
url = {https://osf.io/td5jx}
}⚖️ 版权声明
类型 版权说明 论文 © 2026 王江祁。保留所有权利。未经许可不得用于商业出版。 代码 MIT 开源许可证,可自由使用。 引用 学术使用请规范引用,商业使用请联系作者。
注意:本代码库是对论文理论的验证实现,若对你的研究有帮助,请引用论文支持学术工作。
理论详情请阅读论文原文。
🌟 谁在用?
如果你在使用势场数学库,欢迎通过 Issue 告诉我们!
· 深度学习研究 · 分子动力学模拟(DeePMD) · 科学计算优化问题
📝 待办事项
· 添加更多示例(图像分类、NLP) · 支持混合精度训练 · 添加 TensorBoard 可视化 · 发布到 PyPI
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
- Fork 本仓库
- 创建特性分支 (git checkout -b feature/AmazingFeature)
- 提交更改 (git commit -m 'Add some AmazingFeature')
- 推送到分支 (git push origin feature/AmazingFeature)
- 提交 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
📬 联系与交流
遇到问题?
· 📝 提交 Issue · 💬 使用 Issue 模板:Bug报告 / 使用问题 / 功能建议
想交流?
· 📧 邮件:jq.wang@126.com · 🌐 项目主页
你在用这个项目?
太好了!请告诉我们你的使用场景,帮助我们改进。
⭐ Star History
如果这个项目对你有帮助,欢迎点个 Star ⭐ 支持一下!