第1ステージ 微分を自動で求める

現代の科学技術において、微分は様々な分野で使われています。とりわけ、ディープラーニングを含む機械学習の各分野においては、微分は中心的な役割を果たします。ディープラーニングのフレームワークは、言ってみれば、微分を求めるためのツールです。そのため、本書の主題も自ずと「微分」になります。つまり、コンピュータを使って微分をいかに求めるかということが主なテーマになります。

これから始まる第1ステージは、全部で10のステップから構成されます。このステージでは、微分を自動で求めるための枠組みを作ります。ここで言う「微分を自動で求める」とは、(人ではなく)コンピュータが微分を求めることを指します。具体的には、ある計算(関数)をコーディングすれば、その計算の微分がコンピュータによって自動で求められるシステムを指します。

本ステージでは微分を自動で求めるために、「変数」と「関数」を表す2つのクラス(VariableクラスとFunctionクラス)を作ります。驚くことに、その2つのクラスがあれば、微分を自動で求めるための基盤が完成します。第1ステージが終わる頃には、単純な計算(関数)に関しては、その微分を自動で求められるようになります。それでは、DeZeroの最初のステップへと進みましょう!