Image-and-Language Understanding from Pixels Onlyを読んだ感想

概要

 テキストをレンダリングして画像化してTransformerに入力する方法でも、簡単なVisual Question Answeringなどではある程度性能出るらしい。

 基本的にはCLIPと似た形式で対比学習をする。Figure 1を見るのが早い。

所感

 自然言語も画像として扱おうというのは正しい方向性だと思っている。

 僕は人工知能開発そのものを、やや認知科学の構成論的アプローチとして捉えているところがあり(cf. 谷口 忠大『心を知るための人工知能: 認知科学としての記号創発ロボティクス (越境する認知科学)』)、そういう視点から見ると「トークナイザで予め文字列をトークン化しておく」というのはややもどかしい。人間が得られるような入力(画像・音声・触感等々)から、記号を見出す、分節するということこそをやってほしいじゃないか。

 1年ほど前に自分が

でやりたかったことにも少し近い。上の記事でやっていたのはごく単純な数式だけど、これは言語コーパスを引っ張ってくるのが面倒だったからとか、数式とかの方がビジュアルに処理する恩恵が大きそうだと思ったからそうしただけで、言語も同じだとは思う。

 あと日本語の漢字だと部首だのつくりだのといった面で、見た目が同じだったら意味や音が似る場合が多々あったりするので、そういう意味でもビジュアルな面を完全に捨てているのは単純に性能的な意味でも阻害要因になるのではないかという気もする。

 ここからは論文の『5. Discussion and limitations』で語られていた課題面について。

課題1 : レイアウトの考慮

 今回の提案手法は文字列をかなり素朴にレンダリングした画像を突っ込んでいるだけなので、Webページみたいに(人間が)見やすいレイアウトでのスクリーンショットとか与えても(そのままでは)対応はできないらしい。

 まぁこのあたりはどうにでもなりそうな気がする。具体的にどうするかというのはわからないけど。

課題2 : 出力

 出力側をどうするかは問題。論文の手法では基本的に文生成はできず、クラス分類や表現の比較というのがメインになっている。せっかく入力側でトークナイザから解放されたのだから、出力側で結局トークナイザを入れるようではなにをやっているのかわからない。

 パッと思いつくところでは

  • 画像として出させる
  • キーボード(+マウス)を出力デバイスとして与える

どちらかくらいしか思い浮かばない。ただこれどうやって学習するのか? 画像として出させる方はまぁ二乗誤差なりなんなりでやっていくしかないんだろうけど、到底まともに学習できる気がしない。キーボード使わせる方は、ある程度の模倣学習 + 強化学習みたいなことで解になり得るのだろうか。全く自信なし。

課題3 : 文字数

 これは『5. Discussion and limitations』ではなく『4.1. Training details and models』で書かれていたことだけど、

A sequence length of 196 is used, as this matches the number of visual text “tokens” CLIPPO can process with patch size 16 has at 224px resolution (which we use throughout unless noted otherwise).

とあり、系列長が高々196だというのはちょっと物足りない気はする。224pxで文字が読める程度の大きさでレンダリングしなければいけないとなるとこのくらいにならざるを得ないというのはわかるが。

 ある意味では課題1と似た問題かもしれず、自由レイアウトであるとか、長い文章を続けて読んでいくとかであるとか、そういうことにどう対処するかということになるのかもしれない。

 個人的な考えとしては、眼球運動的にTransformerへ与える224pxの注目点を徐々に動かしていく仕組みが必要なのかもしれないと思っている。これをまた学習で獲得させようとするととんでもない難易度になってしまうが……。