今週の論文紹介 〜気になったものをジャンル問わず〜

この記事は、弊社のリサーチ部門での調査結果の一部を公開する形式の記事です。

今回の記事は、前回の形式とは違い、いくつかの論文をざっと紹介するような形式で書きます。内部のアルゴリズムを書いてしまうと話が長くなる癖があるので、今回はその論文が何を行ったか、についてメインに書いていきます。

こんにちは。
クロスコンパス・インテリジェンスの研究員、芦原です。

最近読んでいていくつか気になった論文をピックアップして、紹介したいと思います。

今回紹介する論文の一覧はこちらです。

  1. Man is to Computer Programmer as Woman is to Homemaker?Debiasing Word Embeddings
  2. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
  3. pix2code: Generating Code from a Graphical User Interface Screenshot
  4. A filter based approach for inbetweening
  5. CAN: Creative Adversarial Networks Generating “Art” by Learning About Styles and Deviating from Style Norms

以上になります。

 

Man is to Computer Programmer as Woman is to Homemaker?Debiasing Word Embeddings

この論文が投稿される以前の話題ですが、とあるエンジンが、画像分類問題にて、ユーザーに不適切な結果を出力したとして謝罪したニュースがあったと思います。

今や画像データ以外にも、単語データ、音声データ、様々なデータがDeep Learningを使ったモデルに入力され、成果を出しているところですが、できればあのニュースのような問題が起きて欲しくないと思います。

この論文では、単語空間における性差別の存在ができるだけ緩和されるような方法を提唱しています。

タイトルにもある通り、この論文では「男 – 女」というベクトルの引き算が

「コンピュータプログラマ -  主婦」という引き算の結果に似てしまうと、まるで女性がプログラマになるのがおかしいような結果になってしまうので、そういった問題はできるだけ避けて表現空間を獲得しようという試みです。

実際に、debiasingという方法論を使うのですが、確かに、ソフトボールの周りにウェイトレスや、フットボールの周りにビジネスマンがあったような状態(図左側)から、after debiasingからは、しっかりソフトボール、フットボールに関連する言葉になっています。

この結果を出す為には、そもそもgender bias に関連する語句を見つけることが必要ですが、論文中にはそちらについても書かれていましたので、丁寧なので読む価値ありだと思います。

 

PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

画像からは掴むことが難しい情報の一つに、立体的な情報がありますが、この論文では、立体的な情報を使いながら、分類、セグメンテーションなどを行う方法について述べています。元々、先駆者のPointNet[1] がありますが、今回はPointNetをより階層的に扱うような形で、よりきめ細やかなデータに使用できるようにしているようです。

PointNet++の名前にもある通り、データとしてはpoint cloudとして表現されたものを考えるのですが、個人的にはこのpoint cloudの考え方は重要だと思っています。

※左側が実際の画像で、右側がpoint cloudで表現された情報

point cloudで表されたデータは、データそのものの変化量をpointの増減で表現できると考えているので、使い勝手がいいような気がしています。

これがPointNet++のモデル図になるのですが、point cloudを扱っていくモデルとしては汎用的な印象を受けます。ImageNetで学習されたVGG16や、AlexNetがよくプレトレーニングモデルとして使われるように、今後しばらくの間、point cloudを使うときは、PointNet++をPrinceton ModelNetで学習させた重みが重宝されるのではないかなんて妄想をしています。



結果としては、point cloud を使用した中では、3D データの分類問題で約92%の精度である。ということになりますが(どこぞの論文では同じタスクでアンサンブル使って95%ぐらい叩き出していた気がしますが・・・)、入力形式がpoint cloud を入力として扱われるモデルはまだ多くないので、これからのさらなるAccuracyの向上に期待がかかります。

 

pix2code: Generating Code from a Graphical User Interface Screenshot

こんなUIを設計したい、なんて思いながら、GUIの候補画像を作っておいたら、その画像から読み取った情報で勝手にコードにして、勝手にコンパイルしてくれて、勝手にGUIの画面を設計してくれたらどれだけ嬉しいでしょうか。

この論文では、pix2codeの名前の通り、pictureからcodeを作成してくれるモデルであり、LSTMと、CNNを織り交ぜた方法論で実現しています。

先に結果を見ると、GroundTruthとモデルがGenerateしたGUIが、かなり近いことがわかります。細かいところは間違っていますが、これならソースを少しいじるだけで、かなり簡単に直せます。GUIのパクリ合戦が起きそうなレベルですね。

