【新人エンジニア必見】線形代数の歴史を旅しよう!行列は誰がなぜ作ったの?

こんにちは。ゆうせいです。

みなさんは、数学と聞いてどんなイメージを持ちますか?もしかすると、学生時代の苦い思い出が蘇って、思わずブラウザを閉じようとした方もいるかもしれませんね。ちょっと待ってください!

実は、みなさんが普段エンジニアとして触れているプログラミングの世界、特にAIやゲーム開発の裏側では、線形代数という数学が魔法のように活躍しているのです。

でも、いきなり数式を見せられても困りますよね。そこで今日は、数式を解くのではなく、線形代数がどのような歴史をたどって今の形になったのか、その物語を一緒に紐解いていきましょう。歴史を知れば、無機質な記号たちが、急に人間味あふれる相棒に見えてくるはずですよ。

さあ、時間旅行の始まりです!

線形代数ってそもそもなに?

歴史の話に入る前に、少しだけ言葉の整理をしておきましょう。

線形代数とは、ざっくり言えばまっすぐな関係と数を並べた魔法の箱を扱う学問です。

まっすぐな関係、これを線形といいます。例えば、りんごが1個 100 円なら、2個で 200 円、3個で 300 円になりますよね。グラフにすると原点を通る一直線になります。このようなシンプルで扱いやすい関係性のことを指します。

そして、魔法の箱、これが行列です。みなさんもExcelなどの表計算ソフトを使ったことがあるでしょう?縦と横に数字がずらりと並んでいますよね。あの表そのものが、数学でいう行列の正体なんです。

つまり線形代数とは、たくさんのデータを表(行列)にまとめて、それらが一直線の関係(線形)で変化するときにどうなるかを計算する道具なのです。

エンジニア風に言えば、大量のデータを一括処理するための超強力なライブラリと言えるかもしれませんね。

歴史の始まりは行列ではなかった

面白いことに、線形代数の主役である行列という概念が登場したのは、歴史の中ではかなり後のことなんです。

では、最初はなにから始まったのでしょうか?

答えは連立方程式です。

中学校で習ったつるかめ算を思い出してみてください。鶴と亀が合わせて何匹いて、足の数が合計で何本あるとき、それぞれ何匹か?というあれです。

古代の人々も、土地の測量や税金の計算で、こうした問題を解く必要に迫られていました。紀元前の中国の書物である九章算術には、すでに連立方程式を効率よく解く方法が記されています。このときはまだ、行列という名前も、 x y といった文字もありませんでしたが、数字を四角く並べて計算する工夫はすでに生まれていたのです。

誰が線形代数を作ったのか?

ここからは、現代の線形代数の基礎を築いた重要人物たちを紹介しましょう。彼らがバトンを繋いできたからこそ、今のテクノロジーが存在するのです。

関孝和とライプニッツ

17世紀の終わり頃、日本の関孝和とドイツのライプニッツという二人の天才が、ほぼ同時期に独立してある発見をしました。

彼らは、連立方程式を解くときに、係数(文字の前についている数字)だけを取り出してある計算をすると、解が一つに決まるかどうか判定できることに気づいたのです。これを行列式と呼びます。

行列そのものより先に、行列式という概念が発見されたのは驚きですよね。彼らは、方程式を解くための鍵を見つけたのです。

ガウス

19世紀に入ると、カール・フリードリヒ・ガウスという数学の巨人が現れます。

彼は天体観測のデータを解析するために、膨大な連立方程式を解く必要がありました。そこで彼が整理・体系化したのが、ガウスの消去法というアルゴリズムです。

これは、式を足したり引いたりして変数を一つずつ消していく、エンジニアのみなさんならアルゴリズムの授業で一度は耳にしたことがある手法です。彼のおかげで、手計算では一生かかっても終わらないような計算を、体系的な手順で解けるようになりました。現代のコンピュータも、中でこのガウスの考え方を使って計算しているんですよ。

ケイリーとシルベスター

そして19世紀半ば、イギリスのアーサー・ケイリーとジェームズ・ジョセフ・シルベスターという二人の数学者によって、ついに行列という言葉と概念が確立されます。

彼らは、数字の並びそのものを一つの数のように扱うルールを作りました。

それまでは 2 つの式、 3 つの式を別々に書いていたものを、大きな一つの塊(行列)として A と書くことにしたのです。これにより、 100 個の変数があるような複雑な式も、たった一文字で表現できるようになりました。

プログラミングで言えば、バラバラの変数をクラスや構造体にまとめて、スッキリさせたようなものです。これは革命的なことでした!

線形代数を学ぶメリットとデメリット

歴史を見てきたところで、現代のエンジニアである私たちがこれを学ぶ意味を考えてみましょう。

メリット

最大のメリットは、多次元のデータを直感的に扱えるようになることです。

AI(人工知能)の学習データや、3Dゲームのキャラクターの位置情報などは、膨大な数のパラメータを持っています。これらを一つ一つ x1 x2 ...と書いていたら日が暮れてしまいます。

しかし、線形代数を使えば、それらすべてを一つのベクトルや行列として扱い、一行の式で処理を記述できます。GPUというハードウェアは、まさにこの行列計算を高速に行うために特化した計算機なのです。線形代数を知っていると、AIの論文を読んだり、3Dグラフィックスの挙動を制御したりする力が格段に上がります。

デメリット

一方で、デメリットもはっきりしています。それは、直感的にイメージしづらいことです。

2次元や3次元(平面や空間)までは図に描けますが、4次元以上のデータとなると、私たちの頭では想像すらできません。

100 次元の空間で直交する」と言われても、「え?どういうこと?」となりますよね。計算の手順はわかるけれど、何をしているのか実感が湧かない。これが、多くの人が線形代数で挫折する原因です。

ここを乗り越えるコツは、無理に絵を描こうとせず、計算のルールという割り切りを持つことです。

まとめと次のステップ

いかがでしたか?

線形代数は、昔の天才たちが面倒な計算を楽にするために、数百年かけて作り上げてきた最強のツールだということがわかりましたね。

連立方程式を解きたいという純粋な欲求から始まり、関孝和やガウスたちの発見を経て、ケイリーたちがそれを美しい記号のルールにまとめ上げました。

もし、あなたがこれからAIエンジニアやゲームプログラマーを目指すなら、ぜひ次のステップに進んでみてください。

これからの学習の指針としては、まずはPythonなどのプログラミング言語を使って、実際に計算させてみることをおすすめします。NumPyというライブラリを使えば、行列の掛け算が一瞬で終わることに感動するはずです。

手計算で苦しむ前に、コードを書いて動きを見てみる。そうすれば、きっと線形代数が頼もしい味方になってくれますよ!

それでは、エンジニアとしての旅路が素晴らしいものになりますように。

またお会いしましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。