【試論「人工知能概念はいつから存在したといえそうか?」10パス目】「ディープランニングはアフィン変換と見つけたり」?
今回の出発点はネットで見つけた以下の記事となります。
とりあえず簡便化の為にディープラーニング・アルゴリズムで処理される各データのライフサイクルを経路(route)$${R=\left[r_i\right]_{i=0}^n}$$の線型リスト形式で表現する事にしましょう。
入力層(Input Layer)=第0層
オーディオ機器などにおけるADC(Analog to Digital Converter=アナログデジタル変換回路)」に該当する処理で、システム外で遂行される「ニューラル・ネットワーク座標系へのデータ・プロッティング」の結果。
出力層(Output Layer)=第n層
オーディオ機器などにおけるDAC(Digital to Analog Converter=デジタルアナログ変換回路)」に該当する処理。「ニューラル・ネットワーク座標上のデータ集合」が統計学における最尤推定などの検定手段に引き渡される。
ただしディープラーニング・アルゴリズムは、無作為に統計学的検定手段によって有意水準の有無を確かめるのではなく「検定の結果、あらかじめ有意水準が出る様に調整されたデータ集合」を引き渡すのである。
そして上掲のQiita投稿は、その中間で遂行される「ニューラル・ネットワーク座標系上のデータ集合をあらかじめ検定に合格する様に調整する処理」について、それぞれのデータが「ライフサイクル」上たどる経路$${R=\left[r_i\right]_{i=0}^n}$$に注目すれば、アフィン変換(すなわち平面上の移動、拡大縮小、回転)によってグラフィカルな表現が可能と指摘している訳です。
アフィン変換は二次元しか扱えないのでは?
アフィン変換(Affine transformation)は「一度に二次元しか扱えいない」方法論ではありますが、ならば何度も分けてその結果を合算すればいいだけの話で、この方法によって3次元以上の座標系にも対応する事が出来ます。
二次元アフィン変換
$$
\begin{pmatrix}
X_1 \\
Y_1 \\
1\\
\end{pmatrix}=
\begin{pmatrix}
a & b & e\\
c & d & f \\
0 & 0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
1\\
\end{pmatrix}
$$
$$
並行移動(T_x,T_y)
\begin{pmatrix}
X_1\\
Y_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
1 & 0 & T_x \\
0 & 1 & T_y \\
0 & 0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
1\\
\end{pmatrix}
$$
$$
拡大縮小(S_x,S_y)
\begin{pmatrix}
X_1\\
Y_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
S_x & 0 & 0\\
0 & S_y & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
1\\
\end{pmatrix}
$$
$$
回転(θ)
\begin{pmatrix}
X_1\\
Y_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
cos(θ) & -sin(θ) & 0 \\
sin(θ) & cos(θ) & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
1\\
\end{pmatrix}
$$
$$
剪断(θ)
\begin{pmatrix}
X_1\\
Y_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
1 & 0 & 0 \\
tan(θ) & 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
1\\
\end{pmatrix}
$$
三次元アフィン変換
$$
\begin{pmatrix}
X_1\\
Y_1\\
Z_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
a & b & c & j\\
d & e & f & k\\
g & h & i & l \\
0 & 0 &0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
Z_0\\
1\\
\end{pmatrix}
$$
$$
並行移動(T_x,T_y,T_z)
\begin{pmatrix}
X_1\\
Y_1\\
Z_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
1 & 0 & 0 & T_x\\
0 & 1 & 0 & T_y\\
0 & 0 & 1 & T_z \\
0 & 0 &0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
Z_0\\
1\\
\end{pmatrix}
$$
$$
拡大縮小(S_x,S_y,S_z)
\begin{pmatrix}
X_1\\
Y_1\\
Z_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
S_x & 0 & 0 & 0\\
0 & S_y & 0 & 0\\
0 & 0 & S_z & 0 \\
0 & 0 &0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
Z_0\\
1\\
\end{pmatrix}
$$
$$
x軸まわりの回転(θ)
\begin{pmatrix}
X_1\\
Y_1\\
Z_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
1 & 0 & 0 & 0\\
0 & cos(θ) & -sin(θ) & 0\\
0 & sin(θ) & cos(θ) & 0 \\
0 & 0 &0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
Z_0\\
1\\
\end{pmatrix}
$$
$$
y軸まわりの回転(θ)
\begin{pmatrix}
X_1\\
Y_1\\
Z_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
cos(θ) & 0 & sin(θ) & 0\\
0 & 1 & 0 & 0\\
-sin(θ) & 0& cos(θ) & 0 \\
0 & 0 &0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
Z_0\\
1\\
\end{pmatrix}
$$
$$
Z軸まわりの回転(θ)
\begin{pmatrix}
X_1\\
Y_1\\
Z_1\\
1\\
\end{pmatrix}=
\begin{pmatrix}
cos(θ) & -sin(θ) & 0 & 0\\
sin(θ) & cos(θ) & 0 & 0 \\
0 & 0 & 1 & 0\\
0 & 0 &0 & 1 \\
\end{pmatrix}
\begin{pmatrix}
X_0\\
Y_0\\
Z_0\\
1\\
\end{pmatrix}
$$
考え方がこんな風に整備されたお陰で特定分野の数学の需要が急増?
ここで紹介されてる「プログラマー向け学習カリキュラム例」においては、この程度の話「基礎の基礎」でサラッと流されてる恐るべき現実…
「N次元アフィン変換の実例」としての主成分分析(PCA)
「ニューラル・ネットワーク座標系上のn次元データ集合」をグルグル回して好きな方角から眺められるという事は「直交する視座のセットが発見出来れば正面図や上面図や側面図が起こせる」すなわち解析学でいう微分が可能になるという事です。
まさにそうやって「とりあえず計算に不要な次元」をバシバシ削除したりデータ集合の特徴量を捉えやすい視線の角度を探すのが主成分分析(Principal Component Analysis)という次第。
このシリーズでは「カンブリア爆発期(5億4200万年前から5億3000万年前)に授かった視覚と視覚情報を処理する脊髄の末裔で考える事しか出来ない人類」が、その制約下において(行列演算に立脚する)線形代数や(微積分演算に立脚する)解析学を発達させてきた事について悲観的に語るディスクールを多用しますが、それはそれでこんな高みに到達し、その最新の精髄が機械学習理論という訳です。まさしく多様体的価値感の極みといえましょう。
そんな感じで以下続報…