【挑戦してよかった事】「叩けよ、さらば開かん(少なくとも何も試みない人間は何処へも辿りつかない)」
2017年末、突如として数学再勉強を思い立ちました。今から思えばGoogleが後に一世を風靡した深層学習アルゴリズムの画期transformer論文が発表された年。もちろん当時からそんな知識を備えていた筈もなく、ただネットワーク上の可視範囲全体がGoogleの発表した人工知能開発フレームワークTensorflow関連記事で被覆され尽くし、かつそうした話に全くついていけない事に焦りが生じたのです。
なおTensorflowのチュートリアルは単層パーセプトロンと同内容のロジスティック回帰から出発します。どうやらこの界隈では1958年に突如彗星の如く現れたかかる「データを学習用と検証用に分ける」データ処理方法こそが機械学習概念誕生の原風景である事など誰でも知ってる常識に過ぎない様なのです。
大学を社会学科心理学専攻で卒業していた関係から多少は統計学も齧ってました。またプログラミングの知識が多少なりともあったので、当時流行していたR言語の統計ライブラリーを攻略して最小二乗法に到達。逃げ道を塞ぐべくエンジニア向けサイトQiitaに投稿する様になったのもこの頃から。
その一方で、とりあえず定期的に読み返しては毎回途中で挫折してきたノーバート・ウィナー「サイバネティクス(Cybernetics、1948年初版、1961年増補版)」冒頭に登場するオイラーの公式$${e^{θi}=\cos(θ)+\sin(θ)i}$$を理解したくて吉田武「オイラーの贈物」を手に取ったのです。
この様に一見では理解出来ない数理やアルゴリズムも、片っ端からアニメーションで動かすうちに身体に自然に馴染んでいくものです。
ただしこの方法論だと証明能力辺りが一切身につかないのでルベール測度論あたりで容赦なく躓くのが確定となる。「1個の無限は無限個の1で被覆される。ならば1は無限個の0($${\frac{1}{∞}}$$)で被覆し得るのか?」みたいな壁が次ぐ次と現れ、いわゆる「確率の古典的定義」の破綻が始まってしまうので。
その過程で3Dアニメーション処理に限界のあるR言語から、matplotlibなる素晴らしい描画パッケージが存在するpythonに移行しました。ちょっとばかり球体が扁平で惑星メスクリンみたいですが、慣れればどうという事もない?
なおQiitaで投稿する様になって恐ろしいと感じたのが、中学生にしてプログラミング歴5年以上なんて化物がザラにいる現実。詳細は不明ですが、2008年にリリースされたScrach(2008年発表)辺りから入ったのでしょうか?男子も女子も関係なく親がエンジニアで、今では使わなくなった旧式Raspberry Pi(2012年発売)が床に転がっている様な環境で育ち、小学生のうちにそれに関心を示して(親に手伝ってもらいながら)Minecraftのマルチプレイサーバを立てるのがある種の通過儀礼になっていたりもする模様。
実はQiitaでRaspberry pieを使ったサーバ立てが流行したのは数年前。こちらの世界ですらオンプレでなくクラウド化が進行中という情報も。
ふと清少納言や紫式部が幼少時から漢文教育を受けていた事を思い出しました。やはり性別より生まれ育ちの方が重要という話?
そこからTAMIYA工作キット制御などに進み、遂にはドローン制御に欠かせない四元数(クォータリオン)に到達した高校生まで見掛けました。そう、簡単に説明すると以下の様な3次元アフィン変換では物足りなくなって…
$$
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}
$$
人類が宇宙に進出して、ドローンを飛ばす様になって以降広まった以下の式に進む訳ですね。こんな話もそちら界隈では常識に過ぎない様だ?
$$
ベクトルv=iv_x+jv_y+kv_zを単位ベクトルa=ia_x+ja_y+ka_zを軸に角度θ回転させ、ベクトルv'=iv'_x+jv'_y+kv'_zに遷移させるものとする。この時、
$$
$$
v'=qv\bar{q}
$$
$$
q=\cos( \frac{θ}{2})+a\sin(\frac{θ}{2})
$$
$$
\bar{q}=\cos( \frac{θ}{2})-a\sin(\frac{θ}{2})
$$
まさしく「肉体に思考させよ。肉体にとっては行動が言葉。それだけが新たな知性と倫理観を紡ぎ出す」の典型例といえそうです。
ただこのアプローチ、回転に特化し過ぎてるせいで物理学に登場するナブラ演算子の話に連続して進めない。やはり四元数(クォータリオン)そのものは人類にとっていまだ難解過ぎる状態のまま置かれている?
その一方でトレンドにだけは敏感な大人から「pythonが学びたい」「サイバーセキュリティに興味がある」なんて「相談」を受ける機会が妙に増えました。「とりあえずパソコンを買ったら?」とアドバイスしても「今は何でもスマホで出来る様になった時代。そういう考え方自体、もう古い古い」と一蹴されてしまいます。もちろんそういうタイプはただ「今では何でも出来る様になった」スマホでYoutube解説動画などを梯子しながら「成功した自分」のイメージを昂らせるだけで、決して次の段階に進む事はありません。ある種の末期麻薬中毒患者の様な様相。アニメーションでいうと中割りを欠いた状態で「何処かに向けて進んでる感じ」が当人の主観として存在しているだけなのです。
実際には「pythonをスマホで動かす方法」はなきにしも非ず。とはいえテキスト入力が面倒だし、そもそも「パソコン使用自体が面倒臭い」レベルの人間が気軽に始められる代物ではない。
現代社会が産んだデジタル・デバイドの両極端。「叩けよ、さらば開かん」とは言いますが、叩いて本当にどうにかなるかは別として、少なくとも何も試みない人間が何処かに辿り着く事だけは決してないといえましょう。
ふと自分の原点が確認したくなって起こした一文。そんな感じで以下続報…