google-deepmind/kfac-jax

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

解决的问题

KFAC-JAX 提供了 K-FAC(Kronecker-factored Approximate Curvature)优化器和曲率估计器的易用实现。它通过提供曲率矩阵的可扩展近似,解决了神经网络二阶优化通常比一阶方法计算成本更高的挑战。

工作原理

基于 JAX 构建,该库允许研究人员将其 K-FAC 优化集成到自己的模型中。用户必须注册其特定的损失函数(例如使用 register_softmax_cross_entropy_loss),以便库能够正确近似曲率矩阵。优化器会自动处理内部阶段化(通过 jax.jit 或 jax.pmap),因此用户不应手动对优化器的步进函数或损失函数应用这些函数。

适用人群

使用 JAX 和 Haiku 训练神经网络并希望利用二阶优化技术以提高训练效率或收敛性的 AI 研究人员。

主要亮点

  • JAX 原生:专为该库的生态系统构建,与 Haiku 集成。
  • 可扩展曲率:实现 K-FAC 以实现高效的二阶优化。
  • 自动阶段化:内部管理 jit 和 pmap 以简化用户体验。
  • 自适应参数:支持自适应学习率、动量和阻尼。

相关

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