本文へ移動

G検定(ジェネラリスト検定)

ぷるーにんぐ

プルーニング

Pruning

プルーニングは、訓練したニューラルネットワークの接続(重み)のうち重要でないものを取り除き、精度を保ったまま記憶容量と計算量を減らす手法です。モデルの軽量化の代表的な手法の一つで、計算資源の限られた組み込みシステムなどへモデルを載せるために使われます。

詳しい説明

プルーニングとは

プルーニング(Pruning)は、英語で剪定や刈り込みを意味する語です。ニューラルネットワークでは、ネットワークの中の接続(ニューロン同士をつなぐ重み)のうち、重要でないものを取り除くことを指します。取り除いた接続は計算にも記憶にも使わなくてよくなるため、モデルを小さく、軽くできます。

この手法を具体的に示した論文の一つが、ハン(Han)、プール(Pool)、トラン(Tran)、ダリー(Dally)による2015年の論文 Learning both Weights and Connections for Efficient Neural Networks です。以下ではこの論文の説明に沿って、プルーニングの考え方と手順を見ていきます。

なぜ接続を減らす必要があるのか

論文は出発点となる課題を二つ挙げています。

一つ目は、ニューラルネットワークが計算量の面でもメモリの面でも負荷が高く、組み込みシステムのような限られた環境へ展開しにくいことです。

二つ目は、従来のネットワークでは訓練を始める前に構造(どのニューロンとどのニューロンをつなぐか)を固定してしまうため、訓練によって構造そのものを改善できないことです。

これに対して論文は、重要な接続だけを学習することで、精度に影響を与えずに、ネットワークが必要とする記憶容量と計算量を1桁(およそ10分の1)減らす方法を示しました。重みの値だけでなく、どの接続を残すかというつながり方も訓練を通じて学ぶ、という点がこの手法の特徴です。

3段階の手順

論文の方法は、次の3段階で冗長な接続を刈り込みます。

1. 訓練: まずネットワークを通常どおり訓練し、どの接続が重要かを学習させます。
2. 刈り込み: 重みの値がしきい値より小さい接続をすべて取り除きます。重みが小さい接続は出力への影響が小さく、重要でないとみなすという考え方です。この操作によって、すべてのニューロンがつながった密な全結合層が、接続がまばらなスパースな層に変わります。

3. 再訓練: 残った接続の重みを微調整するために、スパースになったネットワークをもう一度訓練します。取り除いた接続が担っていた役割を、残った接続が補えるようにするための工程です。

論文では、最初の段階で重要な接続を見極めて不要な接続を取り除くことを、ネットワークのトポロジー(つながり方の形)を学習すること、と説明しています。

さらに、刈り込みと再訓練は一度で終わりにする必要はなく、繰り返し行うことで、ネットワークの複雑さをいっそう減らせるとされています。一度に大きく削るのではなく、削っては訓練し直すことを重ねるのがポイントです。

どれだけ小さくできたか

論文は、画像認識のデータセットであるImageNetを使った実験の結果を報告しています。

  • AlexNetでは、パラメータ数を6,100万から670万へ、9分の1に減らしました。
  • VGG-16では、パラメータ数を1億3,800万から1,030万へ、13分の1に減らしました。

どちらの場合も、精度の低下は起きなかったと報告されています。大規模な画像認識モデルのパラメータの大部分が、精度を保つうえでは冗長だったことを示す結果です。

脳の発達とのたとえ

論文は、この訓練の過程を哺乳類の脳の発達になぞらえています。子どもの発達の最初の数か月でシナプス(神経細胞同士の接続)が多数作られ、その後あまり使われない接続が徐々に刈り込まれて、大人の典型的な数に落ち着いていく、という流れです。

プルーニングも同じように、はじめは多くの接続を持つネットワークを訓練し、その後で使われていない接続を刈り込んでいきます。重みを学ぶことに加えて、どの接続を持つかというつながり方も学ぶ、という考え方をわかりやすく示したたとえです。

押さえておきたい見方

プルーニングは、モデルの精度をできるだけ保ちながら、記憶容量と計算量を減らすための軽量化の手法です。手順としては、訓練、重要でない接続の刈り込み、残った接続の再訓練という流れで理解しておくと整理しやすくなります。重要でない接続を見分ける基準として、この論文では重みの大きさ(しきい値より小さいかどうか)を使っている点も押さえておきましょう。

試験で問われること

G検定

  • プルーニングが、ニューラルネットワークの重要でない接続(重み)を取り除いて記憶容量と計算量を減らす軽量化の手法であることを説明できますか。
  • 訓練、しきい値より小さい重みの接続の刈り込み、残った接続の再訓練という3段階の手順と、刈り込みと再訓練を繰り返せることを確認しておきましょう。
  • 刈り込みによって密な全結合層がスパースな層に変わることと、再訓練が取り除いた接続の役割を残った接続に補わせるための工程であることを説明できますか。
  • ハン(Han)らの実験で、AlexNetのパラメータ数が9分の1、VGG-16のパラメータ数が13分の1に減り、いずれも精度の低下が起きなかったと報告されていることを確認しておきましょう。

最終更新日: 2026/09/23