PyTorchでHessianの固有値を効率よく求めるツール「pytorch-hessian-eigenthings」を読む
このリポジトリは、PyTorchモデルのHessian(ヘッシアン)行列の固有値・固有ベクトルを、できるだけ軽く計算するためのツール集です。 ただし「全体を巨大な行列として持つ」のではなく、Hessian-vector product(HVP)という仕組みを使って、メモリ消費を抑えながら近似的に計算します。 Lanczos法、stochastic power iteration、Hutch++、Stochastic Lanczos Quadrature など、線形代数のアルゴリズムが好きな人にはかなり刺さる内容です。 実用面では、通常のPyTorchモデルだけでなく、HuggingFace系のTransformerやTransformerLensにも対応しているのが面白いところです。 個人的には、深層学習の「学習後のモデルをどう見るか」を支える、かなり“渋いけど重要”なライブラリだと思います。 Hessianは、ざっくり言うと「損失関数の曲がり具合」を表す行列です。 たとえば、山の地形を想像してください。 坂が急なら曲がりが強いし、なだらかなら曲
papoo.work