chatGPTはどうして絵が描けるのか?

chatGPTのお絵かき機能を支える機械学習技術について解説してみました。実はある一点では、人間より生成AIの方が有能だったようです。

  

chatGPTの機能として実装されている「お絵かき」機能。

先週金曜日にもご紹介させていただいたのですが、適切なことば(画像の説明文)を入力することで、かなり詳細な画像を数十秒で描いてくれます。

もちろん、ことばをきちんと選ばなければ、私のように、想定していたものとはかなり離れた出力が出てしまうことはありますが。。。

それでも、とても便利な機能です。

 

ところでこちらの「お絵かき」機能。

背後にはどのようなAIが組み込まれているのか、少し見ていたいと思います。

 

1.画像とテキストの紐づけ

2.Diffusion(拡散)モデルを使った高画質化

3.GPT-4による画像説明文の生成

 

大きく3つ、重要そうなポイントを挙げてみました。

少しだけ詳細に見てみます。

 

1.画像とテキストの紐づけ

マルチモーダルと呼ばれる、複数の種類のデータを紐づける研究が始まる前、画像とテキスト、と言えば、画像がどんなものを表しているかを推定する問題がほとんどでした。

例えば、犬の画像を見て「dog」と出力したり。

あるいは、「dog」「run」「enjoy」のように、複数の単語が該当する場合もあります。

これらの問題はほとんどが、画像を入力し、その画像に合致する単語を出力するための物でした。

ですがこれでは、単語は単なるシンボルとしてしか機能しておらず、テキスト間の関係性を表現することはできませんでした。

そこで出てきたモデルが、CLIPと呼ばれるものです。

画像とテキストをそれぞれ、埋め込み表現と呼ばれる、任意の次元数をもつベクトル空間上に射影(埋め込み)するのですが、そのとき、対応する画像とテキストのペアの位置関係を同じにする必要があります。

どういうことかというと、「お散歩中の犬」というテキストと、それに該当する画像があった時、それぞれの埋め込み空間内で、同じような場所に位置している、ということになります。

この状況を作ることで、テキスト間の関係性を使うこともでき(例えば自然、草原、林、、、といった類似した単語グループ、といった情報)、画像の生成が柔軟に行えるようになります。

 

2.Diffusion(拡散)モデルを使った高画質化

とても複雑な画像を作ることができる画像生成モデルに、Diffusionモデルと呼ばれるものがあります。

このモデルは、オリジナルの画像にノイズを付与する部分と、そのノイズを除去してオリジナルの画像を生成する部分から構成されています。

そして一度学習されたモデルを使えば、ノイズがたくさん載ってしまっているような、粗い画像を使って、「ノイズを除去する」部分を使うことによってきれいな画像が生成できる、という仕組みです。

かなりの高精度で画像生成が可能となった、ということで、非常に注目を集めたモデルでもあります。

 

3.GPT-4による画像説明文の生成

実は、人間が画像説明文を作るよりも、GPT-4をはじめとする言語生成モデルを使って画像説明文を作成した方が、より詳細なものが作れるというのです。

…本当に?と思われるかもしれません。

私も最初は正直、疑いましたが、今では納得しています。

というのも、人間は「常識を省略してしまう」のだそうです。

一方、AIには定まった常識というものは存在しません。

人間から見れば「そんなこと書かなくてもわかるでしょ?」といった内容まで、きちんと描写してあげることが重要、とのことでした。

そして、そのように作成された画像と、画像説明文のペアを使って画像生成モデルを学習することで、高い精度が実現されたようです。

 

特に3点目。

こちらの情報は、自分が画像生成スクリプトを作成するときに、とっても役に立ちそうな情報です。

次の画像作成では、もっとうまく作りたいと思います。

 

P.S.

↓メルマガの新規登録はこちらから↓

https://48auto.biz/keieijinji/touroku/sp/scenario13.htm

(スマートフォンよりご登録いただけます)

 

 

Who is writing

大学にてデータサイエンスを学ぶ傍ら、多くの人にデータ分析の面白さを伝えたいと日々奮闘中。