まったりAI勉強記

AI(人工知能)について、特にゆかりがあるわけでもない社会人が、まったりとAIについて勉強していく勉強日記です。

【ひとり読書会】ディープラーニングの数学(第12回)

どうも、カタミチです。

さて、今日も「最短コースでわかる ディープラーニングの数学」のひとり読書会、やっていきたいと思います。

今日は5章「指数関数・対数関数」の2回目ですね。それぞれの関数に対する「微分」について語られています。理解するための段取りへの配慮から、対数関数の微分が先にあり、その後、指数関数の微分…となっています。

ということで…いってみよ!

 

5-3. 対数関数の微分

f:id:feh_asama:20220319094958j:image

まずは、対数関数の微分です。

さっそく、\( f(x)=\log_a{x} \)を微分の公式にぶち込んでみると、こうなりますね。

$$ f'(x) = \lim_{h \to 0} \frac{\log_a{(x+h)}-\log_a{x}}{h} $$

こいつを、対数の公式を駆使して変形すると…

$$ f'(x)=\frac{1}{x} \lim_{h' \to 0} \log_a{((1+h')^\frac{1}{h'})} $$

こうなります。式を変形している途中の式で少しつまづきそうになったものの、無事にこの式まで理解がたどり着きました。

ちなみに\( h \)が\( h' \)に変わっちゃってますが、別に\(h\)を微分したわけではなく、\(h\)の友だちとして\(h'\)というものを新しく作った感じです(ふむ)。ふたりの関係はというと…「\( h'=\frac{h}{x} \)」。式的に、\( h \to 0 \)に近づくと、自ずと\( h' \to 0 \)に近づいていくので、\( \lim_{h \to 0} \)を\( \lim_{h' \to 0} \)に変えても問題ないってことなんでしょうね。

ここで、式の中にある\( \lim_{h' \to 0} (1+h')^\frac{1}{h'} \)に着目しましょう。実はこの式、あるところに数値が収束します。どんな数値かと言うと…

2.71828…

みたいな数値です。円周率と同じような感じで延々と続く無理数なんですが、この数値のことをネイピア数と言い、\( e \)という数学定数で表します。

なるほどー。ネイピア数って、対数出身の定数だったんですねー。「よく出しゃばってくるけど、お前、どこ中?」みたいな目で見てたんですが、対数中学出身だったんですねー(中学とは)

ちなみにこのネイピア数。「オイラー数」って言い方もあるみたいです。名前の由来になった「ジョン・ネイピア」が見つけたのはあくまでもこの数の近似値だったらしい…って話と、\(e\)って言う定数を始めて割り当てたのが「レオンハルト・オイラー」だった…って話があって、このあたりが「オイラー数」派の主張ですかねー。まぁ、オイラーは他にも色々見つけてるし、ネイピア数でいいやん、って気がしますけどね。「対数」自体を見つけたのはネイピアだったみたいですし。

ちなみにこのネイピア数を、近似値ではなくきっちり計算したのは、「ヤコブ・ベルヌーイ」だったようです(別キャラ出てくるんかい!)。だったら「ベルヌーイ数」が妥当なのでは?と思ったんですが、「ベルヌーイ数」として定義されてる別の数があるんですよね。まったく、これだから天才は…。ともあれ、また名前の「ゆらぎ」がある用語が出てきましたね。数学者というのは…(以下略)

まぁ、歴史が好きな私のような人間からすると、このへんの数学者たちのドラマにも興味があるんで、ここで掘り下げすぎると危険な気がします(汗)

…さて、余談が過ぎましたね。しかし、さらに余談です(おい)

以前、ネイピア数について調べた時の説明で印象に残ってるものに、こんなやつがあります。

「年利100%(複利)の金融商品があったとして、受け取った利息を即再投資する場合、利息を受け取れるタイミングが年に1回?いやいや1ヶ月に1回?いやいや1日に1回?いやいや1時間に1回?いやいや1秒に1回?いやいや…と、突き詰めていって『無限』に刻んだ場合、1年後に手元に残るのは、元本の何倍か?」

という問題。「年利100%の金融商品とか、今の世の中にねぇよ!」という魂の叫びは置いといて、なんでこんな問題を突然持ってきたかと言うと、この答えが…

2.71828…倍(=ネイピア数)

になるからです。確かに、計算式が同じになるんですよね。めっちゃおもしろい。あとは、本当に手元の資産が1年で2.7倍になる金融商品が実在すればカンペキなんですけどね!(間違いなく詐欺)

…さて、ネイピア数についてアツく語り過ぎたので本題に戻りましょう(ようやくか)

\( \lim_{h' \to 0} (1+h')^\frac{1}{h'} \)がネイピア数\(e\)に収束するって事は、\( \lim_{h' \to 0} \log_a{((1+h')^\frac{1}{h'})} \)の底である\(a\)を\(e\)にする事で…

\( \lim_{h' \to 0} \log_e{((1+h')^\frac{1}{h'})}=\lim_{h' \to 0} \log_e{e}\)
\(=\lim_{h' \to 0} 1=1\)

つまり、\(f'(x)\)は(もはや余談のせいでだいぶ上にスクロールしないと見れなくなってしまったけど)\(f'(x)=\frac{1}{x}\)って事になりますね!

え?マジ?そんなはずは無い!(混乱)

 

だってだって、累乗の微分をやった時に\(\log  \)とか出てこなかったやん!つまり、積分しても対数なんて出てくるはずはないのに…。

…よし、\(f(x)=\frac{1}{x}\)を累乗の積分の公式で積分してやる!じっちゃんの名にかけて!(じっちゃんとは)

さて、まずは分数の形から累乗の形に変形して、それから積分の公式に当てはめて…

\(\int (\frac{1}{x})dx =  \int (x^{-1})dx=\frac{1}{0}x^0+C\)…

うわああああ!(絶叫)

ゼロ除算が出てきてしもたやん!

なるへそ。このやり方では積分できんわ、これ。つまり、\(\frac{1}{x}\)を積分すると対数になるって事なんでしょうねー。今日もまたひとつ賢くなりました(ふむ)

ちなみに、\(e\)を底とする対数のことを自然対数と言います。上で出てきたように、自然対数はキレイに微分できるので、使い勝手は非常に良さそうですね。あまりに使い勝手が良過ぎて、底を省略する表記も広く許されてるほどです。あと、自然対数は\(log\)じゃなくて\(ln\)って表記することもありますよね、はい。なんで\(ln\)なのかを紐解くためには、そもそも\(log\)の語源を…とかやってるとまた余談が長くなり過ぎて、もはや何を勉強しているのかのベクトルがブレまくって、コサイン類似度が最小化されそうなのでやめときます(謎のたとえ)

 

5-4. 指数関数の微分

f:id:feh_asama:20220319095005j:image

さて、ステージ5-3に手こずり過ぎましたが、続いては「指数関数の微分」のステージです。

とりあえず、底が\(e\)の指数関数から行ってみましょう。余談を書きすぎて、もはやこの\(e\)とは旧知の仲だったような気がしてきました。

\(y=e^x\)

…ん?「底が\(e\)の指数関数?」

どうやら、指数関数の場合も\(x\)乗する対象のことを「底」って言うみたいですね。ふむふむ。また一つ賢くなりました。

さて、どうやって微分するんだろ?と思ってたら、まずいきなり両辺の対数を取るみたいです。えい!

\(\log{y}=x\)

両辺を入れ替えて\(y\)で微分すると…

\( \frac{dx}{dy} = (\log{y})'=\frac{1}{y} \)

早速、対数の微分の公式が使えましたね。で、なんで\(x\)を\(y\)で微分したものを出したかというと…

\( \frac{dy}{dx}=\frac{1}{\frac{dx}{dy}} \)

というように、逆関数の微分の公式が使えるから!

…なんてこった。「逆関数の微分の公式なんて使いどころなさそうじゃん」とか言ってた数日前の自分を殴りたい。

\( \frac{dy}{dx}=\frac{1}{\frac{dx}{dy}}=\frac{1}{\frac{1}{y}}=y=e^x \)

おお、出た!しかも結果がヤバい!(興奮)

\( e^x \)を微分すると\(e^x\)になる!これはもう、数学以前に哲学ですね。まぁ、数学の起源はもともと哲学にあると言っても過言ではなく、ピタゴラス教団の教祖であるピタゴラスが…

あかん、また脇道に行きそうになっとる(自制)

しかし、微分しても微分しても自分が出てくるっていうのは、マトリョーシカと言うかフラクタル図形と言うか…なんだかそんな雰囲気がありますね(伝われ)

次に、これを拡張して底を一般的な\(a\)にした場合の微分の式も出てきました。最終形はこんな感じ。

\(\frac{dy}{dx}=(log{a})a^x\)

\(e\)が底の時には無かった\(\log{a}\)ってのが付いているので、元の式が定数倍される感じですかね。全く同じにはならないようですが、これも非常に理解はしやすいですねー。

ちなみに、最終形を導くためのワザとして「対数微分法」ってやつが使われていました。なんだか必殺技の名前みたいでカッコイイですね!(そこかよ)

やってることも実際に結構カッコよくて、最初からいきなり両辺の自然対数を取り、そこから微分を始めて最終的には元の関数の微分になってる…という流れで、なんだか寿司職人みたいでした(伝わらない)。次にこのワザが出てきた時は「大将、今日もキレがいいねー」と涼し気な顔で受け止められるようにはなっておきたいと思います。

で、最後にひとつ。今後は\(e^x\)を\( exp(x) \)と表現することが多くなるよー、とのことでした。「\(x\)に複雑な式が入ることが多いから」という理由みたいですね。確かに、\(e\)の肩に乗ってる狭っ苦しい場所にスシ詰めにされると見づらいですからね…(だから寿司から離れなさい)

ちなみに、\(exp\)は何の略かというと…ああ、あれですね。ロールプレイングゲームで経験値を意味するexperie…(ちゃうわ!)

…「exponential」の略ですね。日本語の意味は「指数の」というそのまんまのやつもありますが、「急激な」という意味もあります。「an exponential increase」だと「急激な増加」って意味ですね。…うん、英語の勉強にもなってひとつLvが上がりました(テテテテッテッテッテー)

 

ということで

今日は、大して勉強は進んでいないのにやたらと長い記事になってしまいました(反省)。まぁ、おかげでしっかり理解が進んだかな〜、という感覚もあるので、次の節もがんばって進めたいと思います。

ではまた。