AIのひみつ(2) ~中学数学で投げ出した『直線の式』が、実はAIが魔女を召喚する魔法陣だった件~
中学の時、この式は何のためにあるのか疑問に思いませんでしたか? 実は、今話題のAIが『魔女』を描くための魔法の杖(術式)そのものだったのです。前記事は、ある程度の専門家向けでしたが文系向けに書き直しました。
紹介したり、自由に資料を使っていただいても大丈夫です。使い方のレベルを一緒に高めていきましょう。
1.中学数学の直線の式の美しさと有用性
直線の方程式(例えば、ax+y-b=0)は、傾きが-a、切片がbのように暗記した記憶があります。最初は、□、△を使って、x、yを使うなとかめんどくさかったですよね。
大学生になると、ベクトル解析の講義で、(a,1)の法線ベクトル(直線と垂直方向の大きさと方向を持つ量)を持つ直線と学びなおします。
図1にこの直線の方程式とベクトルの関係を示します。生成AIのアルゴリズムで使う活性化関数も直線です。重み(w)がベクトルに対応することがわかるかと思います。
直線上に示された点で、2次元空間のあらゆる表現が可能です。円や四角を書くのも自由自在です。たくさんの点の和で描くことが可能です。
データサイエンスでは、xを説明変数、yを目的変数(予想する対象)として扱います。例えば、アイスの売り上げ予想(y)は、気温(x)の関数になるなどです。未来を予測するための便利な式です。いや、駅からの距離(新たなx候補)で変わるよ!という場合は、説明変数xを追加する必要がありますので、次元(ベクトルの数)が増えます。活性化関数は、予測し出力(yの集合体)するために、いくつもの式の和として表現されます。係数の重みの意味も見えてきますね。高次元からみた低次元の世界、海外ドラマ「三体」のファンにはわかるかな?

2.では、画像生成に関わる次元は?
入力項がたくさんあるので直感でとても多いと気づくかと思います。
図1の美しいスライド(青い目のファンタジーの魔女)の裏側で、データがどのような次元の空間を旅して最終的な画像に結実するのか? 現在の主流な画像生成AI(潜在拡散モデル:Latent Diffusion Modelなど)を例に、その「次元の変遷」を4つのフェーズに分けて解説します。
1. 言葉の次元(テキスト・エンベディング空間):約768〜1024次元
入力した「青い目の、ファンタジーの魔女」というプロンプトは、そのままでは、xに入力し計算できませんよね。まず、言語モデル(CLIPなど)によって、トークンと呼ばれる細かな単位に分割されて、意味を持つベクトルに変換し数値化されます。以下に数値の決め方を余談として説明します。
余談ですが、開発段階では、はじめは、すべての言語(トークン)に対して、ランダムなベクトル(数値)を生成(与える)し、学習によって、類似したベクトルは近い数値になるように修正されてきました。次に、AIに何億、何兆もの文章(Wikipediaやウェブ上のテキストなど)をひたすら読ませます。ここでAIは、言葉の「一緒に使われやすさ」に注目します。
「『魔女』という言葉は、『魔法』『空を飛ぶ』『杖』といった言葉の近くでよく使われるな」
「『リンゴ』は『食べる』『甘い』『赤い』の近くによく出てくるな」という感じです。
AIは、一緒に使われることが多い言葉同士のベクトルが、高次元空間の中で少しずつ近づくように、それぞれの数値(座標)を微調整していきます。逆に、全く関係のない言葉同士は遠ざけます。 これを気が遠くなるほどの回数繰り返すことで、最終的に「意味が似ている言葉同士が近くに集まった、巨大な星座のような空間」が自動的に完成します。ここで、ようやく学習済の埋め込みベクトルが得られます(例えば、青のトークンのID:4502など)。次元は、数千次元にもなり、少数点以下3桁程度の有効数字が各次元で与えられます。青に対しては、海とか空も近い数値をもつように調整されます。
画像側も、ベクトルを生成し、プロンプト(言語側)でのベクトルとの整合性(すなわち、言語化)がとられてきています。画像から抽出したベクトルと、テキストから抽出したベクトルが、高次元空間上で同じ位置(近い座標)になるように調整するのです。したがって、プロンプトが言語化した画像になるわけです。
さて、このとき、言葉の意味は約768〜1024次元のベクトル空間の座標として配置されます。
例えば、「魔女」という方向、「青」という方向など、1000個のパラメータ(軸)を使って「あなたがどんな概念を求めているか」を指し示す「指示ベクトル」がここで作られます。
2.AIの「作業台」の次元(潜在空間):約1.6万〜6.5万次元
ここが現代の画像生成AIの最大の発明(サボりの極意)です。AIは、いきなり数百万ピクセルの画像を直接こねくり回すようなことはしません。計算量が爆発してしまうからです。代わりに、画像を高度に圧縮した「潜在空間」という数学的な作業台の上で処理を行います。
例えば、縦横空間を圧縮し、特徴の深さ(チャネル)を持たせたテンソル(例: 4×64×64 や 4×128×128 など)で計算します。
前記事のスライドの2枚目や3枚目で描かれている「特徴の形成(ノイズからの現像)」や「プロンプトとの掛け合わせ」は、すべてこの「数万次元の圧縮空間」の中で行われています。
3. AIの「脳の構造」の次元(パラメータ空間):数十億次元
スライドに描いていただいた重みの総数です。空間の次元とは少し意味合いが異なりますが、AIが学習によって獲得した「数式の複雑さ」を示す指標です。
現在の高精度な画像生成モデルは、数十億個のパラメータを持ちます。つまり、開発者たちは「数十億次元の超高次元空間」の中で、最も美しく画像を生成できる「たった一つの最適解(極小値の点)」を、膨大な計算資源を使って探し当てたのです。
4. 最終出力の次元(ピクセル空間):約300万次元
作業台(潜在空間)でのノイズ除去と特徴の統合が終わると、最後に「デコーダー」と呼ばれる別のネットワークを通って、人間が見ることができる現実のピクセル配列に引き伸ばされます。
わかりやすく説明すると、周囲のピクセルにどういうグラデーションで青色を広げ、まつ毛の影をどう落とすかという「何千ピクセル分の具体的な色データ」に自動的に展開(増幅)されます。
もし、最終的に生成された画像が 1024 × 1024 ピクセルのフルカラー(RGBの3色)だとすると、1024×1024×3=3,145,728、つまり、約314万次元の物理的なデータ(y の集合)として出力されます。ここでは、逆行列(数時間、数日単位必要)ではなく、内積(1ミリ秒)して処理しています。
なお、いきなり、314万次元を描くのは無理なので、プロンプトという「1000次元の方向指示器」を頼りに、「数万次元の圧縮空間(潜在空間)」で絵の構図や特徴をパズルのように組み立て、最後に「314万次元」に一気に解凍(デコード)して出力します。

