数学

【線形代数】とは?機械学習、3D表現、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次元(平面)の場合なら、

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

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

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

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

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

2019/6/30 プログラミングでかっこいい映像が作れる『GLSL(シェーディング)』でも、『回転行列』が使われています。

参考記事

Sponsored link

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

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

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

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

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

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

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

created by Rinker
¥2,160 (2019/08/21 06:10:04時点 Amazon調べ-詳細)

コメント

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

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

CAPTCHA


関連記事

  1. 数学

    【微分】とは わかりやすくまとめてみた〜めっちゃすごいわり算【初心者向け】

    学校の勉強で、『なんのために勉強するのかわからないランキングTOP…

  2. 数学

    【GLSL】距離関数を使ってみる・回転・合成・量産『レイマーチング』入門(3)

    プログラミングでかっこいい映像がつくれるということで始めた『レイマーチ…

  3. 数学

    【三角関数】の使い方〜わかりやすさ重視でまとめてみた【動画あり】

    『なんのために勉強しているかわからないランキング』があったら堂々ト…

  4. 数学

    【ベクトル解析 発散(div)】わかりやすくまとめてみた

    『3Dプログラミング』に取り組むうちに目にするようになってきた『ベクト…

  5. 数学

    【テイラー展開】をわかりやすくまとめてみた【おすすめ動画あり】

    というニーズに応える方法として生み出されたのが『テイラー展開』…

  6. 数学

    【極座標 】とは?【直交座標 】との違いや変換方法についてまとめてみた

    『座標』と言ったらほとんどの人が、っと思いがちで、確かに『…

Sponsored link

最近の記事

  1. バックエンド

    【厳選8冊】ホームページを作れるようになるためのおすすめ本【初心者向け】
  2. IoT関連

    【Arduino】ラジコンをつくってみた 〜今ドキのプログラミングの覚え方
  3. 学び・教育

    『ニュータイプの時代』〜リベラルアーツとテクノロジーの融合〜
  4. CG関連

    【P5.js】遊ぶようにプログラミングできるクリエイティブコーディング〜はじめの…
  5. バックエンド

    【Laravel(PHP)】初心者向け アプリのつくり方 をリリースしました【t…
PAGE TOP
//記事ページのみに構造化データを出力 //サムネイルを取得 //ここから構造化データの記述