見出し画像

線型代数、ベクトル、行列、その理解の意義について。~ベクトル編~

さて、さっそく機械学習とかのお勉強を始めるワケです。ここで、JDLAのE資格要件に関して、私なりの理解では2つの側面があって、1つは「背景理解に必要な理論を理解すること」、もう1つは「これをプログラムとして表現し実装していくこと」なのかな、と。そんで、今回は「背景理解に必要な理論を理解すること」をやってるわけです。んで、「背景理解に必要な理論」というのは、大きく分けると「線型代数学」「統計学」「情報理論」になってくるわけですな。今日は、これらのうち、線型代数学にまつわる話。

そもそも機械学習(および物理学を含む各種実践)においては、線型代数、もっと言うと、行列とベクトルの演算が中心的な命題になるのか、を最初に少しだけ。

んで、タイトルにもある「ベクトル」について。そもそも「ベクトルとは何なのさ」ということについてですが、平たく言うと「任意の要素数の数が順番に並んでいるもの」です。そんなものがなぜ重要なのか。ベクトルは「現実世界のとある対象の状態を表現するのにとても都合が良い」のです。例えば高校で扱うような幾何ベクトルでは、ある点の座標を(x, y, z)みたいに表現していたワケですが、これはある点の位置(という状態)を、慣例的に第1成分をx座標、第2成分をy座標、第3成分をz座標にもつベクトル量として表現していたわけです。そんで、ベクトルの各成分が表現するものは別に点の座標だけじゃなくてもいいし、要素の数も3である必要は無い。例えば、Yukkyさんの身長、体重、体脂肪率、そして年齢というのはそれぞれスカラー量ですが、これを({身長}, {体重}, {体脂肪率}, {年齢})みたいにまとめて表現したら、これは要素数4(これを4次元の、とか言うこともある)のベクトルになるわけです。状態として考えたい要素の数が20個だったら、要素をまとめて20次元のベクトルとして考えればよいのです。

※各要素に入る「数」はスカラー量であれば良いので、複素数なんかも入ります。ただし、複素数になると少し演算を考えるときに複雑になるのですが、機械学習で扱いたい実世界の量は基本的に実数で表現できるので、今は基本実数を考えておけば良いです。あと、複素数の実部、虚部をセットにして2次元実ベクトルとして表現できますが、「複素数そのもの」はベクトルではありません。高校数学でテクニックとして複素数の問題をベクトル的に扱う方法がありますが、あくまで複素数は1つの数であり、スカラー量です。

※厳密にはベクトル空間はその要素の二項演算の持つ性質によって定義されます。その結果、意外なものがベクトル空間を為したりします。実数値関数全体の集合とか。


この記事が気に入ったらサポートをしてみませんか?