TOSHI.eivory wonderland
SAMPLE
説明文(例)
× 何十億組
① ノイズ入りの絵
② AIが予想したノイズ
③ 本当のノイズ(正解)
ずれ(②−③)
x̂
砂嵐 A
x̂
砂嵐 B
x̂
砂嵐 C
AIの中身 = 何十億個もの数絵ではなく、傾向
モデル ≈ 2 GB
学習した絵 ≈ 20億枚以上
1枚あたり < 1 バイト
→
同じ絵が何度も → ほぼそのまま出ることも丸覚え(memorization)
言葉を選ぶ選び抜く仕上げる
  1. AIは絵を
    どう学ぶのか

    Stable Diffusion などの画像生成AIは、拡散モデルという方法で絵を学んでいます。私の作品を1枚サンプルにして、その中身を1段ずつ見ていきましょう。

    →キーか「次へ」で進みます。右上でサンプルの作品を切り替えられます。

  2. AIが学ぶ材料は、1枚の絵と、その絵を説明する短い文章の組(ペア)です。

    ※ ここの説明文は、この解説のために書いた例です。実際の学習データでは、ウェブ上の画像に付いていた代替テキストなどが使われます。

  3. 説明文は単語に分けられ、言葉用のAI(CLIP)によって、1語ずつ512個の数の列に変換されます。左の単語の下の小さな棒は、そのうち最初の16個です(上=プラス、下=マイナス)。

    下の図は、512個すべてを1語1行で並べたものです。

  4. この512個の数は、ひとまとめにして512次元の空間の中の1本の矢印として扱います。大事なのは1個1個の数ではなく、矢印の向き。意味が近い言葉ほど、向きが近くなります。

    絵を作るAIは、この向きを手がかりにノイズを取り除きます。だから向きの近い言葉(猫と犬、オレンジとカボチャ)は、似た絵に向かいやすくなります。

    図の中の言葉(または左の単語)を押すと、向きが近い言葉が出ます。

  5. こうした組を、ウェブから何十億組も集めて学習します。Stable Diffusion は LAION というデータセットをもとに作られました。

  6. でも、そのままの絵は数字が多すぎます。384×512の絵なら、マスが196,608個。色3つ分で589,824個の数です。

  7. そこで、まず解像度を半分に。2×2のマスを1つにまとめて、192×256マスにします。

  8. さらに半分で96×128マス。細かい模様が消えはじめます。

  9. もう半分で48×64マス——縦横それぞれ1/8です。数は12,288個、元の約1/48になりました。

  10. もっと縮めるとどうなるでしょう。24×32、12×16……ここまで来ると、何の絵か分からなくなります。

  11. だから画像生成AIは1/8で止めます。ここから最後まで、AIはこの48×64のモザイクだけを相手にします。

    ※ 正確には、この圧縮は専用のAI(VAE)が行い、1マスには色ではない4つの数が入ります。ここでは見やすいよう、各マスを平均の色で表示しています。

  12. 次に、このモザイクに砂嵐のようなノイズを少しだけ混ぜます。

  13. 混ぜる量を増やしていくと、絵の成分が減り、ノイズの成分が増えていきます。

  14. 700段階目。もう、うっすらとしか見えません。

  15. 1000段階目。ほとんど砂嵐だけになりました。

    ※ 混ぜる割合は Stable Diffusion と同じ式(scaled linear・1000段階)で計算しています。

  16. ここまでは計算式だけでできます。AIが学ぶのは、この逆向き——砂嵐から絵を取り戻すほうです。

  17. 学習の1回分を見てみましょう。
    ① 絵に、ランダムな段階のノイズを混ぜます。

  18. ② それを説明文と一緒にAIに見せて、「どこがノイズか」を予想させます。

  19. ③ 本当に混ぜたノイズと答え合わせ。右下の赤いところが、予想が外れたところです。

  20. ④ ずれが小さくなる方向へ、AIの中の数(重み)をほんの少し直します。絵もノイズも変えながら何百万回もくり返すと、赤が薄くなっていきます。

  21. では、AIは何を覚えるのか。強いノイズ(t = 900)が混ざると、元がどの絵だったかは、もう誰にも分かりません。AIにも分かりません。

  22. 分からないとき、誤差がいちばん小さくなる答えは、同じ言葉が付いた絵すべての「平均」です。たとえば、同じ言葉で私が作った作品を集めると——

  23. 1枚、2枚、4枚……と重ねて平均をとっていきます。1枚ずつの細部は打ち消し合って消え、共通する色と配置だけが残ります。

  24. 数式にすると、こうなります。学習は二乗の誤差を小さくすること。それを最小にする答えは「平均」で、絵が何億枚にもなると、AIの答えはその言葉の平均に近づいていきます。

  25. 言葉が違えば、平均も違います。AIが覚えるのは、こうした言葉ごとの傾向です。ほかの言葉も押してみてください。

    ※ 平均の絵は、私の作品からブラウザで実際に計算しています。本物のAIはこうした絵をしまっておくのではなく、こういう答えを出せる数(重み)を学びます。

  26. 学習を終えたAIで、絵を生み出してみます。出発点は砂嵐。ここでは違う砂嵐を3つ用意します。

  27. 言葉を手がかりに少しずつノイズを取り除くと、まず現れるのはその言葉の平均——大まかな色と配置です。右下の小さな絵 x̂ は、AIがそのとき思い描いている完成形。3つとも同じ姿です。

  28. ノイズが減るにつれて、細部が決まっていきます。細部の描き方は無数にあり、どれになるかは出発点の砂嵐しだい。だから3つは別々の絵に分かれていきます。

  29. 最後にモザイクを元の大きさに戻して(デコード)完成。同じ言葉から、3枚の新しい絵が生まれました。

    ※ 完成例として、この言葉で私がAIで生成した作品を置いています。どれも学習データの絵を再現したものではありません。途中経過は図解で、本物のAIの出力ではありません。

  30. 言葉を変えると平均が変わり、生まれる絵も変わります。ほかの言葉も押してみてください。

  31. 結局、AIは何を覚えたのか。残っているのは絵の束ではなく、「この言葉なら、こういう色がこう並びやすい」という言葉ごとの平均(傾向)を計算するための、大量の数(重み)です。

  32. Stable Diffusion でざっと計算すると、モデルは約2GB、学習した絵は20億枚以上。1枚あたり1バイトにも満たず、絵をそのまましまう容量はありません。

  33. ただし、同じ絵が学習データに何度も重複して入っていると(有名な絵画やロゴなど)、その言葉の「平均」がその1枚に引き寄せられ、ほぼそのまま出てしまうことがあると研究で報告されています。学習データや権利の扱いが議論されるのは、このためです。

  34. AIは「言葉に合いそうなもの」へ向かうだけ。どんな言葉を選び、何百枚からどれを残し、どう仕上げるか——作品性は、その選択の中に宿ります。

    出典:Stable Diffusion などの潜在拡散モデル(Rombach ほか 2022、Ho ほか 2020)。モザイクの大きさ(縦横1/8)、1000段階のノイズの割合と混ぜ方は実際の方法に合わせています。AIの予想や生成の途中経過は、ブラウザで作った図解です。丸覚え:Carlini ほか「Extracting Training Data from Diffusion Models」(2023)。