画像生成AIはなぜ文字を上手く“描けない”のか

画像生成AIはなぜ文字を上手く“描けない”のか

2. 文字は文字で表現される

 次に挙げる問題点は、テキストから画像を生成するという条件下において、文字を表現する命令文もまた文字であるという点である。

 これは、先ほどの手の例には見られない問題だ。たとえば手の形に関しては「握手」「握りこぶし」「チョキ」など、様々な形容詞がすでに与えられている。しかし、"C"という文字の形状を説明する形容詞は存在しない。"C"という文字の書き方、つまり構造の説明をするには"円の右上側に設定した任意の点から左方向に円周上に曲線を描き……"のような説明を与える必要がある。"C"という文字だけならこういった説明文を入力することは可能だが、これが"Real Sound"のような語の連続になると非現実的であることは自明だ。そして入力可能かどうこう以前に、データセットでそのような説明文によって文字・文章を表現している場合は少ないだろう。

 先述した例のように、"ZOO"という文字の形状を生成させるためには、"ZOO という文字"と入力する必要がある。この時、ZOOが動物園のイメージそのものではなく、文字の形状自体を取り扱っているということを学習するのは非常に難しい。一方で、手の形状に関しては「握手をしている手」のように、その形状を別途説明することは至って自然であるために、データセットにもそうした文章が含まれている可能性は大いにある。

 こうした問題は、逆に文字の形状を文章以外の方法で補足してあげることで解決する可能性がある。実際、2023年のMicrosoft Research Asiaの研究(Yang et al.)(※4)では、テキスト以外に画像によって文字の位置や形状を追加で指示してあげることで、高品質な文字の生成を行っている。

Yang et al. ※4
Yang et al. ※4

3. 文字の種類

 当然ながら、文字には種類がある。英語アルファベットはA-Zの26種類、ひらがなは濁点等含まずに46種類、漢字は一般的に使われるものでも5,000種類程度と言われている。漢字の種類が他を圧倒しているが、これは英語アルファベット、ひらがな、漢字がそれぞれ意味のレイヤーが異なることに起因している。

 現代の日本語学においては、言語を表記する文字に関して以下の3つに分類される(数字や顔文字といった、音を表さない文字についてはここでは考えない)。

  1. 音素文字:子音や母音の単位であり、音を表す
  2. 音節文字:音節(子音+母音)の単位であり、音を表す
  3. 表語文字:語の単位であり、音を表す

 表語文字はそれ自体で意味を持つために、さまざまな事柄を表現するため様々な文字が考案されてきた。一方、音素文字や音節文字は基本的に組み合わせて語を形成するため、必然的に音素の種類分しか必要なくなる。したがって、画像生成AIで文字を生成するということを考える場合、表語文字かそれ以外か(実質的には漢字かそれ以外か)でタスクの難易度はまったく異なる。

Adobe Firefly Image2 (Beta) で生成・Prompt: "火"という漢字の文字
Adobe Firefly Image2 (Beta) で生成・Prompt: "火"という漢字の文字

 データセットに含まれる文字の画像に関しても、アルファベットの低頻度文字よりも漢字の低頻度文字のほうが含まれる可能性が下がることは自然に理解できることだ。そのため、「漢字を含むイメージの生成」は、現在の文字画像生成タスクにおいて集中的に取り組まれる分野となっている。

4.文章を文字で読まないAI

 最後の理由は、少々技術的な話題となる。実は昨今話題になっている超高精度な画像生成AIや、ChatGPTのような言語生成モデルのほとんどは、文章を読むときの最小単位が「文字」ではない。

 そもそも、AIが実装されているコンピューターは「計算機」であり、つまりあらゆる情報は数値化されなければ処理できない。文章も例にもれず数値化する必要があり、文章をAIに与える前に特定のルールに沿って数値列に直すことを「トークナイズ」という。

 トークナイズするときの最小単位を単語に設定すると"I have a pen"という単語は"0: i, 1: have, 2: a, 3: pen"のように4つの数値で表現ができる。最小単位を文字に設定すると"0:i, 1:スペース, 2:h, 3:a, 4:v, 5:e, 1:スペース, 3:a,1:スペース, 6:p, 5:e, 7:n"のように7つの数値で表すことが可能だ。このトークナイズをどの粒度でやるかという設定は、データの効率的な処理をおこなううえで重要なパラメータである。

 現在、この粒度は「サブワード」という単位が使われることが一般的だ。これは基本的に文字を最小単位として使用しつつ、頻度の高い文字の連なりはそれらをまとめて一つの単位とするという手法であり、たとえば"enlighten"の"en" "light"や、"slightly"の"ly" "light"のように、頻出する文字グループを一つの単位にまとめてしまうというものである。

 2022年にGoogle Researchが行った研究によると、最小単位にサブワードを用いる「文字の見えない」モデルと、文字を用いる「文字の見えるモデル」では、スペリングをする能力と、それらを元に画像生成時に文字を"描く"能力に関して「文字の見えるモデル」が大幅に精度を上回ると報告されている(※5)。

結びに

 本稿では画像生成AIが文字を描けない理由について、AIの学習に関する原理・テキストで命令を与えるという制約・文字の言語学的性質等を踏まえて考察した。

 文字を描くというタスクに関しても、他のタスクと同様に急速に発展を遂げている。以上に挙げた研究のような手法以外でも、そもそもパラメータ数とデータセットをとにかく大きくしていけば解決する問題である可能性は否めない。冒頭の"REAL SOUD"のような、構造が破綻してしまった生成結果もいずれは過去の技術の問題点としてきっと近い未来に(鳥が上手く生成できなかったように)郷愁の対象となっていくのだろう。

脚注

    1. https://github.com/hanzhanggit/StackGAN-v2
    2. シンボルグラウンディング問題を含め、そもそも人工知能とは何かという問いに関してはこちらの資料がわかりやすい: http://ymatsuo.com/DL.pdf
    3. 徳井 直生. 創るためのAI 機械と創造性のはてしない物語
    4. Yang Yukang; Gui Dongnan; Yuan Yuhui; Ding Haisong; Hu Han; Chen Kai. May 29, 2023. GlyphControl: Glyph Conditional Control for Visual Text Generation. arXiv. https://arxiv.org/abs/2305.18259
    5. Liu Rosanne; Garrette Dan; Saharia Chitwan; Chan William; Roberts Adam; Narang Sharan; Blok Irina; Mical R J; Norouzi Mohammad; Constant Noah. Dec 20, 2022. Character-Aware Models Improve Visual Text Rendering. arXiv. https://arxiv.org/abs/2212.10562

参考文献

関連記事

インタビュー

もっとみる

Pick Up!

「コラム」の最新記事

もっとみる

blueprint book store

もっとみる