三億の鼓動

【暫定版】テキストから絵を生成するAIが何をやっているのかのポンチ絵

前置き

AIに絵を描かせるの、流行ってますね。そして議論にもなっています。

計算機科学も数学もわからない人向けの、AIが”何をしているのか”という解説が、私の探した範囲では見当たりませんでした。あったらごめん。

私はAIのことが少しだけわかるので、絵を描く作家さんとの交流がきっかけで、AIが何をしているかというポンチ絵を描く機会がありました。

AIがテキストから絵を吐きだす技術は、ほんとは色んな技術の集合体なので「正確に」と「わかりやすく」を両立するのが難しい分野です。正確に知るためには数学と計算機科学の知識が必要ですし、数学を理解するためには数学の知識が必要です。

本稿は、数学と計算機科学の知識を使わないで、どういったことをAIがしているのかという概念を大雑把に省略して説明したポンチ絵です。あくまでもポンチ絵です。2023年4月にTwitterに投下したらバズっちゃった私のツイート内容の加筆・転載です。

AIが何をしているのかという概念すら知らずに議論することは危ういと感じたので、このようにアーカイブとして残しておきます。

本編

上記はいろんな絵描きさんにAIが絵を吐きだす仕組みを説明してみて、一番わかりやすかったと言われたポンチ絵です。t2i、つまりテキスト・トゥー・イメージと呼ばれる手法です。

元の画像にノイズ少しずつ加えたものを教えていって、絵とノイズの関連性を教えます。これが学習です。

元となる画像も大量に用意して、たくさんのパターンを教えこませます。

出力させるときは、AIにノイズを渡して、紐づいたテキストを手掛かりにノイズを取り除いて画像を生成しています。

たくさんの画像とノイズを渡してパターンを覚えてもらい「じゃあこのパターンはどう?」とAIに問いかけることでAIに画像を作らせているというイメージです。


引用元:ITmedia 「Stable Diffusion」でノイズから画像が生成される過程を確認しよう
https://atmarkit.itmedia.co.jp/ait/articles/2209/30/news052.html

上記は実際にStable Diffusionと呼ばれるAIがノイズから画像を生成している様子です。

AIは真っ白なキャンパスに絵を描いているのではなく、ノイズから絵を生成しているのです。

Stable Diffusionで画像1枚に関するパラメータが10憶で、それを20億個の画像とテキストのペアで学習しているそうです。膨大な量です。

そんなわけでAIの画像は元がノイズなので、人間が絵を描いているときとは少し概念が違います。

ノイズを加えて学習していくので、細部の再現が困難です。AIが手や指の描写が苦手なのはこれが理由です。細部がノイズで潰れてしまうのです。

”何が描かれているのか”を理解はしていますが、それが”何なのか”を本質的には理解していません。なので左右で対称になっているものがなっていなかったり、ありえないものを描いたりします。

ものの構造を理解しているわけではないので、人間の関節があり得ない方向に曲がっていたりします。また、無茶な要求を出すとノイズがそのまま出てきます。

AI絵はノイズから生成しているうえに、出力するときの関数が「全体的に何となく色があっている」というふるまい方をするように作られているので、独特の塗りをします。人間が塗るときはカラーパレットから色を選ぶので基本的に塗りつぶしは単色になりますが、AIは同じ色に見えて1ドット隣の色が違ったりしているはずです。なんとなくノイズっぽい塗りになるのです。

でも、ノイズから関連性を頼りに画像を生成しているので、コラージュではありませんし、切り貼りをしているわけではありません。それはAIに対する技術的な誤解です。

また、AIは元画像と元画像にノイズを重ねていったものを学習するのですが、保持しているのは学習済のデータセットです。画像に関してもjpgのような絵のフォーマットで学習するわけではないので、AIが他人の絵を保存・保持しているというのは誤解です。そんなことしていたら無限のストレージが必要になるからです。逆に言えば、膨大な情報を学習した”結果だけ”を保持できるというのがAIの強みでもあります。

学習済みのデータセットとは、ニューロン同士の結合の重み情報…どのくらい結びつきが強いかという情報です。入力されたデータはn次元のベクトルに変換されるので、人間が見て何かわかる状態ではありません。(nはパラメーター量。10憶なら10億次元のベクトルなので図に書けない)

また、何億という画像を学習しているので、原理上は元の絵がそのまま出力されるわけではありません。酷似した画像がでることはあるかもしれませんが、元の絵と等価、つまりまったくそのままではないはずです

以上がテキストから画像を取り出す、t2iと呼ばれる手法の説明です。

コンピュータは計算が得意です、足し算引き算は朝飯前、複雑な方程式も一瞬で解けます。しかし「ヤギとシマウマは似ていますか?」というような問題はそのままでは計算で解決することができません。

そのような曖昧な問題をコンピュータになんとか計算で解いてもらうために、データをどのように扱い、どう計算で解決させるかという学問がAIであり、人工知能と呼ばれる分野の学問です。

繰り返しますが、本稿は計算機科学も数学もわからない人向けのAIが”何をしているのか”という大雑把な説明です。ほんとうは色んな先端技術の集合体なので「正確に」と「わかりやすく」を両立するのが難しいのです。

詳しい説明はこちらでも見ることができます

この文章は入り口を舐めたようなものです、詳しくは上記のような解説サイトや論文を当たってください。

今AIはものすごい議論を呼んでいますが、原理をわからずに議論することが危ういと感じたので、学生のときに齧った知識でなんとかポンチ絵を描いてみました。

上記はすべて、技術を説明している文章にすぎません。私のはAIになんらかの良し悪しの判断を下すことや、なんらかの立場を表明することはこの場ではいたしません。またそれについて問われても返事をしません。

もし、より良いAIの説明がなされているコンテンツが生まれた時は、このページを爆破して退場します。プロの方々、お願いします。

(2023年4月7日 第一版)