【AIの核心】「合成関数の微分」がなければディープラーニングは存在しない理由

こんにちは。ゆうせいです。

ここまで、線形代数、微分、偏微分と、機械学習に必要な数学の旅をしてきましたね。

今回は、その集大成とも言える「合成関数(ごうせいかんすう)の微分」についてお話しします。

高校数学の教科書で f(g(x)) という記号を見たとき、何重にも重なったカッコを見て、そっと目を閉じたくなりませんでしたか。その気持ち、よくわかります。「関数の中に関数がある」なんて、ややこしいですよね。

でも、実はこの「合成関数の微分」こそが、現在のAIブーム、特にディープラーニング(深層学習)を支えている最大の功労者なのです。

もしこの計算ルールが存在しなかったら、ChatGPTのような高度なAIは生まれていなかったと言っても過言ではありません。

なぜ、この少し面倒な数学がそこまで重要なのか。今回は「情報のバケツリレー」をイメージしながら、その仕組みを直感的に理解していきましょう。

合成関数とは「工場のライン作業」である

まずは「合成関数」という言葉の堅苦しいイメージを崩しましょう。

これは、ある入力データに対して、順番に処理を行っていく「工場のライン作業」のようなものです。

例えば、あなたがパン工場で働いていると想像してください。

  1. 工程A(関数g): 小麦粉(入力 x )をこねて、生地(中間データ u )にする。
  2. 工程B(関数f): 生地(中間データ u )を焼いて、パン(出力 y )にする。

このとき、最終的なパン( y )は、小麦粉( x )に対して、工程Aと工程Bを順番に行った結果ですよね。

これを数学の言葉で書くと、 y = f(g(x)) となります。これが合成関数です。

機械学習、特に「ニューラルネットワーク」は、これと同じ構造をしています。入力された画像データなどが、第1層、第2層、第3層……と、何層もの計算処理(関数)を通過して、最後に「これは猫です」という予測結果(出力)を出します。

つまり、ディープラーニングとは、とてつもなく長い「巨大な合成関数」そのものなのです。

なぜ機械学習に必須なのか?

では、なぜこの合成関数を「微分」する必要があるのでしょうか。

それは、最後の予測結果が間違っていたときに、「どの工程(層)に原因があったのか」を突き止めるためです。

1. 「連鎖律(チェーンルール)」で原因を遡る

先ほどのパン工場の例で、出来上がったパンが焦げていたとします(損失が発生)。

このとき、「オーブンの温度が高すぎたのか(工程Bのミス)」、それとも「生地の水分が少なすぎたのか(工程Aのミス)」を知る必要があります。

ここで登場するのが、合成関数の微分で使う「連鎖律(れんさりつ)」という最強のルールです。

連鎖律を使うと、全体の変化(パンの焦げ具合)を、それぞれの工程ごとの変化の掛け算に分解できます。

全体の変化率 = 工程Bの変化率 \times 工程Aの変化率

これを数式風に書くと以下のようになります。

\frac{dy}{dx} = \frac{dy}{du} \times \frac{du}{dx}

この式が意味しているのは、「結果( y )から逆順に原因( x )へ遡ることができる」ということです。

機械学習では、出力された誤差(パンの焦げ)を、出口から入口に向かって逆順に伝えながら、各層のパラメータを修正していきます。これを誤差逆伝播法(ごさぎゃくでんぱほう)」と呼びます。

この「逆向きに誤差を伝えていく」仕組みの根底にあるのが、まさに合成関数の微分(連鎖律)なのです。

2. 計算を効率化する

もし連鎖律を使わずに、何百層もあるディープラーニングのパラメータを修正しようとしたらどうなるでしょうか。

入口のパラメータを少し変えて、最後まで計算して結果を見て、また戻って……とやっていたら、計算量が膨大すぎて日が暮れてしまいます。

合成関数の微分を使えば、「隣の層から渡された誤差」に「自分の層の微分」を掛け算するだけで、自分の修正量が計算できます。まるでバケツリレーのように、後ろから前へ、スムーズに計算結果を渡していけるのです。

これにより、スーパーコンピューターを使っても何年もかかるような計算が、数時間や数日で終わるようになりました。

合成関数の微分を学ぶメリットとデメリット

この概念を理解することのメリットと、注意点を整理しましょう。

メリット

  • 「誤差逆伝播法」の仕組みが腑に落ちる機械学習の教科書で必ず出てくる「バックプロパゲーション」という言葉。これが単なる「連鎖律の応用」だと知っていれば、恐れる必要はなくなります。
  • ネットワーク構造を自由に設計できるどんなに複雑に層を重ねても、それぞれが微分可能な関数(合成関数の一部)であれば、連鎖律を使って学習できることが保証されています。これにより、今のAIのような自由なモデル設計が可能になっています。

デメリット

  • 「勾配消失問題」の原因になるこれは少し専門的な話ですが重要です。連鎖律は「掛け算」です。もし、それぞれの層の微分値が 0.1 のように小さかったらどうなるでしょう。0.1 \times 0.1 \times 0.1 ... と何回も掛けていくと、値は限りなく 0 に近づいて消えてしまいます。これが「勾配消失(こうばいしょうしつ)」と呼ばれる現象で、層を深くしすぎると学習が進まなくなる大きな原因です。合成関数の仕組みを知っていると、この問題の意味もよく分かります。

今後の学習の指針

ここまで読んでいただき、ありがとうございます。

「合成関数」という名前には圧倒されますが、要は「リレー形式で計算がつながっている」ということであり、その微分(連鎖律)は「掛け算で影響を遡れる」という便利なルールだということが伝わりましたでしょうか。

最後に、今後の学習アドバイスをお伝えします。

「計算グラフ(Computational Graph)を書いてみよう!」

数式だけで理解しようとすると、添字が増えて混乱してしまいます。

これからの学習では、計算の流れを「丸と矢印」で図解する「計算グラフ」という考え方を学んでみてください。

x \rightarrow g \rightarrow f \rightarrow y

このように図を描き、矢印を逆向きに辿りながら微分値を掛け算していくイメージを持つと、PyTorchやTensorFlowなどのAIフレームワークが裏側で何をしているのかが、手に取るようにわかるようになります。

難しそうな数式の裏には、実はこんなに合理的な「バケツリレー」の仕組みが隠されていたのです。

これで機械学習に必要な数学の基礎、「線形代数」「微分」「偏微分」「合成関数」が揃いました。

あなたはもう、数式に怯える新人エンジニアではありません。自信を持って、機械学習のコードを書き始めてください。

応援しています!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。