【初心者でも分かる】シグモイド関数の微分が美しい!AIが学ぶ仕組みの核心

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

ニューラルネットワークを学ぶ上で、多くの人が一度は出会う「シグモイド関数」。S字のなめらかな曲線が特徴的で、物事の確率を表現するのによく使われますね。

このシグモイド関数ですが、実は「微分する」ことで、AIの学習において非常に重要な役割を果たします。今回は、一見難しそうに見えるシグモイド関数の微分を、ステップバイステップで解き明かし、なぜその結果が「美しい」と言われるのかを探っていきましょう!


なぜ微分が必要なの?「間違い」から学ぶため

そもそも、なぜ関数を微分する必要があるのでしょうか?

機械学習、特にニューラルネットワークの学習は、「予測の答え合わせをして、間違いが小さくなるようにパラメータを調整する」という作業の繰り返しです。

この「調整」のときに、微分が活躍します。微分を使うと、関数の特定の点における「傾き」が分かります。この傾きが、パラメータをどちらの方向に、どれくらい動かせば間違いが減るのかを教えてくれる「道しるべ」になるのです。

例えるなら、あなたは霧深い山で、谷底(間違いが最も小さい場所)を目指している探検家です。目隠しされていても、足元の地面の傾きさえ分かれば、「ああ、こっちが下り坂だから、こっちに進めばいいんだな」と判断できますよね?この「足元の傾き」を計算するのが、微分なのです。


シグモイド関数の定義

まずは主役であるシグモイド関数\sigma(x) の式を確認しましょう。

\sigma(x) = \frac{1}{1 + e^{-x}}

$latex e latex x $に入力されても、出力は必ず0から1の間に収まります。

ちなみに、この関数は入力$latex x latex x=0 $を代入してみましょう。

\sigma(0) = \frac{1}{1 + e^{-0}} = \frac{1}{1 + 1} = \frac{1}{2}

どんな数も0乗すると1になるので、e^0 は1になります。つまり、シグモイド関数のグラフを描いたとき、そのS字カーブは必ず(0, 0.5)という中心点を通るのです。


いよいよ微分に挑戦!

では、この関数をx で微分していきましょう。高校数学を思い出しながら、ゆっくり進めば大丈夫です!

Step 1: 式を変形する

分数のまま微分するのは少し大変なので、指数を使って式を書き換えます。「\frac{1}{A} = A^{-1} 」というルールを使うと、こうなります。

\sigma(x) = (1 + e^{-x})^{-1}

Step 2: 合成関数の微分(連鎖律)を使う

この式は、$latex u = 1 + e^{-x} latex -1 $乗した形になっています。このような「関数の中に関数が入っている」形を微分するときは、「合成関数の微分(連鎖律)」を使います。

「外側の微分 × 内側の微分」と覚えている方も多いかもしれませんね。

  1. 外側の微分: まずは(\cdot)^{-1} という外側の部分を微分します。x^{-1} の微分がlatex -x^{-2} になるのと同じルールで、-(u)^{-2} となります。-(1 + e^{-x})^{-2}
  2. 内側の微分: 次にu = 1 + e^{-x} という内側の部分を微分します。定数である1の微分は0、e^{-x} の微分はlatex -e^{-x} になります。0 - e^{-x} = -e^{-x}

Step 3: 2つを掛け合わせる

最後に、Step 2で計算した「外側の微分」と「内側の微分」を掛け合わせます。

\frac{d}{dx}\sigma(x) = -(1 + e^{-x})^{-2} \cdot (-e^{-x})

マイナス同士が打ち消し合い、見やすく整理すると、こうなります。

\frac{d}{dx}\sigma(x) = \frac{e^{-x}}{(1 + e^{-x})^2}

これで微分は完了です!…が、この物語にはまだ続きがあります。


この式が「美しい」と言われる理由

先ほどの結果、実は驚くべき変形が可能です。

\frac{e^{-x}}{(1 + e^{-x})^2}

この式を、もともとのシグモイド関数\sigma(x) = \frac{1}{1 + e^{-x}} だけを使って表現することを目指します。

少しトリッキーな式変形をしてみましょう。

\frac{e^{-x}}{(1 + e^{-x})^2} = \frac{1 + e^{-x} - 1}{(1 + e^{-x})^2}

分子に「+1」と「-1」を加えて、帳尻を合わせました。これを2つの分数に分解します。

= \frac{1 + e^{-x}}{(1 + e^{-x})^2} - \frac{1}{(1 + e^{-x})^2}

1つ目の分数を約分し、2つ目の分数を指数の形にまとめると…

= \frac{1}{1 + e^{-x}} - \left(\frac{1}{1 + e^{-x}}\right)^2

何か見えてきませんか?そうです、これは元のシグモイド関数\sigma(x) そのものです!

= \sigma(x) - {\sigma(x)}^2

\sigma(x) でくくって、最終的な形を導き出します。

\frac{d}{dx}\sigma(x) = \sigma(x)(1 - \sigma(x))

なんと、シグモイド関数の微分は、「シグモイド関数の出力値」だけで計算できてしまうのです!

なぜこれが重要なのか?

ニューラルネットワークの学習では、まず入力値を使って順方向の計算(Forward Propagation)を行い、出力値を求めます。その後に、間違いから学ぶために逆方向の計算(Backpropagation)で微分値を使います。

このとき、シグモイド関数の微分を計算するのに、改めて元の入力値$latex x latex \sigma(x) $を使い回せば良いだけなのです。これは計算のコストを大幅に削減できることを意味し、非常に効率的な性質と言えます。


次のステップへ

今回はシグモイド関数の微分を追いかけ、その結果がなぜ美しく、そして効率的なのかを解説しました。

微分という「傾き」を求める計算が、AIが学習するための「道しるべ」になっていること、そしてその計算が関数の出力値だけで完結するエレガントな性質を持っていることを感じていただけたなら嬉しいです。

さらに興味が湧いたら、

  • 最近よく使われる「ReLU」という活性化関数の微分はどうなっているのか?
  • この微分値が、具体的にどのように学習(パラメータ更新)で使われるのか(勾配降下法)

などを調べてみると、さらに理解が深まるはずです。一歩ずつ、AIが学ぶ仕組みの核心に近づいていきましょう!


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

投稿者プロフィール

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