google-deepmind/kfac-jax

Second Order Optimization and Curvature Estimation with K-FAC in JAX.

What it solves

KFAC-JAX 提供了一个易于使用的 K-FAC (Kronecker-factored Approximate Curvature) 优化器和曲率估计器实现。它通过提供曲率矩阵的可扩展近似值,解决了神经网络二阶优化通常比一阶方法更耗费计算资源的问题。

How it works

该库基于 JAX 构建,允许研究人员通过近似损失函数的曲率来优化神经网络。它要求用户注册特定的损失函数(例如,通过 register_softmax_cross_entropy_loss),以便库可以正确近似曲率矩阵。优化器会自动处理内部阶段化 (JIT 和 PMAP),这意味着用户不应手动对优化器的 step function 或损失函数应用 jax.jitjax.pmap

Who it’s for

使用 JAX 并希望实现二阶优化技术以改进其神经网络训练的 AI 研究人员。

Highlights

  • JAX-native: 专为加速器上的高性能性能。

  • Automatic Staging: 自动处理优化器 step 的 jit and pmap

  • Adaptive Parameters: 支持自适应学习率、自适应动量和自适应阻尼。

  • nCurvature Estimation: 提供神经网络训练的可扩展曲率近似值。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目