3.同じプロンプトでなぜ、違う画像が生成されるの?
図2でTemperatureという言葉がでてきました。温度が上昇すると膨らむことは物理学視点でわかるかと思います。平均像からのゆらぎ(数学的には分散)がこの設定です。
AIは常に最短ルート(平均的な正解)を通ろうとしますが、熱(温度)を加えることで、あえて迷わせ、そこにクリエイティビティ(個性)を宿らせるのです。APIを使う場合は変えれますが、一般には、プロンプトで、「厳密に」とか、「少しぼかして」とか指示すると同じ効果が得られます。
また、一番はじめに最終的な画像サイズに対応する(あるいは潜在空間サイズの)「完全な砂嵐のノイズ(乱数)」の画像を用意します。そうすると、xの値がばらつきます。その結果、出力が、毎回変化することになります。
最後に、統計的にもっともらしい合致率が高い集団から、一番高い色のピクセルを選ぶのでなく、確率が高いグループから乱数(サイコロを振って)選ぶことをします。サイコロの平均値に対してのばらつきぐあいがTemperatureとなります。
ここに関わる数学は、スーパーボールが跳ねたり、年収が平均値に近づいたり、さらには、株価がなかなか上がらないなどの事象に隠れた数学(統計力学)の式と等価です。宇宙を記述あるいはそこに埋め込まれたひみつの一つなのです。 以上の流れ、図3~5でまとめてみました。参考にしてみてください。



4.まとめ
結局、数学は『答え(入試の)』を出すためだけの道具ではなく、AIを含む巨大な現象を『記述』するための言語のようです。宇宙のひみつもあぶりだす必要があります。 次回は、現在、実装されているAIモデルが2030年以降、どうなっていくか、近未来のAIモデルについて説明していきます。アメリカの物理学の博士号を持つような人たち(実は、AI専門でない方がよい)が、AI分野に飛び込み、何を狙っているかを一緒に先読みしてみましょう。
