アジョイント法(随伴法)とは、数値シミュレーションや最適化問題において、多数の設計パラメーターに対する目的関数の勾配(感度)を効率的に計算する手法です。通常の微分計算ではパラメータ数に比例して計算コストが増加しますが、アジョイント法を用いることでパラメータ数に依存せず1〜2回の計算で勾配を算出できます。
アジョイント法とは
アジョイント法(随伴法)を一言でいうと、大規模なシステムやシミュレーションにおける膨大なパラメータの勾配を、パラメータの数に関わらず非常に少ない計算量で効率的に算出する数学的・数値的手法です。
詳しく解説
複雑な物理シミュレーションや最適化問題では、ある目的関数を達成するために多数のパラメータを調整する必要があります。従来の差分法などの順方向計算ではパラメータの数だけシミュレーションを繰り返す必要があり、計算コストが膨大になります。アジョイント法は、微分方程式の随伴方程式を導入し、目的関数の変化を逆方向から効率的に評価します。これにより、パラメータ数が増えても少数の計算で目的関数の勾配を求めることが可能になります。深層学習におけるバックプロパゲーションは、アジョイント法の特定形態として位置づけられます。
具体例・使われ方
具体的には、流体解析を用いた航空機の翼形状最適化や自動車の空力設計、構造最適化などで広く活用されています。また、気象予測におけるデータ同化、さらには連続時間ニューラルネットワークであるNeural ODEの学習プロセスにおける勾配計算にもアジョイント法が応用されています。
似た用語との違い
バックプロパゲーションとの違いとして、両者とも逆方向の自動微分に基づく手法ですが、アジョイント法は連続的な微分方程式や物理シミュレーションを対象とする一般的な概念であり、バックプロパゲーションは離散的な計算グラフに特化した手法です。また差分法ではパラメータ数に比例して計算量が増加しますが、アジョイント法はパラメータ数に依存しません。
注意点
アジョイント法を適用するには対象方程式の微分可能性が必要であり、随伴方程式の導出や実装の難易度が高いという注意点があります。また、逆方向計算のために順方向の計算途中の状態データを保持する必要があり、メモリ消費量が非常に大きくなる場合があります。