学習時にモデル自体に入力するデータは2つで、GUIのイメージと、それに伴うコードを入力します。

そして、サンプリング時には、GUIの画像のみから、コードを生成します。仕組み自体はそこまで複雑ではありませんが、モデル図を見ると、CNNに比べてLSTMの学習がそれなりにハードな印象です。

そしてこのpix2code、結果を実際に出力する動画があります。
見てみるとかなりのスピードで出力までいっているので、教育用にサンプルを大量に作っておくとか、そういうのにも使えるかもしれません。

 

A filter based approach for inbetweening

アニメーションにおけるinbetweeningが自動で行われると、絵を書く枚数が減って嬉しいだろうな、というのは私のようなアニメのトーシローでも分かることですが、実現するにはなかなか難しいものだと感じていました。

この論文ではまさにinbetweeningについての実験がなされているのですが、以前私が聞いたことあるのは、トポロジー変換的な内容だったので、Deep Learningでやられているのがもう出ているのかなんて思うと、この分野の速さを感じます。

中身としては、Simo-Serraらの[2]を参考にしつつ、2枚の線画から中割りの1枚の線画を出力するモデルということになるのですが、中割りを行った結果の動画がかなり綺麗だったので、こんなことができるんだと感心していました。ただし、中割りといっても、特定の動作開始から特定の動作終了までの長期間のフレームをつなげるといったことを試みているわけではなく、あくまでフレーム補間に近い、ぬるぬる動く的な効果(動画に使う絵の枚数を増やす)ことに貢献しているという印象です。

ただ、今回この論文を紹介するに至った理由の一つが、学習時間が2週間超という超大作なところです。動画を作成するに至るまで、ここまで時間がかかるとなると、学習の途中経過とかを見ながら、修正しながら、なんて考えると、この結果を出すまで大変だったんじゃないかなんて、想像してしまいます。

 

CAN: Creative Adversarial Networks Generating “Art” by Learning About Styles and Deviating from Style Norms

Neural Style Transfer[3]が出た頃、沢山の方々が絵画風の何かを作っていました。私もその一人でした。

[3]以降、1枚作るのにかかる時間が格段に減った、動画に対応してきた、より詳細な画像が作れるようになったなど、モデルも発展してきました。

今回紹介するCANでは、GANをベースに芸術的な絵を生成する手法が提案されています。
論文中では、Artを作るためによりクリエイティブに、ということが言われています。クリエイティブさは芸術に関してもトーシローな筆者にはわからないので、説明できませんが

従来より大きく違うのは、絵に対する印象派、キュビズム、とか、Artistic Stylesをクラスとして、トレーニング用データがクラス分けされているところです。そして、このクラス分けの情報が実際にLossに使われています。

モデル図を見ると、Styleに関するLossがGeneratorにもDiscriminatorにも入っている形式になります。

確かに、通常のGAN(DCGAN)で行うよりは、Artっぽいものが作られているような気もしますが、Styleに情報が加わるだけでこうなるとは結構驚きです。

 

 

いかがでしたでしょうか。

今回は、詳細なアルゴリズムには触れず、
「こういう結果なら、論文の中身を読んでみようか」
と思う程度の紹介にとどめておりますが、
前回の記事のような形式で、アルゴリズムの仕組みをもう少し詳しく紹介していく記事も随時更新していく予定ですので、ぜひ今後とも読んでいただけたらと思います。

 

最後に、宣伝になりますが、弊社では、新しい論文を読みながら、知識として蓄えていき、知識のアウトプットを一緒に行っていく方を募集しています。
https://www.wantedly.com/projects/105313
特に、文系理系は問わず、論文を読み、調査する力も含めて付けていけると思いますので、ぜひご応募ください。

また、弊社では中途採用も積極的に行っております。
https://www.wantedly.com/projects/103913
皆様のご応募お待ちしております。

 

参考資料・URL
[1]C. R. Qi, H. Su, K. Mo, and L. J. Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation.  International Joint Conference on Neural Networks(IJCNN),10.1109, 2016
[2]Edgar Simo-Serra, Satoshi Iizuka, Kazuma Sasaki, and Hiroshi Ishikawa. Learning to Simplify: Fully Convolutional Networks for Rough Sketch Cleanup.ACM Transactions on Graphics (SIGGRAPH), 35(4), 2016.
[3]L. A. Gatys, A. S. Ecker, and M. Bethge. Image style transfer using convolutional neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recogni-tion(CVPR), pages 2414–2423, 2016.