Weitere ähnliche Inhalte Ähnlich wie Bridging between Vision and Language (20) Mehr von Shion Honda (11) Kürzlich hochgeladen (12) Bridging between Vision and Language2. 発表内容
● Text-to-image
● Text Generation
● Image-to-text->都合により割愛
チームでGitHub issuesにまとめながらサーベイしていました。ご興味のある方は
こちらも御覧ください(image-to-textもあります)。
https://github.com/nlp-survey-text2image/nlp-survey-text2image/issues
5. 何が研究者達をText-to-imageに駆り立てている?
“The additional information from these descriptions could be used to simplify the
image modelling task.” [Mansimov+, ICLR2016]
“Automatic synthesis of realistic images from text would be interesting and useful,
but current AI systems are still far from this goal.” [Reed+, ICML2016]
“Automatic generation of realistic images from text descriptions has numerous
potential applications, for instance in image editing, in computer gaming or in law
enforcement.” [Sharma+, ICLR2018workshop]
“Automatically generating images according to natural language descriptions is a
fundamental problem in many applications, such as art generation and
computer-aided design” [Xu+, CVPR2018]
“Due to its significant potential in a number of applications...” [Qiao+, CVPR2019]
10. GAN-INT-CLS [Reed+, ICML2016]
● データセット:CUB, flower, (MSCOCO)
● テキストによる条件付きDCGANの提案
● 入力テキストと生成画像が適切に対応するように学習するた
めの手法であるmatching-aware lossを提案
● 鳥や花といった単一画像生成ではまあまあうまくいくように
11. StackGAN [Zhang+, ICCV2017]
● データセット:CUB, flower, (MSCOCO)
● 段階的な画像生成で高解像度化(解像度64→256)
● text vectorのaugmentation(conditioning augmentation)を提案
● CUBのinception score用のモデルも提供
14. DM-GAN [Zhu+, CVPR2019]
● データセット:CUB, MSCOCO
● メモリ構造の導入により、各段階でテキストと画像の対応関
係をより柔軟に捉えて生成できる手法を提案
● 定性的にきいているのかが不明なので追加検証が欲しい
16. Turbo learning [Huang+, NeurIPS2018]
● データセット:MSCOCO
● text-to-imageとimage-to-textの学習を同時に行う手法を提案
● それぞれのタスクで事前学習してTurbo learningでfine-tuning
● text-to-imageとimage-to-textがお互いの性能向上に寄与
19. GAWWN [Reed+, NIPS2016]
● データセット:CUB, MSCOCO
● text-to-imageに説明文以外の情報を用いた最初の研究
● GAN-INT-CLSにbounding box, key pointを追加入力とする拡
張
20. ChatPainter [Sharma+, ICLR2018workshop]
● データセット:MSCOCO
● 追加の入力として
MSCOCOの対話データ
(Visdial dataset)を利用
● Inception scoreが数pt向上
● エンコーダは事前学習済み
のskip-thought vector
● デコーダは StackGAN
対話データは次の2つの方法で入力
non-recurrent: 全対話文を一文としてベクトル化
recurrent: 各対話文ごとにベクトル化してBiLSTMで再ベクトル化
21. Inferring Semantic Layout for Hierarchical Text-to-Image
Synthesis [Hong+, CVPR2018]
テキストから各物体のbounding box, segmentation maskを段階
的に予測し、画像のレイアウトを生成してから画像を生成
学習済みのimage
captioning model
により評価
bounding box,
segmentation mask
は学習データに必要
22. Image Generation from Scene Graphs [Johnson+, CVPR2018]
● データセット:COCO-Stuff, Visual Genome
● 生テキストを変換したScene graphで条件付けして学習
● Scene graphから画像までend-to-endで学習可能
● 生成結果はイマイチだが、位置関係が比較的正確
23. StoryGAN [Li+, CVPR2019]
● 複数文のstoryから動画を生成する、text-to-imageの発展課題
● textとimageの一致性と時間方向の一貫性も重要
● 画像・説明文ともに時系列性を処理するためにRNNを活用
● データセットとしてCLEVER-SVとPororo-SVを作成
● 結果はまだprimitiveで評価手法も未確定(チャンス?)
25. Text-to-imageの評価指標
Fréchet Inception Distance (FID) [Heusel+, NIPS2017]
学習済み認識モデルの潜在空間の分布を正規分布として、実画像と生
成画像による潜在変数分布間の距離を測る指標
● Fréchet DistanceはWasserstein距離の正規分布版
● 著者実装では、最低10,000サンプルによって計算を行うことを推奨し
ている(https://github.com/bioinf-jku/TTUR)
37. Training language GANs from Scratch
● original paper: https://arxiv.org/abs/1905.09922
● わかりやすい解説: http://cympfh.cc/paper/language-scratch-gan.html から転載
GAN は画像分野だとうまく行ってるがテキストではまだ難しい. ここでは unconditional な word generation を
Scratch GAN (スクラッチとは事前学習ナシのこと) でやることを考える. この論文の主張は次の3つ
1. 本気を出せば Scratch GAN は最尤推定で生成するものと肩を並べられる
2. 重要なテク: バッチサイズを大きくすること, 稠密な報酬 (Dense rewards), そして判別器の正則化
(regularization)
3. 今の評価指標はクソ: 質と生成の多様性の双方を評価する方法はない
39. 言語モデルによる条件付き生成
先頭に特殊なトークンやキーとなる単語、文をつけて生成していくものが多い
ここ最近流れが来ていそう
・On Extractive and Abstractive Neural Document Summarization with Transformer Language Models
https://arxiv.org/abs/1909.03186
・GPT-based Generation for Classical Chinese Poetry
https://arxiv.org/pdf/1907.00151.pdf
・Transforming Delete, Retrieve, Generate Approach for Controlled Text Style Transfer (EMNLP 2019)
https://arxiv.org/abs/1908.09368
40. ・On Extractive and Abstractive Neural Document Summarization with
Transformer Language Models
重要文をPointerNetworkで抜き出した後、導入、重要文、要約、本文の順に並べた文書生成を自己注意機構ベース言語モデルで学習。推論
時は導入、重要文で条件付して要約を生成 (岡之原氏のツイートより)
https://twitter.com/hillbig/status/1171585503990140928?s=21
既存のseq2seqよりも良い
F-1 ROUGE scores
GTP-2 の220M パラメータ数のバージョンを使用
41. GPT-based Generation for Classical Chinese Poetry
https://arxiv.org/pdf/1907.00151.pdf
・古典中国詩を生成
・先頭に形式、タイトルで条件づけ
・専門の詩人によって書かれたものに近い出力
・中国語のニュースコーパスでpre-training
・publicly available classical Chinese poemsでfine-tuning
42. Transforming Delete, Retrieve, Generate Approach for
Controlled Text Style Transfer
Code: https://github.com/agaralabs/transformer-drg-style-transfer
1. Content と 2. Attributes で文が成り立っていると仮定
AttributesをContentの先頭につけて生成している
例
削除および生成を使用したコンテンツからの否定的な感情文(中立)の生成
Content: The food was and the service was
Output: The food tasteless and the service was horrible.
Delete、Retrieve、Generateを使用した、コンテンツからの否定的な感情文(中立)の生成
Content: The food was and the service was
Attributes: blend, slow
Output: The food was blend and the service was slow.
43. 言語モデルの対話への利用
・Large-Scale Transfer Learning for Natural Language Generation
https://aclweb.org/anthology/P19-1608
・ConvAI2
・NeurIPSで開かれている対話のコンペ
・personachatという、対話データとユーザーの情報から対話を生成
・GPTベースの転移学習が優勝
・優勝者が実装と解説をブログに載せている
・https://medium.com/huggingface/how-to-build-a-state-of-the-art-conversational-ai-with-transfer-learning-2d818ac26313
45. Encoder-Agnostic Adaptation for Conditional Language Generation
https://arxiv.org/abs/1908.06938
事前学習済みの言語モデルを任意の条件付き入力に適合させる方法を検討
発想は従来のNN的手法と同様
(ただ、学習しているうちにconditionの効力がなくなっていく傾向がある)
47. FlowSeq: Non-Autoregressive Conditional Sequence Generation with
Generative Flow
Non-autoregressiveな系列生成モデルの提案。seq2seqなどの系列モデルは自己回帰型であり(前回の生成が今回の生成に影響する)、精度は
高いが順番にしか生成できなかった。そこで系列要素を直接推定する手法を使用し、生成のための潜在表現をFlowベースのモデルで得るこ
とで実行速度/精度面双方を改善 (piqcy氏のツイートより)
https://twitter.com/icoxfog417/status/1171214366970040321
論文:https://arxiv.org/abs/1909.02480
Code: https://github.com/XuezheMax/flowseq
Hinweis der Redaktion いわゆるtext-to-imageとは、ここでは「説明文からの2次元画像生成」という研究課題を指します。
もちろん、一般的に「説明文から画像を生成する」というタスクは他にも「説明文からの3D物体の配置問題」など昔から検討されていますが、ここでは扱いません。
問題設定としては、image-captioning(image-to-text)の逆問題になっており、
基本的にはimage-captioningと同様、SNSなどWebから入手できる画像と説明文のペアのデータを利用することを暗黙的に仮定しているため、
ニューラルネットを用いて画像と説明文の対応関係をデータから直接学習するアプローチが主流となっています。
では、text-to-imageに取り組んでいる研究者らはどのようなモチベーションで研究しているのでしょうか?
最近の論文のIntroductionを読んでみました。
そうすると、画像生成を自然言語で制御できることに魅力を感じている、可能性を感じている人が多いように思えます。
具体的には、画像編集のような、計算機によるデザインの支援などが挙げられます。 扱うデータは、これまでのtext-to-imageの主流だと、image-captioningで既に使われていた鳥や花のデータセットを用いた
研究が多いです。これらは実用のためのデータというよりは「あったから使った」という基礎研究的な側面が強いですが、
最近はプロのデザイナーによって説明文を付与されたファッション画像のデータセットが登場しており、
今後は徐々に実用に研究も増えて来るのではないかと考えられます。
また、もう一つの扱われているデータセットの主流として、MSCOCOによる一般物体画像の画像生成タスクがあります。
これは先ほどのデータセットとは違って複数物体を生成する必要があるので、より難しいタスクになっています。
実際に、最近のtext-to-imageによる生成例を右に挙げましたが、「それっぽい概念」だとわかるものの、まだまだ現状の技術では難しいことが伺えます。 text-to-imageの代表的研究を紹介したいと思います。
大きく分けるとVAEやGANといった深層生成モデルが登場して間もない黎明期と、
最近のベースラインとしての地位を確立したAttnGAN以降の時代の2つに分けて紹介したいと思います。
Text-to-imageが最初に登場したのは、DRAWというVAEベースのRNNの画像生成モデルと機械翻訳の分野で提案されたBahdanauらのAttention機構を組み合わせたMansimovらの研究からで、当時話題になりました。
後続のGAN-INT-CLSではGANを用いたテキスト条件付き画像生成モデルが提案されました。
(当時は鳥(CUB)や花(flower)の画像が用いられていましたが、後にMSCOCOによる結果も追加されています。)
鳥や花の単一画像生成が上手くいくようになり、多くの後続研究がGANを用いた手法を提案しています。
これまでの画像生成モデルでは高解像度の生成が難しかったですが、
大きなブレークスルーの一つとしてStackGANが登場しました。
StackGANではReedらのモデルをベースに、高解像度の画像生成を、段階的な解像度の生成にタスクを分解することで可能にしました。
また、テキストの潜在空間が画像の潜在空間に比べて疎になりやすいという点に注目して、text vectorにノイズを加えてaugmentationするconditioning augmentationも提案しました。
翌年に発表されたStackGAN++では、StackGANを三段階にし、損失を条件なしでも計算し、Upsamplingによる色の変化を抑える正則化項を追加する、といった工夫を加えました。これらにより、CUBのFIDを52から15に減らすなど生成品質を向上しました。 また、StackGANにAttentionを導入して発展させたのがAttnGANです。
StackGANではテキストを文ベクトルにして生成条件に用いていましたが、
AttnGANでは単語ごとのベクトルも用いて画像の各小領域に対する単語のAttention機構を導入することで、各小領域にどの単語が選択的に対応するかをモデル化することでより鮮明な画像を生成できるようになりました。
最近では、AttnGANの後継として、画像の小領域と単語の対応関係をより柔軟にとらえられるように、
メモリ構造を導入するDynamic Memory GANというモデルが提案されています。
AttnGANでは各段階の画像の小領域が必ず単語のどれかに対応するように学習が制約されていますが、
DM-GANでは、単語ベクトルと前の段階の画像特徴量をメモリとして非明示的な対応関係を学習している(と思われる)ので
AttnGANの制約が緩くなるという意味でより表現力が高くなっているのかと思われます。
ただ、定性的な検証が不十分なところがあるので、追加検証が必要かと思われます。
Turbo learningはimage-to-textのモデルとtext-to-imageの学習済みモデルの入出力を互いにサイクルさせて、同時に学習させることで、画像情報とテキスト情報の対応関係をより強固に学習する手法です。
実験では、LSTMによる強化学習ベースのimage-to-textのモデルとAttnGANによるtext-to-imageのモデルを用いています。
ここで、目的関数は大きく分けて画像用のlossとテキスト用のlossに分かれており、画像用のlossには実画像と生成画像の学習済み画像認識モデル(inception-v3)のそれぞれのクラス確率(事後確率)間のKL divergenceを用いています。テキスト用のlossは強化学習を用いたテキスト生成で使われるBLEUやCIDErを報酬としたlossを用いています。
モデルの最適化はデータストリームで2ステップに分かれており、
一方は真ん中の図における左側のパスにある、実テキストS*をスタートとして生成される画像、テキストを用いて最適化するステップ、もう一方は真ん中の図における右側のパスにある、実画像I*をスタートとして生成されるテキスト、画像を用いて最適化するステップに分かれています。
各ステップでは両方のモデルを同時に最適化しています。
実験結果では、Turbo learningを用いることでお互いのモデルの性能が向上したという結果が得られています。
MirrorGANもimage-to-textをを利用して性能向上を図りました。text-to-imageの後ろにCNNとRNNによるimage-to-textを繋げて、説明文の再構成誤差を生成器の損失に追加し、説明文と生成画像の意味的な一貫性を高めました。ただし、テキストで再構成誤差をとるのはあまり洗練された手法とは言えません。 CUBやMSCOCOには、1枚の画像に対して複数の人がつけた異なる説明文があります。これをSiamese Networkで活用したのがSemantics Disentangling GANで、似た文章から似た画像を得ることに成功しました。 GAWWNはGAN-INT-CLSを提案したReedらの後続研究になります。GAN-INT-CLSで生成できる画像の制御性を上げるという目的で、text-to-imageに追加入力を加えることを最初に提案しました。
この研究ではbounding boxとkey pointを追加入力として用いることを提案しており、それぞれ別のネットワークを提案しています。
拡張としてはシンプルですが、入力に応じて生成結果が変わるという見せ方がうまいのがポイントかと思われます。 ChatPainterでは、同じ説明文のついている画像が人目で見ると全く異なっていることがあることに注目し、説明文の情報不足を補う方法としてVisdial datasetを用いて追加の対話文を追加の入力として用いる方法を提案しています。
これにより、数ポイントのInception scoreの上昇が報告されていますが、追加入力が多様性を限定すると考えると、Inception Scoreで評価するのは筋が良いとは言えなさそうです。
対話データは2種類の方法で一つのベクトルにして入力しています。non-recurrentは全対話文を結合して一つの文として入力し、学習済みのskip-thought vectorでベクトル化する方法。recurrentは一度skip-thought vectorで各文をベクトル化してからBiLSTMに入力して一つのベクトルにする方法で、(想像できる通り)recurrentの方が良い結果になっています。
Hongらのこの研究はReedらの論文と同じ研究グループの後続研究になります。
text-to-imageではテキストと画像をend-to-endで紐づけますが、この研究では
テキストからbounding boxの生成、bounding boxからsegmentation maskの生成と段階的な予測タスクを追加することで画像のレイアウトを予測し、これを生成条件として画像を生成します。
留意する点として、学習に予めアノテーションされたbounding boxとsegmentationが必要である点、
各タスクのモジュールは独立に学習学習しており、end-to-endにはなっていない点があります。
その他の注目点として、学習済みのimage captioning modelを用いて客観評価を行っている点が他のtext-to-imageと違って良い点だと言えると思います。bounding boxとsegmentation maskは説明文から予測されたものでなく、Ground Truthを用いた場合にどうなるのかも評価しており、Ground Truthから生成するよりも説明文から段階的に生成することで若干結果が悪くなることが示されています。 この研究では、画像の物体及び背景とそれらの間の関係をグラフで表現したScene Graphというものを画像生成に用いた研究で、text-to-imageの派生の一つと考えることができます。
データセットには、COCO-StuffとVisual Genomeというデータセットを用いています。
COCO-StuffはMSCOCOよりも詳細なsegmentation maskがアノテーションされているデータセットで、Scene graphは物体同士の位置関係をあるアルゴリズムに従って自動的に作成したものを用いたようです。
一方、Visual Genomeでは、人手でアノテーションされたScene graphを用いています。
学習では説明文は用いず、Scene graphを入力としてend-to-endに画像を生成しています。テキストからScene graphを生成する研究もあるため、組合わせることは可能だと思われますが、ここでは用いられていない点は留意が必要かもしれません。
Scene graphはGraph Convolutionで特徴量抽出を行い、各物体に対応する特徴量からbounding boxとsegmentation maskを同時に予測して乗算し、一つのレイアウトに結合する形をとっています。物体が重なった場合の前後関係は明示的に表現する機構は用意されていないので、学習により勝手に決定されてしまうようです。
Hongらの研究と違う点として、end-to-endで学習できるため、必ずしもbounding boxやsegmentationは必要ないと思われますが、実験ではこれらのデータを用いて学習している点は留意が必要です。
生成結果は左上の図にあるように、まだfine-grainedではないものの、文末の「海の上のボート」を「草原の上のボート」に変えるとその情報が反映された生成ができていることから、位置関係の情報を正確に捉えていることが良いポイントだと思います。 StoryGANというCVPR2019の論文では、text-to-imageの発展タスクとして複数文のstoryから動画を生成するStory Visualizationを提案しました。このタスクではtextとimageの一致性だけでなく時間方向の一貫性も重要なので、StoryGANは画像・説明文ともに時系列性を処理するためにRNNを活用しています。Story VisualizationのデータセットとしてCLEVER-SVとPororo-SVを作成・公開しました。しかし、生成結果はまだprimitiveで評価手法も定まっていません。 text-to-imageで用いられる評価尺度は、画像生成の論文で用いられるInception ScoreやFréchet Inception Distanceが用いられていることが多いです。
Inception Scoreは画像の忠実性(人間に認識できる画像かどうか)と多様性を混ぜ合わせたような指標となっています。大きいほど良いとされる指標です。
Inception Score(IS)の実際の計算では、潜在変数の分布pzから独立に生成したN個の生成画像を用います。
N個の生成画像は学習済みの認識器に入力し、出力としてN個の事後分布p(y|x)を得ます。
p(y)はこの事後分布のyについての周辺分布になっています。
右上の図のように、事後分布がある特定のクラスに偏っているとp(y)もそのクラスに偏って各項(各サンプル)におけるKL divergenceの大きさが小さくなるため、全体のInception Scoreの値が小さくなります。これが多様性に対応しています。
また、右下のように、各サンプルに対する事後分布が一様分布のような平坦な分布になっていた場合は、各事後分布とp(y)がどちらも一様分布に近くなるので結果的にInception Scoreが小さくなります。これが忠実性に対応しています。
Nにはそれなりに大きな数が必要と言われていますが、text-to-imageではテキストデータをconditionにして生成するので普通のunconditionalの場合と違って用いる枚数が(おそらく暗黙的に)決まっています。
AttnGANでの計算を例に挙げると、
Caltech birdでは著者らの詳しい説明がありませんが、テスト用画像が2933枚あり、各画像には10個の説明文が付与されているのでこれらの説明文を一回ずつ用いて合計29330枚の生成画像が得られます。これを使ってInception scoreを計算すると著者らの結果に近い値が出てくることが追試により報告されています。(https://github.com/taoxugit/AttnGAN/issues/17)
MSCOCOでは著者らの説明があり、各画像ごとに5つの説明文から1つの説明文をサンプリングして生成した画像を用いているとのことです。テスト用画像(正確には開発セット画像)は40,504枚あるので、40,504枚の生成画像を用いて計算することになるようです。(https://github.com/taoxugit/AttnGAN/issues/17)
Fréchet Inception DistanceはInception Scoreと並んで用いられることが多い評価指標です。
Inception Scoreと同じで画像認識の学習済みモデルを用いて算出する点は同じですが、
Inception Scoreが学習済みモデルが学習時に用いたクラスの予測分布を基に算出されるのに対して、Fréchet Inception Distanceは実画像と生成画像のそれぞれを学習済みモデルによって潜在ベクトルにし、その潜在ベクトルの分布の距離を計算する指標であることから、Inception Scoreよりも安定しているとして良く用いられています。
Fréchet Distance自体は、正規分布を仮定した2つの分布のWasserstein距離として解釈できます。
著者実装によると、最低10,000サンプルによって計算を行うことでおおよその値が求まるようです。
ただし、ISもFIDもテキストとの一貫性を評価することはできないため、人手による評価をすることも多いです。評価指標の提案も研究テーマとしてありうると思います。 それでは次にTextGenerationについて発表させていただきます
強化学習では各状態で報酬を計算する必要がありますが、Discriminatorは部分文字列にたいしての分類は正しく行えません。そこでその時点での単語列からモンテカルロ探索を行い、それそれの報酬の平均値を使用します
また通常の強化学習では報酬に着目しますが、今回学習したいのは行動の決定方法であるため、PolicyGradient(方策勾配)とよばれる行動を決定する関数を学習する方法を用います。
詳細な数学的な証明などについては論文を参照ください 強化学習を用いた手法では 同じようなテキストばかり出力されるModeCollapseや 勾配消失で学習がすすまない リスクが高いことが知られています
直感的にもただでさえ安定性の課題があるGANにさらに強化学習を組み合わせるとリスクが高くなりそうです
そこで通常のsoftmaxの極限を利用することでargmaxを微分可能な関数に置き換える手法が提案されています。
soft-argmaxにより予測分布を0,1に近づける+softlabeling(乱数を加えて0,1の正解ベクトルを1を0.9にしたり0を0.1したりでぶれさせる)ことで両者を近づけます
それに加えてTextGANではFeatureMatchingというテクニックを用います。
これは先ほどのSoftLabelingと同じ論文で提案されている学習テクニックです。
Discriminatorの分類結果そのものを使うのではなく、分類のための中間表現をリアルデータと生成データ間で近づけるような学習を行います
TextGANではMaximumMeanDiscrepancyという関数を距離としてしようしています。
TextGANではCNNの中間表現を用いています 主に使われるデータセットについてです
ChinesePoem,MSCOCO, WMT2017
中国詩はSeqGANが用いていた流れで主につかわれています たぶん五文字
英語の短文データセットとしてはCUBがつかわれていました
text2imageのデータセットが結構利用されているという印象があります
またテキスト生成の評価としては、GANに限らずまだ人手評価も重視されます earth mover’s distance = Wasserstein距離 主流としてはSeqGANベースの強化学習を用いたものが主流です
TextGAN系の手法はFMGANくらい(?) 二つを比べて強化学習を採用している例を見たことがないので多分知名度の問題
ここで紹介しきれなかった論文についても最初に紹介したgithubにまとめをいくつかのせてあるのでよければご覧ください
BLEUを用いた比較としては現段階ではFMGANがSOTAとなっています 強化学習ベースの手法では勾配が大きくなりやすいがバッチサイズを大きくすることでそれを抑制する効果を得られる
こちらでは強化学習を用いているが、部分文字列に対する報酬としてモンテカルロ探索を行わずそのまま分類を行っている Dense rewards(ちゅうみつ)
評価手法としてBLEUをもちいずtext2imageのさいに取り上げたFrechet Inception DistanceをもとにしたFrechet Embedding Distanceを用いています
BLEUとことなり指標一つで品質+多様性の評価が可能 図を見るとわかる 図を見るとわかる 図と例を見るとわかる