Skip to main content
QUICK REVIEW

[論文レビュー] Backprop with Approximate Activations for Memory-efficient Network Training

Ayan Chakrabarti, Benjamin Moseley|arXiv (Cornell University)|Jan 23, 2019
Advanced Neural Network Applications参考文献 21被引用数 17
ひとこと要約

本論文では、バックプロパゲーション中にGPUメモリ使用量を削減するため、正確な活性化の近似値を用いるメモリ効率の良いバックプロパゲーション手法を提案している。この手法では、バックプロパゲーション中に使用する低精度の近似値のみを保存し、フォワードパスでは正確な活性化を再計算する。このアプローチにより、最大8倍のメモリ削減が可能となり、精度にほとんど影響を与えない。これにより、1000層を超える深層ネットワーク(例:ResNets)を4ビット精度で、1つのGPU上でもより大きなバッチサイズで効率的に学習可能となる。

ABSTRACT

Training convolutional neural network models is memory intensive since back-propagation requires storing activations of all intermediate layers. This presents a practical concern when seeking to deploy very deep architectures in production, especially when models need to be frequently re-trained on updated datasets. In this paper, we propose a new implementation for back-propagation that significantly reduces memory usage, by enabling the use of approximations with negligible computational cost and minimal effect on training performance. The algorithm reuses common buffers to temporarily store full activations and compute the forward pass exactly. It also stores approximate per-layer copies of activations, at significant memory savings, that are used in the backward pass. Compared to simply approximating activations within standard back-propagation, our method limits accumulation of errors across layers. This allows the use of much lower-precision approximations without affecting training accuracy. Experiments on CIFAR-10, CIFAR-100, and ImageNet show that our method yields performance close to exact training, while storing activations compactly with as low as 4-bit precision.

研究の動機と目的

  • 深層畳み込みニューラルネットワークの学習における高いメモリ消費量を軽減すること。これは、バックプロパゲーションに必要な全精度の活性化を保存する必要があることに起因する。
  • 計算コストの大幅な増加やモデル性能の低下を伴わずに、メモリ使用量を削減すること。
  • 1001層以上の非常に深いネットワーク(例:1001層のResNets)を1つのGPU環境で学習可能にするために、活性化の保存量を最小限に抑えること。
  • 確率的勾配降下法(SGD)が、バックプロパゲーション中に活性化の近似誤差に対してどれほど頑健であるかを調査すること。
  • 新規のバッファ再利用戦略を用いることで、近似誤差が層を跨いで蓄積されないことを実証すること。

提案手法

  • フォワードパス中に正確な活性化を一時的に保存する再利用可能なバッファを用いる。これにより、使用後はメモリを上書きして節約する。
  • 各層の活性化に対して、低精度(例:4ビット)の近似コピーを維持し、バックワードパスで使用する。
  • フォワードパスでは正確な活性化を用いて勾配を計算することで、精度を保証する。一方、バックワードパスでは近似コピーを用いることで、メモリ使用量を削減する。
  • 正確な活性化に同じバッファを再利用し、全層にわたって正確な活性化を保存しないことで、この手法は全層の活性化を保存する必要を回避する。
  • フォワードパスが正確なままに保たれることで、近似誤差が層を跨いで蓄積されるのを防ぎ、バックワードパスにおける近似の影響を制限する。
  • SGDに内在するノイズが、活性化の近似によって生じるわずかな追加誤差を吸収できるため、この手法は頑健である。

実験結果

リサーチクエスチョン

  • RQ14ビットのような非常に低い精度の表現を用いても、近似活性化をバックプロパゲーションに使用しても、モデル精度が著しく低下しないか?
  • RQ2近似誤差をどのように層を跨いで制御することで、バックプロパゲーション中に誤差が蓄積されないようにするか?
  • RQ3学習中のメモリ使用量をどの程度削減できるか。同時に、学習効率とモデル性能を維持できるか?
  • RQ4活性化の近似によって生じる誤差は、確率的勾配降下法に内在するノイズと同等の大きさか?
  • RQ5この手法により、1つのGPU上で非常に深いネットワーク(例:1001層のResNets)を大規模バッチサイズで学習可能になるか?

主な発見

  • 本手法により、正確な学習と比較して最大8倍のメモリ使用量削減が達成され、1001層のResNetsを1つの1080Ti GPU上で学習可能となった。
  • 4ビットの近似を用いた場合、CIFAR-10、CIFAR-100、ImageNetの各データセットで、正確な学習と比較してテスト精度が0.5%以内の差にとどまった。
  • パラメータ勾配における近似誤差は、SGDに内在するノイズよりも1〜2桁小さいため、性能への影響が最小限であることが説明できる。
  • より大きなバッチサイズの使用が可能となり、GPUの使用率が向上し、1サンプルあたりの実行時間も短縮された。
  • 正確な学習と本手法との間で、1イタレーションあたりの実行時間にほとんど差がなかったため、計算オーバーヘッドは無視できるほど小さいことが示された。
  • CIFAR-10では、本手法により1つの1080Ti GPU上で128バッチの学習が可能となった。一方、正確な学習では、同じ環境下で1GPUあたり64バッチで2回のフォワード・バックワードパスを実行する必要があった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。