original image: © Cisek Ciesielski - Fotolia.com
できそうなことはだいたいできる画像生成AI、pix2pixの汎用性に驚く
pix2pix is an ultimate latest AI toy
2017.01.04
Updated by Ryo Shimizu on January 4, 2017, 14:08 pm JST
original image: © Cisek Ciesielski - Fotolia.com
pix2pix is an ultimate latest AI toy
2017.01.04
Updated by Ryo Shimizu on January 4, 2017, 14:08 pm JST
昨年末に発表された、ペア画像の敵対生成学習を行うpix2pixがあまりにも面白く、年末はずっとpix2pixをいじっていました。
pix2pixとはなにかというと、カリフォルニア大学バークレー校で開発されたAI教育用アルゴリズムで、画像を生成する生成AIと、生成された画像が偽画像かどうか判定する判定AIの2つを戦わせて学習させるというものです。
それまでも敵対生成学習(GAN)という手法はよく知られていて、昨年は敵対生成学習ブームと言ってもいいくらい盛んでした。
そのなかでも抜群の汎用性を誇るのが、この敵対生成学習です。
何が面白いのかというと、これは2つの画像のペアをひたすら見せるだけで、AIが勝手に2つの画像の関係性を把握して、任意の画像からもう一方の画像を作り出すことができるという点です。
(Image-to-Image Translation with Conditional Adversarial Networksより引用)
たとえば、地図と航空写真のセットを学習させると、任意の地図から航空写真を作り出すことができます。
もちろん航空写真から地図を作り出すこともできます。
ちょっとよくわからないでしょうか。
(Image-to-Image Translation with Conditional Adversarial Networksより引用)
また、建物の写真と建物のどの部分がどんなパーツなのか、窓なのか壁なのか手すりなのかガレージなのか、という情報で色分けしたイメージをペアで学習させると、色分けしたイメージから写真を作り出すことができます(上の図のoutputが生成された写真で、Ground truthというのがもとの写真です)。
(Image-to-Image Translation with Conditional Adversarial Networksより引用)
そんなバカなとは思うのですが、さらには鞄の輪郭から色を塗る、なんていうこともできます。
要するに画像のペアでできそうなことはだいたいできるというわけです。
なぜこんなことが可能なのか、まあ今のAIは人間にできそうな作業はだいたいできると言われているので、細かいことを考えても仕方ないのですが、ここまで示された例は基本的にアリモノというか、わりと画像と画像が一対一で対応してるケースが多いので、もっとどんなことができるのか色々やってみました。
たとえば、ボケた写真をもとに戻せるか、ボケた状態の写真と元の写真とのペアを学習させてみると・・・
なんとなくできました。(素材はぱくたそさんから)
学習回数をもっと重ねればもっとうまくいくでしょう。
当然、白黒からカラーもできます。
それではつまらないので、もう思いっきり情報を減らしてみます。
左のラクガキから右のような写真が生成できてしまいます。
よくみると、左右で瞳の位置が違うので違和感を感じると思いますが、それはもとの学習データに瞳の位置という情報がないためです。
ではわざとデータを歪ませてみて、それから正しいデータを生成できるかやってみます。
するとたしかに正しいデータに矯正されます。
これは何に使えるのかというと、たとえば下手な絵を描きますよね。
それをAIがいい感じに修正してくれる可能性があります。
ちなみに写真のように複雑なものでなくても、グラフのようなものでも生成できます。
これは米ドルと日本円の為替レートの日々の差分をグラフ化したもので、前半分から後ろ半分を想像して描かせています。かなり学習を重ねたのですがうまく予測できてるとはいえませんね。
要するに人間でも不可能に近いものはAIにも不可能なのです。
僕に予測しろといわれても無理です。
少しイジワルなこともしてみました。
Amazonの商品写真をノンジャンルで集めて学習させると、なんとぜんぜん上手くいきません。これは面白いなあと思いましたね。
つまり、カテゴリが絞りきれてないと、輪郭から色を塗る場合であっても、それが布なのかプラスチックなのかAIも判断が付かないということになります。
ここらへんが実に面白いところです。
鞄がうまくいくのは、鞄というカテゴリに絞っているからですね。
こういう実験を繰り返すと、それぞれのAIの得意と不得意が分かってきます。
AIはまだまだ未知の部分が多く、とにかくいろいろやらないと何ができて何ができないのかということが絞りきれません。
たとえば、もしかしたら全く同じイジワルなデータセットであっても、層が深いとかカテゴリも情報として与えて学習させるとか、ちょっとした工夫でもしかしたら劇的に良くなるのかもしれません。層の構造も「これが正解」というものがあまりないので、手探りで考えている感じです。
一昨年はMicrosoftのResNetが開発され、150層というかなり深い層のニューラルネットワークが高性能になることがわかりましたが、昨年は深さだけでなく幅も重要であることが様々な研究から指摘されました。
どんどん人間に近づいている感じがしますね。
今年はpix2pixをベースとした研究も増えていくのではないかと思います。
なんせ、研究といってもパラメータを変えたり学習素材を変えたりするだけなので、非常にお手軽ですね。ただし計算資源は膨大なものが必要です。
それにしても、pix2pixのように任意の画像のペアから任意の画像を推定・生成できるようになるだけで、いろいろと応用範囲が広がりそうです。
その手の研究は研究者の方々が一所懸命やって下さっているので、我々ビジネスマンはむしろ「こんなことができるようになったら、これが一体全体何に使えるのか?」ということを考えるべきフェーズです。
今回、筆者が試したのは基本的にはデータを自動生成するというアプローチです。
もとになるデータはテレビやhuluなどで視聴したドラマの画像(著作権法47条の7項でこうした目的の場合は著作物の複製加工が認められています。念のため)や、Amazonで拾ってこれる商品画像がメインです。
しかし、AIが学習するためにデータを人海戦術で作り出すことも検討できます。
少し前まではAIを十分実用的なレベルまで鍛えるには膨大なデータが必要だというのが常識だったのですが、pix2pixの場合、なんと数百枚で学習できてしまいます。これにも非常に驚きました。
数百枚程度だと、自分で作ってもそんなに膨大になりません。いや、貴重な時間を潰すわけですから自分で作るよりもアルバイトにやらせたいところですが、むしろどちらかというとアイデアの方が足りなくてAIが「待ち」に入っている、そんな状態です。
我々はいま、これまで想像もできなかったようなすさまじい道具の出現を体験していることになります。
私が本当に驚異を感じているのは、昨年の今頃は「画像の中のどの部分がなんであるか推定するのはとても時間がかかるから工夫しよう」というトレンドでした。
ところがpix2pixは、その難しい課題をあっさりとクリアしてしまうどころか、画像そのものの生成まで行ってしまいます。
一年前に大変だ、と思っていたことが、一年も経たずに「あ、やってみたらできちゃったね」というレベルまで来てるのです。これはえらいことになりました。しかもものすごい速度で、できちゃうのです。
しかも、生成ができるということは、その過程で画像のより深い特徴も掴んでいるということになると思います。敵対生成学習に可能性があることは前から分かっていましたが、このレベルまでやってくるともはや人知を超えつつあります。
もちろん、まだまだ精度的に不安定だったり、ノイズが乗ったりするんですけど、それでも、やっぱりちょっと、びっくりですね。
来年の今頃は私達は何に驚いているのでしょうか。
しかしこんなに技術的興奮と驚きに満ちた発見のさなかにこうした面白いことを仕事にできているという幸運に、今は感謝するしかありません。
筆者の会社、UEIではAIを仕事にしてみたいエンジニアを募集中です。
最近AI関連のコンサルティングのお仕事もかなり増えてきて、人がいくらいても足りないという状態です。
転職、お仕事のご相談お待ちしております。
では本年もよろしくお願いいたします。
おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)
登録はこちら新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。