【機械学習の正体】「固有ベクトル」がわかればデータの本質が見えてくる!初心者向け解説

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

線形代数、微分、偏微分、合成関数と続いてきたこの数学シリーズも、いよいよ「ラスボス」の登場です。

その名は「固有(こゆう)ベクトル」。

この言葉を聞いた瞬間、大学時代の講義で眠くなった記憶が蘇る方もいるかもしれません。「固有値」とか「対角化」とか、漢字ばかりで何のことやら……となりがちですよね。

でも、もしあなたが「機械学習でデータを分析したい」「画像認識をやってみたい」と思っているなら、この固有ベクトルこそが、最強の味方になります。

なぜなら、固有ベクトルとは、データの中に隠れている「本質的な特徴」や「一番おいしい部分」を抜き出すための道具だからです。

今回は、難解な数式計算は脇に置いて、固有ベクトルが機械学習でどう役立っているのか、その「意味」に絞って解説していきます。これを読めば、難しそうな名前が少しだけ愛おしく感じるはずですよ。

固有ベクトルとは「ブレない芯」のこと

まず、数学的な定義を少しだけ噛み砕いてみましょう。

あるデータ(ベクトル)に行列(変換)を掛け合わせると、普通、そのデータはあっちこっちに向きを変えてしまいます。回転したり、ぐにゃっと曲がったりするイメージです。

しかし、不思議なことに、変換を加えても「向きが変わらない」特別なベクトルが存在します。長さは伸び縮みするけれど、向きだけは頑として変えない。

この「ブレないベクトル」のことを、固有ベクトルと呼びます。

これだけだと、何がすごいのか分かりませんよね。ここで、ラグビーボールを思い浮かべてみてください。

ラグビーボールを空中に放り投げて回転させたとします。ボールの表面にある点は、回転に合わせて複雑に動き回りますよね。

でも、その回転の「中心軸(串を刺した部分)」にある点だけは、その場から動きません(あるいは軸の上を移動するだけです)。

この「回転軸」こそが固有ベクトルです。

つまり、固有ベクトルを見つけるということは、その物体(データ)が「どんな軸を中心にして動いているか」、つまり「そのデータの中心的な構造」を見抜くことと同じなのです。

なぜ機械学習に必須なのか?

では、この「ブレない芯」を見つけることが、なぜAIにとって重要なのでしょうか。

大きく分けて2つの理由があります。

1. データを「要約」して扱いやすくする(次元削減)

機械学習では、扱うデータの項目(次元)が多すぎると、計算が大変になるだけでなく、精度が落ちてしまうことがあります。「次元の呪い」と呼ばれる現象です。

例えば、健康診断のデータで「身長・体重・腹囲・座高・血圧……」と100項目あったとします。これをそのまま分析するのは大変です。

ここで固有ベクトルの出番です。

データの散らばり具合(分散)を計算し、その中で「データが一番大きく散らばっている方向(=情報量が一番多い方向)」を探します。実は、この方向こそが「固有ベクトル」なのです。

「身長」と「体重」はバラバラに見えますが、固有ベクトルを計算すると、「体格の大きさ」という新しいひとつの軸(総合的な特徴)が見つかるかもしれません。

100個の項目を、情報の詰まった数個の「固有ベクトル(主成分)」に置き換えてしまう。

これを専門用語で「主成分分析(PCA)」と呼びます。

固有ベクトルを使えば、膨大なデータの「ノイズ(どうでもいい情報)」を捨てて、「エッセンス(重要な情報)」だけを抽出できるのです。

2. 「何が重要か」をランキング付けできる(固有値)

固有ベクトルとセットで必ず出てくるのが「固有値(こゆうた)」です。

  • 固有ベクトル:データの「軸(方向)」
  • 固有値:その軸の「重要度(長さ)」

と考えてください。

先ほどの健康診断の例で言うと、たくさんの軸が見つかった中で、どの軸がデータを一番よく説明しているのかを判断する必要があります。

固有値が大きい順に固有ベクトルを選べば、「これがデータの80%を説明するメインの特徴です」「これは残り1%の細かい誤差です」といった判断ができます。

Googleの検索エンジンも、かつては「PageRank(ページランク)」というアルゴリズムを使っていました。これは、「ウェブ全体のリンク構造を表す巨大な行列の、最大の固有値を持つ固有ベクトル」を計算し、各ページの重要度をランキング付けしていたのです。

つまり、固有ベクトルを知ることは、データの「優先順位」を知ることなのです。

固有ベクトルを学ぶメリットとデメリット

ここで、改めて学ぶメリットなどを整理します。

メリット

  • 「主成分分析(PCA)」が理解できる機械学習のデータ前処理で頻出するPCA。これが「固有ベクトルを求めているだけ」だと分かれば、ブラックボックスではなくなります。
  • 画像処理に強くなる顔認識などの分野では、「固有顔(アイゲンフェイス)」という技術があります。顔画像の特徴を固有ベクトルとして取り出す技術です。こうした論文の意味が分かるようになります。
  • データを見る目が変わるただの数字の羅列が、「ある方向性を持ったカタマリ」としてイメージできるようになります。

デメリット

  • 手計算は地獄3 \times 3 の行列でさえ、固有値と固有ベクトルを手計算で求めるのは非常に面倒です。計算ミスも多発します。
  • 意味の解釈が難しい計算で出てきた「固有ベクトル(新しい軸)」が、現実世界で具体的に何を意味するのか(例:これは『体格』を表す軸だ、など)は、人間が考えて解釈しなければなりません。

今後の学習の指針

ここまで読んでいただき、ありがとうございます。

「固有ベクトル」という名前の威圧感が、少しは和らいだでしょうか。

「データという雲の中に一本の串(軸)を通して、その構造を明らかにする道具」

そうイメージしておけば十分です。

最後に、これからの学習のアドバイスです。

「手計算はあきらめて、Pythonに任せよう!」

固有値計算は、人間がやるものではありません。Pythonの NumPyscikit-learn を使えば、一瞬で計算してくれます。

これからは、以下の流れで学習を進めてみてください。

  1. Pythonで適当なデータセットを用意する(有名なアヤメのデータなど)。
  2. scikit-learnPCA (主成分分析)を使って、データを2次元に圧縮してみる。
  3. 結果をグラフにプロットして、「おー!バラバラだったデータが綺麗に分かれた!」と感動する。

「固有ベクトル」という数学的な概念が、実際のプログラムでどう「データの要約」として機能するのか。それを体験するのが一番の近道です。

これで、機械学習を支える数学の基礎ツアーは一区切りです。

あなたはもう、数式の海を渡るための羅針盤を持っています。恐れずに、機械学習の実践へと漕ぎ出してください!

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

投稿者プロフィール

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

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