記号微分とは、コンピュータを用いて数学的な数式をその定義や公式に従って変形し、厳密な導関数を記号のまま計算する手法です。数式のまま正確な微分を求めることができる一方で、複雑な関数に対しては式が肥大化する式爆発の課題があります。
記号微分とは
一言でいうと、記号微分とは「数学の公式をそのままコンピュータに適用し、数式として厳密な導関数を計算する手法」のことです。
詳しく解説
記号微分は、人間が手計算で行う微分規則、例えば積の微分法則や合成関数の微分などをそのままプログラムに実装したものです。入力された数式構造を解析し、厳密な数式としての導関数を出力します。このアプローチの最大の強さは、誤差を含まない正確な数式が得られる点にあります。しかし、ディープラーニングなどの大規模なニューラルネットワークのように、関数の合成が複雑で非常に深い構造を持つ場合、得られる式が指数関数的に巨大化する「式爆発」という致命的な問題が発生するため、そのままでは現代の機械学習の訓練には適していません。
具体例・使われ方
例えば、「y = x^3 + 2x^2」という数式を入力すると、記号微分を行うプログラムは解析的に処理を行い、「dy/dx = 3x^2 + 4x」という新しい数式を出力します。また、数式処理ソフト(MathematicaやSymPyなど)の内部で、数式を正確に変形・解析するために活用されています。
似た用語との違い
機械学習で一般的に使われる自動微分とは大きく異なります。自動微分は、プログラムのソースコードや計算グラフをたどりながら数値的な計算結果と同時に微分値を効率的に計算する手法です。数値計算を基本とする自動微分に対し、記号微分は数式自体を操作するという違いがあります。
注意点
最大の注意点は、複雑な関数を処理する際に式が膨れ上がり計算不能になる「式爆発」を引き起こす点です。また、現代のディープラーニングの主流であるニューラルネットワークの勾配計算には直接利用できず、用途が限定される点にも注意が必要です。