AI・機械学習
初級

マグニチュードプルーニング(マグニチュードプルーニング)

重みの絶対値(マグニチュード)が小さいものから除去するニューラルネットワーク最古のプルーニング手法。LeCun 1990提案のOBDが起源。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
重み枝刈り
プルーニング基礎
モデル圧縮
スパース化
OBD

マグニチュードプルーニング — ニューラルネットワーク圧縮の原点

マグニチュードプルーニング(Magnitude-based Weight Pruning)は重みの絶対値の大きさ(マグニチュード)を基準に不要な重みを除去するプルーニング手法です。ニューラルネットワーク圧縮の歴史の中で最も古く、最も広く知られている手法の一つです。

歴史的背景

プルーニングの概念はHanson & Pratt(1989)の研究に遡ります。その後1990年にYann LeCunらが "Optimal Brain Damage (OBD)" を発表し、重みの重要度をテイラー展開(二次近似)で理論的に評価する枠組みを提示しました。マグニチュードプルーニングはその簡略版として、二次導関数の計算を省略し単純に|w|が小さいものから除去するアプローチとして定着しました。

1993年にはBabakBarrett & HassibiがOBS(Optimal Brain Surgeon)でヘッシアン行列を用いたさらに精密な手法を提案しており、SparseGPTはこのOBSを現代LLMに適用したものです。

アルゴリズム

基本的な実装は非常にシンプルです:

import torch

def magnitude_prune(model, sparsity_ratio):
    all_weights = torch.cat([p.flatten() for p in model.parameters()])
    threshold = torch.quantile(all_weights.abs(), sparsity_ratio)
    for param in model.parameters():
        mask = param.abs() > threshold
        param.data *= mask  # 閾値以下をゼロに

イテレーティブプルーニング(Gradual Pruning)

一度に大量の重みを除去すると精度が大幅に劣化するため、実用的にはイテレーティブプルーニングが使われます:

  1. 小さな割合(例:10%)をプルーニング
  2. 短時間fine-tuning(pruning後の精度回復)
  3. スパース率が目標に達するまで繰り返す

Han et al. 2015の "Learning both Weights and Connections for Neural Network"(DeepCompression)がこの手法の代表例です。

LotteryTicket Hypothesis との関係

Frankle & Carlin(2018)の Lottery Ticket Hypothesis(LTH)はマグニチュードプルーニングの研究から生まれた重要な洞察です。LTHは「大きなネットワークには元々小さなサブネットワーク(winning ticket)が含まれており、このサブネットワークだけで訓練しても同等の精度が得られる」ことを示しました。

LLM での限界

LLMに対してマグニチュードプルーニングを直接適用すると精度劣化が大きいことが知られています。主な原因:

  • 外れ値(Outliers)問題:LLMの特定チャネルには極端に大きな活性化値があり、これと対になる重みは絶対値が大きくなりやすい。マグニチュードだけではこの文脈が考慮されない
  • レイヤー間の感度差:初期レイヤーと後期レイヤーでプルーニングへの感度が異なるが、均一な閾値設定では対応できない

Wandaはこの外れ値問題に活性化ノルムの乗算で対応し、マグニチュードプルーニングより大幅な改善を達成しました。

まとめ

マグニチュードプルーニングはニューラルネットワーク圧縮の出発点として、現代の高度なプルーニング手法の理解に不可欠な基礎概念です。シンプルさゆえのLLMでの限界を理解することが、WandaやSparseGPTのような手法がなぜ改善をもたらすかを把握する鍵になります。

この記事について
カテゴリーAI・機械学習
難易度初級
作成日2026/6/6