バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/
はじめに
アフィン変換の続き。
だが、ちょっと余談にそれる。
畳み込みニューラルネットワークとアフィン変換の関係性について。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
余談
前回はいきなり余談になって、
ニューロンの数式として見せられたな・・・。
今回は、このニューロンを複数にした場合だ。
以下の図で表現できる。
尚、入力側の\(x\)の要素数、出力側の\(y\)の要素数は異なっていてOK。
まぁ、これも良く見かけるね。
そしてこれを数式で表現する。
え゛
\(
\begin{bmatrix}
y_1 \\
\vdots \\
y_m \\
1
\end{bmatrix}=
A\Bigg(
\begin{bmatrix}
a_{11} & \dots & a_{1n} & b_1 \\
\vdots & \ddots & \vdots & \vdots \\
a_{m1} & \dots & a_{mn} & b_m \\
0 & \dots & 0 & 1
\end{bmatrix}
\begin{bmatrix}
x_1 \\
\vdots \\
x_n \\
1
\end{bmatrix}
\Bigg)
\)
なんかやべぇことになってるが、
まぁ、数式で表現できるってことなのか・・・。
アフィン変換との関係性
ここでアフィン変換の同次座標系の式を持ってくる。
\(
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}=
\begin{bmatrix}
a & b & T_x\\
c & d & T_y\\
0 & 0 & 1
\end{bmatrix}
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}
\)
ん?
次元数は全然違うけど、雰囲気的に似てるな??
そう。
これが全結合層とアフィン変換の関係性だ。
つまり、全結合層はアフィン変換をしている??
残念ながらそういうわけでは無い。
条件によってはアフィン変換のような座標変換として学習する層があってもおかしくはないが、
機能として別モノと思っておいた方が良いだろう。
結局同じなのか別物なのかがわからん。
行列による一括変換という意味では同じだな。
それに、全結合層は別名でアフィン層と言ったりする。
別名があるのか?!
このアフィン層の由来は恐らくは、アフィン変換の同次座標系との類似から来ていると思われる。
それで、前回と今回で畳み込みニューラルネットワークとの兼ね合いを説明していたのか。
そうそう。
あくまで余談であり、知らなくても問題の無い知識ではあるが、せっかくなので説明しておいた。
まとめ
まとめだよ。
- ニューロンを複数並べたときの数式を書きだした。
- それとアフィン変換の同次座標系の数式を比較。
- 全結合層は別名でアフィン層。
バックナンバーはこちら。
コメント