まったりAI勉強記

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

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

どうも、カタミチです。

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

前回で「理論編」が終わったので、今回は総集編的な感じで、これまで「理論編」で集めてきた武器をひと通り振り返って眺めてみたいと思います。行ってみよー

f:id:feh_asama:20220324085314j:image

 

2章 微分・積分

まず最初は微分・積分からでした。最初に登場した微分ですが、なんだかんだで理論編の最後である6章まで関係してましたね。それだけ重要な武器って事になりますかねー。武器の系統で言うと、王道であるところの「剣」みたいな感じですかねー(武器で例える意味とは)

まず、根幹にあたる微分の定義式はこんな感じでした。

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

すべてはここから始まりましたねー(感慨)。ドラクエで言うと「どうのつるぎ」みたいな感じですかねー。しかし、どうのつるぎと言っても、全ての微分はこの式を起点に組み立てられているので、最強の武器であるとも言えますね。

…で、実際の関数の中でお手軽に微分できるようにした公式が…

\(f(x)=x^r\)の時、\(f'(x)=rx^{x-1}\)

ってやつですね。さらに、微分には線形性があるってことで…

$$(p\cdot f(x)+q\cdot g(x))'=p\cdot f'(x)+q\cdot g'(x)$$

こう。

あと、積の微分、商の微分なんてのもありましたね。

\( (f(x)g(x))' = f'(x)g(x)+f(x)g'(x) \)

\( (\frac{f(x)}{g(x)})'= \frac{f'(x)g(x)-f(x)g'(x)}{(g(x))^2}  \)

この辺りまでの公式は、この後の章でもたびたび新たな公式を導く手助けをしてくれました。

さらに、合成関数の微分の公式。

$$\frac{dy}{dx}=\frac{dy}{du} \cdot \frac{du}{dx} $$

これも登場頻度は高かったですね。きっと以降の章でも多く目にする事になるでしょうかね。

で、逆関数の微分。

$$ \frac{dx}{dy} = \frac{1}{\frac{dy}{dx}} $$

ほぼ使い道がないと思ってたんですが、指数関数の微分のところで活躍してましたね。

ということで、2章で手に入れた武器は、ざっとこんな感じですかねー。頼もしい武器たちですね。

 

3章 ベクトル・行列

3章は、ベクトル・行列でしたね。ベクトルは、武器の系統で言うと「弓」って感じでしょうかね(また例えるんかい)。少し離れた敵にも有効…みたいな感じ。

ベクトルは「向きと大きさを持つ量」ってことで…

ベクトルの和は成分同士の和。ベクトルの差は成分同士の差。ベクトルのスカラー倍は各成分をスカラー倍したもの。

ってのが基本としてありました。

で、ベクトル間の距離は、

$$ \mid \boldsymbol{a}-\boldsymbol{b} \mid = \sqrt{ \sum_{k=1}^{n}{(a_k-b_k)^2}} $$

でしたね。

で、ベクトルの章で最も重要であろうものがベクトル同士の内積ですね。

$$ \boldsymbol{a} \cdot \boldsymbol{b} = \mid \boldsymbol{a} \mid \mid \boldsymbol{b} \mid cos \theta $$

$$\boldsymbol{a} \cdot \boldsymbol{b}=a_1b_1+a_2b_2$$

上の式が内積を長さとベクトル間の角度で表したもので、下の式が内積を成分で表したものですね。

で、そんな内積から導き出せる指標値のひとつが、コサイン類似度でした。

$$cos \theta = \frac{\sum_{k=1}^{n}a_kb_k}{\sqrt{\sum_{k=1}^{n}a_k^2}\sqrt{\sum_{k=1}^{n}b_k^2}}$$

本章最後は行列について。行列を使うと、こんな式↓が…

\( y_1=w_{11}x_1+w_{12}x_2 \)
\( y_2=w_{21}x_1+w_{22}x_2 \)
\( y_3=w_{31}x_1+w_{32}x_2 \)

こんな感じで表せるんでしたね。↓

\( \left( \begin{array}{c} y_1 \\ y_2 \\  y_3 \end{array} \right) = \left( \begin{array}{c} w_{11} & w_{12} \\ w_{21} & w_{22} \\  w_{31} & w_{32} \end{array} \right) \left( \begin{array}{c} x_1 \\ x_2 \end{array} \right)\)

 

4章 多変数関数の微分

4章ではまた微分に戻ってきます。「剣」タイプの上位武器ですかね(しつこく例えていくスタイル)。特殊効果や属性が備わった剣って感じですね。

この章では、ベクトルの章で習得したワザも使うため、あえて2章とは分けたんだと思います。このあたりの本書の構成は非常に初学者に優しいですね。

まずは偏微分が出てきました。これは偏微分の公式みたいなやつがあるわけではなく、特定の変数以外を定数とみなして微分するってやつでしたね。偏微分の表記は…

$$\frac{\partial y}{\partial x} $$

こんなやつでしたね。「\(\partial\)のことをパーシャルって呼ぶ事にした」と以前に言いましたが、色々見てると「ラウンド」って呼んでる人が多いみたいなので、そう呼ぶ事にしました(流されやすい)

で、次に全微分

$$dL=\frac{\partial L}{\partial u}du+\frac{\partial L}{\partial v}dv$$

「理論編」を通して、私が最も理解に苦しんだやつです。大学数学の入り口を垣間見ましたね。

全微分と合成関数という節では、こんな式が出てきました。

$$\frac{\partial L}{\partial x_i}=\sum_{j=1}^N \frac{\partial L}{\partial u_j} \frac{\partial u_j}{\partial x_i} $$

今の時点では使い道がイマイチ分かってないので、このあとの「実践編」で理解を深めたいところです。

で、最後に出てきたのが勾配降下法。いよいよ、基本的な数学の道具から、機械学習で直接使う道具に踏み込んできた感じですね。

$$ \left( \begin{array}{c} u_{k+1} \\ v_{k+1} \end{array} \right) = \left( \begin{array}{c} u_{k} \\ v_{k} \end{array} \right) - \alpha \left( \begin{array}{c} Lu(u_k,v_k) \\ Lv(u_k,v_k) \end{array} \right) $$

導出は大変でしたが、最終的な式はシンプルになったんでしたね。

 

5章 指数関数・対数関数

5章は指数関数と対数関数でしたね。ダイナミックにグラフが伸びる指数関数や、逆に伸びを強引にねじ伏せる対数変換を要するこのカテゴリは、さながら「斧」タイプの武器ですね(はぁ)

まずはそれぞれの定義、ルールが書かれた後、最初に出てきた公式っぽいのはこれ。対数関数の底の変換公式ですね。

$$ \log_a{X}= \frac{\log_b{X}}{\log_b{a}} $$

対数では底は簡単に置き換えられるので都合に合わせて好きなのを使っとけばいいって言う学びはかなり大きかったですねー。

次に出てきたのが対数関数の微分。

\((\log_e{x})'=\frac{1}{x}\)

導出にはかなりの道のりを辿る必要がありましたが、結果だけ見ると非常にシンプルですね。しかし、過程も理解したことが理解を深めてる…と信じたいです。ちなみにここでネイピア数(\(e\))が登場したんでしたね。

続いて指数関数の微分。

\((a^x)'=(log{a})a^x\)

\(a=e\)の場合、元の関数と微分結果が同じになるっていうのは衝撃でした。微分しても微分してもそこに留まり続ける、不屈の魂みたいなものを感じますね。

で、次は公式ではなく機械学習でよく使われる関数が2つ紹介されていました。

まずひとつ目はシグモイド関数

$$y=\frac{1}{1+exp(-x)}$$

シグモイドって名前の由来は「グラフの形がシグマって文字っぽい」ってことらしいんですが、よく考えたら私が知ってるシグマ(\(\sum ,\sigma)\)とは似ても似つかないんですよ。どうやら、昔のシグマはシグモイド関数のグラフっぽい形をしてたらしいです(もはや何が何だか)

微分すると…

\(y'=y(1-y)\)

自分自身のみで表すことができるんでしたね。

次にsoftmax関数。こんなやつでしたね。

$$ \left\{ \begin{array}{c} y_1=\frac{exp(x_1)}{g(x_1,x_2,x_3)} \\ y_2=\frac{exp(x_2)}{g(x_1,x_2,x_3)} \\ y_3=\frac{exp(x_3)}{g(x_1,x_2,x_3)} \end{array} \right. $$

$$  g(x_1,x_2,x_3)=exp(x_1)+exp(x_2)+exp(x_3) $$

シグモイド関数の親分みたいな感じでした。で、softmax関数の偏微分は…

$$ \frac{\partial y_j}{\partial x_i}= \left\{ \begin{array}{c}  y_i(1-y_i) & (i=j) \\  -y_iy_j & (i \neq j) \end{array} \right. $$

こんな感じになるんでしたねー。

 

6章 確率・統計

さて、最後は確率・統計でしたね。魔法のように未来や本質を予見するその様は、もう「杖」タイプの武器としか言いようがありません(最後まで武器に例えていく)。いきなり出てきたのが正規分布関数で、こんな式でしたね。

$$ f(x,\mu,\sigma)=\frac{1}{\sqrt{2 \pi} \sigma}exp(-\frac{(x- \mu)^2}{2\sigma^2}) $$

ゴチャついてますが、確率・統計の分野ではかなり基礎になるところですね。まぁ、式自体を気合い入れて暗記する必要は無いですかねー。どちらかと言うと、正規分布関数というものの意味を理解しておいた方がよさそうです。

で、最後に出てきたのが最尤推定。これについは、新しい公式などは無く、どうやって求めるか?のプロセスも考え方が大事…って感じでしたね。

 

ということで

ざっと振り返ってみましたが、一番悩んだのは、ベクトルを「弓」に例えるか「槍」に例えるか…って点です(どうでもええわ)

…しかし、改めて、本書が理解しやすい順番に並べてくれてたんだなー、と実感しました。この「ひとり読書会」をはじめてから、かれこれ約2週間以上経ちますが、少しはレベルアップできたかなーという気もしています。

さて、次からは「実践編」ですね。これまでに手に入れた武器を引っ提げて…いざ、出陣じゃ〜

ではまた。