数学

【線形代数】機械学習やVR/AR/MRで使われる数学〜膨大なデータをスッキリと【初心者向け】

パソコンやスマホの高性能化と、超高速通信『5G』の到来で、

  • 『AI』
  • 『機械学習』
  • 『xR』(VR/AR/MRをまとめてXRと呼びます)
  • 『IoT』
  • 『ドローン』
  • 『自動運転』
  • 『ビッグデータ』
  • 『動画』

といった新しい分野がどんどん増えてくると予想されています。

参考記事

これらに共通するのはざっくり言えば、

とにかくたくさんのデータを瞬時に計算しているという事。

アオキ
どれくらいたくさんのデータかというと・・・
Sponsored link

動く映像に関する用語・・フレームレート

普段からゲームで遊ぶ人なら知っているかもですが、

動画や動く映像に関する用語に、『FPS』という言葉があります。

  • FPS・・Frame Rate Per Second (フレームレート パーセコンド)

動画というのはいわば『パラパラ漫画』のようなもので、

大量の写真をパラパラとめくって動いているように見せています。

Per Second(パーセコンド)は、1秒あたりという意味なので、

『FPS』というのは、

1秒の間に何枚パラパラ漫画が表示されるか、という単位になります。

  • 1秒で1枚なら 1FPS。
  • 1秒で10枚なら 10FPS。
  • 1秒で30枚なら 30FPS。
  • 1秒で60枚なら 60FPS。

ですね。

1秒で1枚パラパラするより、
1秒で10枚パラパラした方がなめらかになります。

  • テレビのフレームレートが30FPS
  • 映画が24FPS
  • 最近のゲームは60FPS

だそうです。

アオキ
例えばテレビを録画して、一時停止した後に一つづつコマ送りしたら、
アオキ
1秒で何枚分動いているかというのがわかるかもしれません。

膨大なデータ量を計算し続ける技術〜線形代数

例えばシューティングゲームの場合、

画面の中にはいろんな要素が含まれています。

  • 自分のキャラクター
  • 敵のキャラクター
  • 自分が発射しているレーザービーム
  • 敵が発射している弾
  • アイテム
  • 障害物

などなど・・・

これらはずっと止まっているわけではなく、つねにバラバラに動いているので、

それぞれに位置情報が必要になります。

例えば『30FPS』だとすると、

極端に言うと1秒間に30回もキャラクターの位置を計算することになります。

敵キャラクター、レーザービーム、敵の弾などももちろん何度も何度も計算されて、

動いているように見せています。

アオキ
電卓じゃとてもじゃないけど計算ムリっすね・・

実はそこには『数学』の理論がこれでもかと使われていて、

その中でもメジャーなのが『線形代数(せんけいだいすう)』という方法になります。

Sponsored link

線形代数でできること〜 空間をまとめてスッキリ書ける

『線形代数(せんけいだいすう)』は、

元々は直線を扱う学問だったそうですが、

後からどんどん膨らんできたそうで、

とてーも広い学問になっちゃったそうです。

ざっくり言うとこういった事ができるようになります。

  • 空間を表現・・2次元も、3次元も
  • 次元の変換・・3次元を2次元にしたり、2次元を3次元にしたり
  • 式を簡単に・・複雑な数式をスッキリとまとめる
  • たくさんの数字をまとめて考える・・n次元
  • 近似の手段・・曲線を直線で近似

座標だったり空間の位置を取得して、

それを1秒間の間に30回計算しなおしたりするために、

できるだけスッキリ書ける方法が使われるようになった、と言う事ですかね。

膨大な量のデータをスッキリ書けると言う事で、

『AI』『機械学習』『ビッグデータ』などにも使われています。

アオキ
実は機械学習本読んだんですが難しくて積ん読してます。また時間つくって再開せねば・・

線形代数のはじめのいっぽ〜行列とベクトルを2次元で

『線形代数』は主に『行列』『ベクトル』でできています。

『行列』は、縦と横に数字や文字が並んだものです。

$\begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix}$

$\begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \\ 7 & 8 \end{pmatrix}$

横が行で、縦が列と呼ばれます。

アオキ
エクセルを触った事があればわかりやすいと思います。

『ベクトル』は、
『物理学』の場合は『方向と向き』になりますが、
もうちょっと意味合いが広くなって、
『複数のデータを持つ値』というような意味になります。

『行列』と『ベクトル』を使う事によって、

2次元(平面)の場合なら、

  • 拡大・縮小させたり
  • 回転させたり
  • ひっくり返したり
  • ぐやっと伸ばしたり

ができるようになります。

とてもわかりやすい記事があったので詳細はこの記事をご覧ください。

線形代数の知識ゼロから始めて行列式「だけ」理解する

アオキ
座標が動いてめっちゃわかりやすい・・こういう記事書きたい・・
Sponsored link

まとめ 線形代数をちょっとずつ覚えて遊んでみよう

『線形代数』は実は大学で習う分野なので、

教科書だけでやるとなかなかとっつきにくいし難しいと思うのですが、

まずは2次元だけに限定して、

  • 拡大・縮小させたり
  • 回転させたり
  • ひっくり返したり
  • ぐやっと伸ばしたり

といったことをプログラミングで遊びながら、

ちょっとずつ体感できるようになっていきたいなと思っています。

created by Rinker
¥2,160 (2019/06/19 11:25:33時点 Amazon調べ-詳細)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


Sponsored link

関連記事

  1. クリエイティブコーディング

    プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して

    前回の記事で、プログラミングを使って数学がわかるという『コー…

  2. 数学

    プログラミングで回転させたいなら『ラジアン』を知っておくといいかもよ【初心者向け】

    プログラミングを使って、デザインをしたりアートを作ったりすることを…

Sponsored link

最近の記事

Sponsored link
  1. P5.js (Processing)

    『ベクトル』の使い方のコツ〜『ベクトル』はただの数値の組み合わせです(4)【P5…
  2. MySQL

    検索システムのデータベースの作り方や考え方を8ステップで書き連ねてみる
  3. 検索システム

    バリアフリーなホテル のページをオープンしました。
  4. P5.js (Processing)

    【P5.js】遊ぶようにプログラミングできるクリエイティブコーディング〜はじめの…
  5. docker初心者向けdocker-composeからやったほうがいいかもよ

    ツール

    【Docker】初心者はdocker-composeから始めた方がいいかもしれな…
PAGE TOP