Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

ソフトマックス関数の微分の導出をご紹介

投稿日:2022年9月30日 更新日:

 

<目次>

(1) ソフトマックス関数の微分の導出をご紹介
 (1-1) ソフトマックス関数とは?
 (1-2) ソフトマックス関数の微分(一般式)
 (1-3) ソフトマックス関数の微分の導出(証明)

(1) ソフトマックス関数とは?ロジスティック回帰との関係性もご紹介

(1-1) ソフトマックス関数とは?

ソフトマックス関数の解説については、下記記事をご参照ください。
⇒(参考)ソフトマックス関数とは?ロジスティック回帰との関係性もご紹介

・ソフトマックス関数の式
$$ softmax(x)_i = \frac{e^{x_i}}{\sum^{n}_{j=1}e^{x_j}} \quad (i=1,2,…,n) $$

(1-2) ソフトマックス関数の微分(一般式)

\( Y=\sum^{n}_{j=1}e^{x_j} \)と置くと、ソフトマックス関数の微分を次のように表せます。
 
・①i=jの場合
$$ \frac{\partial y_i}{\partial x_i} = \frac{e^{x_i}Y-e^{x_i}e^{x_i}}{Y^2} = p(x_i) (1 – p(x_i))$$
 
・②i≠jの場合
$$ \frac{\partial y_i}{\partial x_j} = -\frac{e^{x_i}e^{x_j}}{Y^2} = -p(x_i)p(x_j)$$
 

(1-3) ソフトマックス関数の微分の導出(証明)

●STEP0:前提確認

・ソフトマックス関数は、ある入力に対する「出力の確率」として扱える
$$ softmax(x_i) = \frac{e^{x_i}}{\sum^{n}_{j=1}e_{x_j}} = p(x_i) \quad (i=1,2,…,n)  $$

●STEP1:i=jの場合の微分

・商の微分(Quotient Rule)を適用
$$ \frac{\partial P(x_i)}{\partial x_i} = \frac{ \frac{\partial e^{x_i}}{\partial x_i} Y – e^{x_i} \frac{\partial Y}{\partial x_i} }{ Y^2 } $$
・1項目は\( e^{x_i} \)(そのまま。ネイピア数の微分で、係数なし)
$$ \quad \quad \quad \quad = \frac{ e^{x_i} Y – e^{x_i} \frac{\partial Y}{\partial x_i} }{ Y^2 } $$
・2項目は分母\(Y\)をそのまま
$$ \quad \quad \quad \quad = \frac{ e^{x_i} Y – e^{x_i} \frac{\partial Y}{\partial x_i} }{ Y^2 } $$
・3項目は分子\( e^{x_i} \)をそのまま(変化なし)
$$ \quad \quad \quad \quad = \frac{ e^{x_i} Y – e^{x_i} \frac{\partial Y}{\partial x_i} }{ Y^2 } $$
・4項目は微分の結果、\( \frac{\partial Y}{\partial x_i} = \frac{\partial \sum^{n}_{j=1}e^{x_j}}{\partial x_i} = \frac{ \partial (e^{x_1} + e^{x_2} + \cdots e^{x_i} + \cdots + e^{x_n}) }{ \partial x_i} = 0 + 0 + \cdots e^{x_i} + \cdots 0 = e^{x_i} \)なので
$$ \quad \quad \quad \quad = \frac{ e^{x_i} Y – e^{x_i} e^{x_i} }{ Y^2 } $$
・式変形
$$ \quad \quad \quad \quad = \frac{ e^{x_i} }{ Y } \cdot \frac{ Y – e^{x_i} }{ Y } $$
$$ \quad \quad \quad \quad = \frac{ e^{x_i} }{ Y } (1- \frac{ e^{x_i} }{ Y }) $$
$$ \quad \quad \quad \quad = p(x_i) (1 – p(x_i)) $$
よって、ソフトマックス関数の微分(i=jの場合)は自分自身を用いた簡易な式で表現できる事が分かりました。

●STEP2:i≠jの場合の微分

・残りの分母の項についても、ソフトマックス関数の結果に影響を与えるため、それらに関しても微分します。
$$ softmax(x)_i = \frac{e^{x_i}}{  (e^{x_1} + e^{x_2} + \cdots e^{x_i} + \cdots + e^{x_n}) } \quad (i=1,2,…,n) $$
(図121)
・商の微分(Quotient Rule)を適用
$$ \frac{\partial P(x_i)}{\partial x_j} = \frac{ \frac{\partial e^{x_i}}{\partial x_j} Y – e^{x_i} \frac{\partial Y}{\partial x_j} }{ Y^2 } $$
・1項目は0になる
⇒\(e_{x_i}\)の\( x_{j} \)に関する微分は0になります(\( x_{j} \)が分子に含まれないため)
$$ \frac{\partial P(x_i)}{\partial x_j} = \frac{ 0 \cdot Y – e^{x_i} \frac{\partial Y}{\partial x_j} }{ Y^2 } $$
・2項目は計算不要(1項目が0なので)
・3項目は分子をそのまま代入
$$ \frac{\partial P(x_i)}{\partial x_j} = \frac{ 0 – e^{x_i} \frac{\partial Y}{\partial x_j} }{ Y^2 } $$
・4項目は微分の結果、\( \frac{\partial Y}{\partial x_j} = \frac{\partial \sum^{n}_{j=1}e^{x_j}}{\partial x_j} = \frac{ \partial (e^{x_1} + e^{x_2} + \cdots e^{x_i} + \cdots + e^{x_n}) }{ \partial x_j} = 0 + 0 + \cdots e^{x_j} + \cdots 0 = e^{x_i} \)なので
$$ \frac{\partial P(x_i)}{\partial x_j} = \frac{ 0 – e^{x_i} e^{x_j} }{ Y^2 } $$
・式変形
$$ \quad \quad \quad \quad = – \frac{ e^{x_i} }{ Y } \cdot \frac{ e^{x_j} }{ Y } $$
$$ \quad \quad \quad \quad = – p(x_i) p(x_j) $$
よって、ソフトマックス関数の微分(i≠jの場合)も自分自身を用いた簡易な式で表現できる事が分かりました。

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

システム開発における設計品質の分析の進め方(一例)について

  <目次> (1) システム開発における設計品質の分析の進め方(一例)について  (1-1) まえがき  (1-2) 前提事項  (1-3) 進め方  (1-4) 参考:分析の手法について …

Dockerコンテナの使い方メモ(初心者向け)

  <目次> Dockerコンテナの使い方メモ(初心者向け)  やりたいこと  背景(Why Container?)  STEP0:前提条件  STEP1:Dockerのインストール&初期設 …

LangChainのChainやAgentとは?概要やサンプルプログラムをご紹介

  <目次> (1) LangChainのChainやAgentとは?概要やサンプルプログラムをご紹介  (1-1) やりたいこと  (1-2) Chain概要  (1-3) Chainサン …

Azure App ServiceにVisual Studioからデプロイを行う方法

  <目次> (1) Azure App ServiceにVisual Studioからデプロイを行う方法  (1-0) STEP0:前提条件  (1-1) STEP1:Visual Stu …

Celonisの研修の概要・受講方法・学習支援コンテンツについて

  <目次> (1) Celonisの研修の概要・受講方法・学習支援コンテンツについて  (1-1) Celonisの研修概要  (1-2) Celonisの研修の分類について  (1-3) …

  • English (United States)
  • 日本語
Top