MATLAB,Python,Scilab,Julia比較 第3章 その65【アフィン変換⑨】

MATLAB,Python,Scilab,Julia比較 第3章 その65【アフィン変換⑨】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その65【アフィン変換⑨】

バックナンバーはこちら。
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

余談

太郎くん
太郎くん

とりあえず、キャンバス拡張も出来たところでアフィン変換に突入かな。

フクさん
フクさん

その前に少し余談を入れておこう。

太郎くん
太郎くん

余談?

フクさん
フクさん

以前やった畳み込み演算と今回のアフィン変換
畳み込みニューラルネットワークと関連してるって話。

太郎くん
太郎くん

畳み込み演算は、まぁ名前的に関係性はありそうだけど、
アフィン変換は関係しているイメージは無いなぁ。

フクさん
フクさん

当然、アフィン変換自体がそのまま関係しているわけじゃないけど、
無関係というわけでもない。
その点を少し知っておこうって程度だ。

畳み込みニューラルネットワークの構造

フクさん
フクさん

まず、畳み込みニューラルネットワークの基本的な構造を示そう。
当然、さまざまネットワークがあるから、今回の説明に於いての前提としてこう解釈する

って意味合いだ。

畳み込みニューラルネットワーク、畳み込み層、畳み込み、プーリング、全結合層、1次元化、OK、NG
太郎くん
太郎くん

まぁ、あんまり詳しくないけど、
これが基本的な構造ってのはわかる。

畳み込み層

フクさん
フクさん

左側の畳み込み層。
厳密には畳み込み層とプーリング層がふくまれるわけだが、
これがやっているのはおおよそ以下。

  • 輪郭検出
  • 次元削減
  • 抽象化

画像で示すとこんな感じだ。

畳み込みとプーリング、輪郭検出、プーリングで次元削減、抽象化
太郎くん
太郎くん

確かに畳み込み演算がベースになってるよね。

ニューロン

フクさん
フクさん

次に全結合層だが、その前に
ニューロンについて確認する。
ニューロンは以下で表現される。

ニューロン、x_1、x_n、b、a_1、a_2、a_n、b、y
太郎くん
太郎くん

これも良く見るね。

フクさん
フクさん

このニューロンの演算って実は、\(x\)ベクトルと重みの\(a\)ベクトルの内積と解釈できる。
数式を出すとこうなる。

\(
y=A\Bigg(
\begin{bmatrix}
a_1 & \dots & a_n & b
\end{bmatrix}
\begin{bmatrix}
x_1 \\
\vdots \\
x_n \\
1
\end{bmatrix}
\Bigg)
\)

太郎くん
太郎くん

確かに、計算としては一緒だ!

フクさん
フクさん

ニューロン一個だとこんな感じだが、
これが複数になると・・・。

太郎くん
太郎くん

(ゴクリ・・・。)

フクさん
フクさん

これについては次回説明!

太郎くん
太郎くん

(地味に話が長くなるんだな・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • 余談として畳み込みニューラルネットワークと畳み込み演算、アフィン変換の関連性を説明。
  • 畳み込み層と畳み込み演算は割とそのまんまでわかりやすい。
  • 全結合層の前にニューロン1個の演算を数式で表現。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました