人工知能(AI)の仕組みを高校数学のベクトルから理解する

最近、学校の教科書でも人工知能(AI)についての話題が頻繁に取り上げられるようになりました。学生の皆さんにとっては、AIはまだまだ遠い未来の話に思えるかもしれませんが、実際にはさまざまな企業でAIが現実の道具として利用されています。将来社会で活躍する学生の皆さんにとって、AIを役立てるためにその仕組みを理解することは非常に重要です。

ここでは、高校生の皆さんに向けて、AIの仕組みを高校数学と結びつけて説明します。ただし、分かりやすくするために、正確な説明とは異なる表現が使用される場合があります。この説明は、AIと高校数学の関連をイメージするための概念を把握することを目的としています。

訓練と生成

まず、AIには主に訓練と生成という2つの作業があります。

初めに作成されたAIは、まだ中身が空っぽの状態です。例えば、AIに「2+3は?」と聞いても、ランダムな答えを返します。しかし、AIに「2+3は5である」と繰り返し教え込む(訓練する)ことで、いずれAIは正しい答えを生成するようになります。

AIが正しい答えを生成できるかどうかは、訓練の内容に依存します。もしAIに「2+3は4である」と教え続ければ、AIはやがて「2+3は4である」と答えるようになってしまいます。そのため、AIが本当に役立つかどうかは、訓練を行う人に大きく左右されるのです。

ライオンとクジラの画像を生成するAIを考えてみる

では、AIは具体的にどのようにして結果を生成しているのでしょうか。

説明を単純にするために、ライオンとクジラの2種類の画像を生成できるAIを考えてみましょう。まず、いくつかのライオンとクジラの画像を用意し、それらをAIに学習させます。

前述のように、AIは人間の脳を模倣した仕組みを持っているため、画像はそのままAIに取り込まれるわけではありません。画像は一度数値の集まりに変換された後、AIに取り込まれます。

取り込まれた数値の集まりは、ネットワーク内で数値の組み合わせとして存在します。例えば、3つのライオンの画像は (60, 14)、(95, 30)、(84, 3)、クジラの画像は (26, 75)、(13, 81)、(33, 68) とします。高校で学んだように、こうした数値の集まりをベクトルと呼び、それぞれの数を成分と呼びます。

ベクトルをグラフで表すと、ライオンとクジラのベクトルは異なる特徴を持ち、ベクトルの向きが似ていることから、ライオンとクジラを判別できることが分かります。AIは、このベクトルの向きに近いデータを生成することで、「おそらくライオンである画像」や「おそらくクジラである画像」を作り出すことができるようになります。ただし、AIが生成する結果は可能性の高いものであり、必ずしも正確なものではありません。

AIが学習を始めたばかりの場合、例えばライオンの画像を出力するように指示しても、ランダムなベクトルを結果として出力します。しかし、訓練を重ねることで、ライオンの特徴を持つベクトルを出力するようになります。AIは訓練を通じてどんどん学習し、より賢くなっていくのです。

とは言え、実際のAIは、成分が2つだけのような単純なベクトルではありません。実際には数百万個以上の成分を持つこともあります。

ベクトルは平面ベクトルならばx座標とy座標の2つの成分を持ち、空間ベクトルならば3つの成分を持つと習ったかもしれません。しかし、成分が4つ以上になると、私たちの直感ではどの点を指しているのか想像することが難しくなります。私たちが生活する宇宙は3次元の世界であるため、4次元以上は抽象的な概念として捉えることが一般的です。

生徒のテストの得点を生成するAIを考える

ここから、ベクトルの概念について別の例を挙げ、さらに考えを深めてみましょう。
例えば、Aさんのテストの得点が、国語50点、数学91点、英語24点、理科43点、社会11点であり、Bさんの得点が83点、23点、95点、35点、76点だとします。これらの得点はただのバラバラの数字に過ぎません。しかし、これらの数字をベクトルの成分として考えることで、ベクトル (50, 91, 24, 43, 11)、 (83, 23, 95, 35, 76) と表現することができます。

AさんとBさんの得点を見ると、それぞれに特徴があることに気づくでしょう。Aさんは数学が得意で他の科目は苦手なタイプの生徒であり、Bさんは文系科目が得意で理系科目が苦手なタイプのようです。

先ほどのライオンとクジラの例でも、それぞれのベクトルには特徴があり、それがベクトルの「向き」として表現されていました。同様に、AさんとBさんのテストの得点もベクトルにすることで何らかの向きを持つことができると言えるのです。つまり、「数学が得意な生徒のベクトルはこの向き」、「文系の生徒のベクトルはこの向き」といった具体的な特徴に対応するベクトルの向きが存在するということです。ただし、その向きをグラフで表現することはできません。

こうして、単なる数字の集まりをベクトルとしてまとめることで、それぞれのデータに特徴を持たせることができるのです。

この考え方を基に、「特定の特徴を持つ生徒の得点を生成するAI」を作ることができます。多くの生徒の得点データでAIを訓練し、「理系の生徒の得点を生成してください」と指示すると、理系の生徒の特徴に近いベクトルを生成してくれるようになるでしょう。

ベクトルは、本当は平面ベクトルや立体ベクトルだけではありません。目に見える矢印として表現することはできませんが、ベクトルの成分は増やすことができます。そして、それぞれのベクトルに「これはライオンだ」「これは文系の生徒だ」といった特徴を持たせることで、AIは考えることができるようになるのです。
ただし、AIは実際にライオンを見分けているわけではありません。訓練されたAIは、ライオンの特徴に近いベクトルを生成するだけです。AIが認識しているのはベクトルであり、ライオンそのものではありません。しかし、AIが生成したベクトルは人間の目にはライオンに見えるのです。

今回説明した内容は、AIが機能するためのいくつかのプロセスの一部に過ぎません。AIを作成する際には、高度な数学の知識が必要となる場合があります。しかし、現代の社会ではAIが広く利用されており、その基盤となる数学の概念を知っておくことは重要です。