0

ソフトマックス関数と数値微分

175
0

はじめに

本記事は Mathlog Advent Calendar 2021 12/13 の記事です.12/13の記事は道用基底さんalmost everywhereとルベーグ積分 1 でした.
ソフトマックス関数に興味を持ち、美しいと思った数値微分(差分)を書きます。

ソフトマックス関数の定義

ソフトマックス関数Si(x)を次式の実n変数関数とします。
1in
Si(x1,x2,xn1,xn):=exik=1nexk

ソフトマックス関数が満たす性質

0<Si(x)<1
i=1nSi(x)=1
Si(x1+C,x2+C,xn1+C,xn+C)=Si(x1,x2,xn1,xn)
dSidxj=δi,jSiSiSj
d log(Si)dxj=δi,jSj
δi,jはクロネッカーのデルタ

u(x1,x2,xn1,xn):=k=1nexk
d log(u(x))dxi=Si(x)

増分の定義

増分jjを以下のように、n変数関数f(x)に作用する作用素とします。

jf(x):=f(x1,x2,xj+hxn1,xn)
jf(x):=f(x1,x2,xjhxn1,xn)
この作用素は四則演算を保ちます。

通常の数値微分の例

 

前進差分

jf(x)f(x)h

中心差分

jf(x)jf(x)2h

両方ともlimh0で微分に一致します。
参照記事 数値微分における3つの差分とその誤差について

"よい"ソフトマックス関数専用の数値微分

以下では"よい"ソフトマックス関数専用の数値微分を提案します。

"よい"専用数値微分とは

今回はソフトマックス関数の性質を用いて、刻み幅hによらず、
1階偏微分と一致するような数値微分であり、
また前進差分か中心差分を刻み幅hで変形した数値微分を"よい"とします。

次の論文のように、差分と微分の誤差を平均作用素で埋めるではなく。
差分(数値微分)を変えることを考えました。
微分方程式の “理想的” 差分化

以下よく用いる式変形

ju(x)=u(x)+exj+hexj
ju(x)=u(x)+exjhexj
jSi(x)=exi+δi,jhju(x)
jSi(x)=exiδi,jhju(x)

前進差分の変形

jSi(x)Si(x)eh1ju(x)u(x)=dSidxj=δi,jSiSiSj

前進差分との違い

前進差分との乗法的違いに
heh1

ju(x)u(x)
があります。2つ目を変形すると、次が成り立ちます。
ju(x)u(x)=1+(eh1)Sjju(x)u(x)=exk+δj,khexk+δj,khju(x)u(x)=eδj,khSk(x)jSk(x)

中心差分の変形

jSi(x)jSi(x)ehehju(x)ju(x)u(x)2=dSidxj=δi,jSiSiSj

中心差分との違い

中心差分との乗法的違いに
2heheh=hsinh(h)=h2cosh(h2)sinh(h2)

ju(x)ju(x)u(x)2
があります。2つ目を変形すると、次が成り立ちます。
ju(x)ju(x)u(x)2=(1+(eh1)Sj)(1+(eh1)Sj)=cosh(h2)2(2Sj(x)1)2sinh(h2)2
coshsinh 双曲線関数

ju(x)ju(x)u(x)2=exk+δj,khexk+δj,khju(x)u(x)exkδj,khexkδj,khju(x)u(x)=Sk(x)2jSk(x)jSk(x)

余談

exp和のlog微分

d log(u(x))dxi=du(x)dxi1u(x)=Si(x)
を差分でかくと、
iu(x)u(x)eh11u(x)=Si(x)

iu(x)iu(x)eheh1u(x)=Si(x)

ソフトマックス関数の逆数の数値微分

d1Si(x)dxj=dSi(x)dxj1Si(x)2
j1Si(x)1Si(x)eh1eδi,jh=dSi(x)dxj1Si(x)2
j1Si(x)j1Si(x)eheh=dSi(x)dxj1Si(x)2
前進差分や中心差分との違いがxに依存しない。

明日の Mathlog Advent Calendar 2021 12/13 は quawaiの記事です、お楽しみに!

投稿日:20211214
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

kzaukzau
kzaukzau
24
4107

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. ソフトマックス関数の定義
  3. ソフトマックス関数が満たす性質
  4. 増分の定義
  5. 通常の数値微分の例
  6. "よい"ソフトマックス関数専用の数値微分
  7. 前進差分の変形
  8. 中心差分の変形
  9. 余談