CHI 2018とPacificVis 2018

Fabrice Matulic

2018-05-18 13:47:43

PFNでヒューマン・コンピュータ・インタラクション(HCI)を研究するリサーチャーのファブリスです。

現在ディープ・ニューラル・ネットワーク(DNN)を基にした自動化システムは急速に進化していますが、その過程に伴う人的要因を軽視しない「Human in the loop(人間参加型)」と呼ばれる考え方が重要です。この点において、HCI研究のコミュニティは、今までにないユーザー中心のアプリケーションを作るツールとして機械学習の応用技術を活用するだけでなく、この複雑なツールの導入・使用・管理を促進する手法を提供するという点で貢献できる良い状況にあります。また、情報可視化(InfoVis)コミュニティが、DNNの内部構造を理解する上で役立つユーザー・インターフェースや可視化手法を提案し、DNNのブラックボックス解明に光明が見え始めています。PFNでは、最新のHCIならびにInfoVis/Visual Analytics(視覚分析)分野の研究を常に追い求めるだけでなく、これらの分野において実際に貢献する事を目指しています。

PacificVis

アジア太平洋地域の第11回IEEE可視化シンポジウム (PacificVis 2018)が4月に神戸で開催され、PFNはスポンサーとして参加しました。初日には清華大学のShixia Liu教授が「Explainable Machine Learning(説明可能な機械学習)」と題した基調講演を行った他、IEEE VIS’17での最優秀論文がTensorFlow向け視覚解析システムに関する論文であったのに続き、今回も「GANViz: A Visual Analytics Approach to Understand the Adversarial Game」が最優秀論文賞に選ばれるなど、特に機械学習分野の成果が際立つシンポジウムとなりましたが、いずれも説明可能なモデルやインターフェースに基づく機械学習技術を作り出すという試み「Explainable Artificial Intelligence (XAI: 説明可能な人工知能)」と密接に関連しています。これは、自動化されたシステムが、ある特定の判断や結論に至った経緯や根拠を理解・解釈しようとする取り組みですが、これらのアルゴリズムやツールが果たしてEUの新たな一般データ保護規則(GDPR)における「説明を求める権利」に対応するに十分であるかは今後の課題です。

CHI

CHI2018

ACM Conference on Human Factors in Computing Systems (CHI) はヒューマン・コンピュータ・インタラクション分野における世界最高峰の国際会議です。今年はカナダのモントリオールで開催され、参加者は3300名を超えました。同国のジャスティン・トルドー首相も書簡で歓迎の意を表しています

HCI研究における機械学習の代表的な適用法として、複雑なセンサーデータからパターンを検出あるいは認識する事が挙げられます。これにより、未処理のタッチデータから手の平の接触を検知し、ペン先動作と書く音を利用して手書き文字を認識するなどの斬新なインタラクション技術を実現しています。深層学習のフレームワークが 広く利用可能になり、HCIのリサーチャーはこの様な新たなツールを組み合わせる事で、既存技術の認識性能を向上させたり、全く新たな技術を生み出したりしています。これらは既存の手法では非効率であったり、実現すること自体が困難でした。後者の良い例として、生成ネットが可能にしたシステムがあります。DeepWritingはタイプセットされたテキストから筆跡を作成する深層生成モデルで、書体を真似たり美化したりできます。IllumiRoom, から発想を得たExtVisionは、実際のコンテンツを使わずに、conditional adversarial nets (条件付き敵対的ネット)で周辺画像を自動生成します。

Aksan, E., Pece, F. and Hilliges, O. DeepWriting: Making Digital Ink Editable via Deep Generative Modeling. Code made available on Github.

HCI研究における機械学習の上記以外の応用分野としては、インタラクション予測と感情推測への応用が増えています。前者のインタラクション予測においては、DNNがどのようにして 垂直メニューの選択を使うインタラクション作業のヒューマン・パフォーマンスを予測できるのかについて、Li氏、Bengio (Samy)氏、Bailly氏が行った研究があります。感情と状態の認識については、MITの Lex Fridman 氏による入門講座 Deep learning for understanding the human(人間への理解を深める深層学習)に加えて、 動画の中の瞳孔の動き と EEG(脳波信号)  から認知負荷を推定する研究論文がそれぞれ発表されました。センサー付きのモバイル機器やウェアラブル機器が普及し続ける中で、人間をよりよく理解し、人間の動きを予測する「スマートな」システムが、良くも悪くも、今後次々に登場するでしょう。

CHIで は可視化関連の発表も多く、今年も例外ではありませんでした。特に、ビッグデータとDNNの理解に向けた視覚解析に関連が深かったのは、Cavallo氏 とDemiralp氏の研究でした。彼らは、高次元データの探査分析を向上させるヴィジュアル・インタラクション・フレームワークを作り出していますが、減次元グラフを探索し縮小データを修正する事が初期データセットにどのような影響を及ぼすかを観測できるツールを利用しています。MNIST および QuickDraw上で自動符号化器を利用する事例が特に興味深く、ユーザーが入力画像サンプルに直接描いて結果がどのように変わることを確認できます。

Cavallo M, Demiralp Ç. A Visual Interaction Framework for Dimensionality Reduction Based Data Exploration.

また、DuetDrawについても忘れずに触れておきたいと思います。これは、ユーザーとAIの共同作業を可能にするプロトタイプで、PFNのPaintsChainerを使って絵を描きます!

Multiray: Multi-Finger Raycasting for Large Displays

今年のCHIで発表した私自身の研究は機械学習関連ではなく、指から発射する複数の光線を利用して、離れた画面表示とインタラクションするというものでした。これはウォータールー大学在籍時に行ったDan Vogel氏との共同研究ですが、この度Honourable Mentionとして褒状をいただきました。この研究では、指一本のレイキャスティングを複数の指を使った多重光線へと高度化するという発想に基づき、スクリーン上に投影された点を指で操り様々な幾何学形状を形成する事で、インタラクションのボキャブラリを増やしています。


Matulic F, Vogel D. Multiray: Multi-Finger Raycasting for Large Displays

考察

今のところ、DNNのブラックボックスを開けて解明しようという取り組みは、可視化コミュニティにおいて最も盛んに行われていますが、これまで提案された多くのツールは可視化にフォーカスし、インタラクティブ性が限定的となっています。とりわけ入出力データを微調整して、これが中間層のニューロンにどのような作用を及ぼすかを理解するという点において乏しいです。そこでDNNの動的解析を支援するツールを作成し、モデルに対してインタラクティブな調整を施すことができるHCIリサーチャーの出番になります。さらに、機械学習の一連の処理において、データのラベル付け、モデル選択・統合、データの拡大・生成といった人間が関与するプロセスの改善にはHCIからのアプローチも必要です。このような側面を考慮した研究成果が今後CHIやHCIの関連学会でより多く公開される事が期待されます。

「人間中心のAI社会原則検討会議」に参加しました。

土井 裕介

2018-05-10 15:39:51

5/8に開催された内閣府主催の「人間中心のAI社会原則検討会議」に出席してきました。

土井と申します。普段は細々とネットワークの研究を行いつつクラスタ関係とりまとめをやっています。出身大学がinterdisciplinaryなところなので、いろいろな領域に首を突っ込んでいます。そのような活動の一環で、社内のslackにAIと社会に関して考えるチャネルを作り、PFNフェローの丸山を中心として何人かの興味あるメンバーとで、社会動向のウォッチングや、必要な意見表明[1]などをしています。例えば、2017年頭に「AI開発ガイドライン(仮称)」へのパブリックコメントをPFN名で提出しましたが、そのパブリックコメントの最初のドラフトは私が書いたものでした。

そんな中、弊社丸山が掲題の「人間中心のAI社会原則検討会議」にお誘いいただきました。ただ、丸山は残念ながらこの日に外せない終日の予定が入っており、代理で土井が参加してきました。参加にあたり、PFNの意見を事前に文書でまとめるようにしたほうが良いだろう、とのことで、「『人間中心のAI社会原則検討会議』に対する意見」[2]としてまとめ、会議に提出しました。あくまで参考資料としてではありますが会議で配布されたので、こちらでもご紹介させてください。

この文書は特に何か難しいことが書いてあるわけではなく、「人工知能」または「AI」と呼んだ時にそれが何を指し示すのかを明確にして議論しないといけない、という話と、ある前提で議論した内容を別の前提に適用するとおかしなことになりますよ、という当たり前の話が書いてあるものです。

PFNとして提出した文書には、世間で「AI」として議論されている内容は主として以下の3つに分類できるのではないか? としています。

  • A. いわゆる汎用人工知能
  • B. ネットワーク化された情報システム
  • C. 機械学習システム

AとCはみなさん何となく理解されるかもしれませんが、これらを混同しているような議論も多いです。ただ個人的には、案外「AI」の文脈でBの話をされる方が多いことに驚いています。例えば証券市場のFlash Crash(自動取引による証券取引の不安定化)を「AIがもたらす問題」として挙げる方がいます。実は、今回の会議の委員にもこういう考えの方がいらっしゃいました。ただ、いわゆる単純なフィードバック制御であっても発散してしまい問題になるケースがあるのと同様、これはソフトウェアによる自動化とこれにともなう高速化、およびその影響範囲を拡大するネットワーク化に起因する具体的な問題です。PFNとしては、こういった問題をわざわざ「AI」などというあいまいな単語を使って議論する必然性はないと考えています。

また、会議の中でタイミングがなく発言できなかった内容をひとつ。「AI」が主語になった議論は個人的にはとてもおかしな議論に見えています。[3]でも書きましたが、上のABCどの定義であっても「AI」の中核はソフトウェアとして実現されます。現実の世界に何かの影響を与えるためには例外なく人間が与えたハードウェア(ソフトウェアを実行させるコンピュータ、コンピュータに供給される電源、外界と作用するためのセンサ・アクチュエータ、等)が必要です。言い換えると、どんな場合であれ「AIの性質を持つソフトウェアを構成要素として持つ何らかのシステム」があってはじめて議論がスタートします。システムには、通常「AI」とはみなされない、様々な技術や安全装置が含まれていて、それらと外界との作用の総体でシステム全体が機能します。我々が考えるべきは、このシステム総体が、人類社会とどのように調和していくかではないでしょうか。個人的には、PFNが機械学習の本質を理解して新しい学習の仕組みを作るように、社会も機械学習やAIと呼ばれる技術・仕組みの性質や限界を理解して、きちんと使いこなす、つまり社会システムの構成要素として人間がAIを主体的に位置付けることが、あるべき「人間中心のAI社会」の姿なのではないかと思います。

今回議論していて「なるほど確かに」と思ったのは、本来AIというのは知能を機械で模倣することで知能を理解しようとする研究の営みあるいはその研究分野を指すことばであった、という点です。これを、特定の機能や製品のラベルに転用した結果、現在はあいまいな単語となってしまいました。ことばは本来他者とのコミュニケーションに用いるものである以上、あいまいな単語を用いた議論では精度が出ません。いくらAIという冠をつけると見栄えが良いからといって、このあいまいさに無自覚なままAIということばにふりまわされた議論を重ねても何も得られません。この機会を有意義な成果につなげるために、引き続き社内でも議論を深めていこうと考えていますし、また議論の立脚点となるべき事実についても情報発信を続けていこうと思います。

references
[1] 人工知能技術の健全な発展のために
[2] 「人間中心のAI社会原則検討会議」に対する意見
[3] ソフトウェアとしての人工知能に関する論点整理 信学技報, vol. 117, no. 471, SITE2017-75, pp. 209-212, 2018年3月.

NIPS’17 Adversarial Learning Competition に参戦しました

秋葉 拓哉
リサーチャー

2018-04-11 19:01:39

機械学習の国際学会 NIPS’17 に併設され Kaggle で開催されたコンテスト「NIPS’17 Adversarial Learning Competition」に PFN のメンバーで参加し、4 位入賞を果たすことができました。その結果、NIPS’17 に招待され発表を行い、手法についての論文も執筆し公開しました。ソースコードも公開しています。本記事では、具体的にどういった内容のコンテストだったかや、我々がどのようなアプローチで取り組み 4 位入賞を達成したのかについて紹介します。

 

Adversarial Example とは?

Adversarial example [1, 2, 3] は深層学習を実用化していく上での最も大きな課題の 1 つとして考えられている非常にホットな研究分野です。画像認識を例に取ると、元画像に対し人が気づかない程度の僅かな変更を加えるだけで、CNN による画像認識を大きく誤動作させることができることが知られています。

上の画像は adversarial example の例です(出典 [2])。左の元画像にはパンダが写っており、CNN もパンダであると正しく分類できています。真ん中に描かれているのは悪意を持って作られたノイズです。右の画像も、我々人間には一見して左のものと同じパンダの画像に見えます。しかし、実際にはノイズがわずかに重ねられており、右の画像を CNN に分類させると、パンダではなくテナガザルの画像であると非常に高い確度をもって誤判定してしまいます。

 

NIPS’17 Adversarial Learning Competition

今回開催された NIPS’17 Adversarial Learning Competition は、その名の通り、adversarial example に関するコンテストです。攻撃トラックと防御トラックの 2 種目を順番に説明します。

 

攻撃トラック

画像を入力として受け取り、悪意を持ってノイズを加え画像を adversarial example に変換し出力するプログラムを提出します。防御トラックに提出された画像分類器をどれだけ騙せるかが得点になります。具体的には、防御トラックに提出された全画像分類器に対するエラー率の平均がスコアになります。できるだけ強い adversarial example を作る手法を開発することが目的になります。

 

防御トラック

画像を入力として受け取り、分類結果を出力するプログラムを提出します。攻撃トラックに提出された全攻撃プログラムが生成した全画像に対する精度の平均がスコアになります。できるだけ adversarial example に騙されにくい画像分類器を作ることが目的になります。

 

ルール詳細

画像は複数用意されています。また、攻撃トラックのプログラムには実行時にパラメータ ε が渡され、ノイズの大きさは ε までにしなければなりません。具体的には、画像の各ピクセルの各 R, G, B の値を ε まで変更することが許されます。別の言い方をすると、ノイズの L∞ ノルムを ε 以下にする必要があります。攻撃トラックは non-targeted と targeted の 2 部門に分かれていますが、本記事では我々が参加した non-targeted 部門についてのみ紹介しています。詳しくは以下のコンテストの公式ページ [4, 5, 6] をご覧ください。

 

標準的な Adversarial Example の作り方

我々は攻撃トラックに参加しました。まずは、標準的な adversarial example の作り方について説明します。最も有名な手法である FGSM  (fast gradient sign method) [2] をはじめとする既存のほとんど全てのアプローチは、大まかに以下を行います。

  1. 画像分類器に対象画像を分類させる
  2. 誤差逆伝播を画像まで行い、画像に対する勾配を計算する
  3. 得られた勾配を用いて画像にノイズを加える

このステップを 1 度だけ行うか繰り返すか。誤差逆伝播に用いるロス関数をどのように定義するか。勾配をどのように用いて画像を更新するか。こういった部分が工夫され、強い adversarial example を生成する手法が開発されてきました。今回のコンテストでも、攻撃トラックに参加したほとんどのチームはこういったアプローチを用いました。

 

我々の手法について

概要

我々は現在主流となっている上述のアプローチと大きく異なる、「adversarial example を直接生成するニューラルネットワークを作る」というアプローチを取りました。

攻撃を行う際の処理は、ニューラルネットワークに画像を入れるだけです。出力された画像がそのまま adversarial example となります。

 

攻撃ネットワークの学習方法

このアプローチでのキモは、当然、このニューラルネットワークをどのように作るかという点になります。以下、我々が作る adversarial example を出力するニューラルネットワークを「攻撃ネットワーク」と呼びます。以下を 1 イテレーションとして、これを繰り返すことによって攻撃ネットワークを学習しました。

  1. 攻撃ネットワークによって adversarial example を生成する
  2. 既存の学習済み画像分類 CNN に生成した adversarial example を分類させる
  3. CNN 上で誤差逆伝播を行い adversarial example に対する勾配を計算する
  4. そこからさらに攻撃ネットワークで誤差逆伝播を行い、攻撃ネットワークを勾配を用いて更新する

攻撃ネットワークのアーキテクチャとしては fully convolutional なものを設計し用いました。なお、これと類似したアプローチは以下の論文 [7] で提案されています。

 

攻撃を強化するテクニック

より強い adversarial example を生成するために、攻撃ネットワークのアーキテクチャや学習方法の工夫を試み、multi-target training, multi-task training, gradient hint などのテクニックを開発しました。詳しくは論文をご覧ください。

 

データ並列とモデル並列を組み合わせた 128 GPU での分散学習

学習に非常に時間がかかってしまう点を解決し、攻撃ネットワークのアーキテクチャをより大規模にするため、ChainerMN [8] を用いて 128 GPUでの分散学習を行いました。特に、攻撃ネットワークの方が分類ネットワークよりも大規模なため GPU メモリの都合上バッチサイズを小さくしなければいけない点、上述の multi-target training により分類ネットワークはワーカー毎に異なるものを用いている点などを考慮し、標準的なデータ並列に加えて、ChainerMN の最新機能であるモデル並列機能を組み合わせて用い、効果的な並列化を実現しました。

 

生成された画像

我々のアプローチでは、手法だけでなく、生成された adversarial example も非常に個性的なものになりました。

左列が元画像、真ん中の列が生成された adversarial example、右の列が生成されたノイズ(元画像と adversarial example の差)です。以下の 2 つの特徴が見て取れます。

  • パンダの毛の質感のような細かい模様をキャンセルするノイズが生成されており、画像がのっぺりとしている。
  • ジグゾーパズルのような模様が付加されている。しかも、一様にではなく、元画像を上手く活用して効果的に模様を付加している。

この 2 つの特徴により、多くの画像分類器はこの adversarial example をジグゾーパズルとして分類してしまうようです。興味深いのが、我々は特にこのようなジグゾーパズル風の画像を生成するように学習を行ったわけではないという点です。画像分類器を騙す画像を作るという目的関数のもと攻撃ネットワークの学習を行ったところ、攻撃ネットワークが自動的にこのようなジグゾーパズル風の画像を生成することが効果的であると学習したことになります。

 

結果について

我々の最終順位は約 100 チーム中 4 位となりました。優勝を目指し取り組んでいただけあり非常に残念ではありますが、4 位までが入賞とされ、NIPS’17 のワークショップに招待され発表を行いました。

また、コンテスト主催者の方々のお誘いにより、共著でコンテストに関する論文を執筆しました。Ian Goodfellow や Samy Bengio など、業界で知らない人の居ないビッグネームと一緒に論文を出す経験ができました [9]。また、ソースコードも GitHub にて公開しました [10]。

  • [9] Alexey Kurakin, Ian Goodfellow, Samy Bengio, Yinpeng Dong, Fangzhou Liao, Ming Liang, Tianyu Pang, Jun Zhu, Xiaolin Hu, Cihang Xie, Jianyu Wang, Zhishuai Zhang, Zhou Ren, Alan Yuille, Sangxia Huang, Yao Zhao, Yuzhe Zhao, Zhonglin Han, Junjiajia Long, Yerkebulan Berdibekov, Takuya Akiba, Seiya Tokui, Motoki Abe. Adversarial Attacks and Defences Competition. CoRR, abs/1804.00097, 2018.
  • [10] pfnet-research/nips17-adversarial-attack: Submission to Kaggle NIPS’17 competition on adversarial examples (non-targeted adversarial attack track) : https://github.com/pfnet-research/nips17-adversarial-attack

我々は結果こそ 4 位だったものの、アプローチが大きく異ることに起因して実行時間の性質が他のチームと全く違うため、コンテスト終了前から他の参加者の注目を集めていました。下図が上位チームのスコアと実行時間の表になります。我々のチームだけ、実行時間が桁違いに短いことがわかります。これは、我々の手法は攻撃時に前向き計算のみを行うので計算時間が短いのに対し、他のチームはほぼ全て画像に対する勾配を用いる方法を使っており前向き計算と後ろ向き計算を繰り返していたためです。

また、ある参加者によって公開された PageRank 風の解析によると、我々のチームがトップのスコアとなりました。これは、我々の攻撃が、特に上位の防御チームに対して効果的だったことを示唆しています。他と傾向が異なる攻撃であったため防御が難しかったのではないかと思います。なお、優勝チームが手法を解説した論文 [11] はコンピュータビジョンの国際学会 CVPR’18 に採択され spotlight セッションにて発表予定とのことです。

 

終わりに

このコンテストへの参加は、会社の 20% プロジェクトとしてスタートしました。その後、軌道に乗ってきたため、優勝を目指して本腰を据えて取り組みたいと考え調整を行い、終盤は業務時間のほぼ 100% をこのコンテストに使いました。PFN では、他にも Amazon Picking Challenge や IT 創薬コンテストなどのコンテストに会社として参加してきており、こういったコンテストへの挑戦を推奨する雰囲気が有ります。私はこういったコンテストへの参加が大好きなので、今後も社内の課題と関連を持つコンテストを上手く選んで定期的にこういった活動を続けていきたいと考えています。また、社外のコンテストに限らず、社内でも精度や速度をチューニングするタスクが重要な場所で出て来ることが少なくなく、こういったコンテストで養われる能力が活用できる場があります。

PFN では、こういった領域や活動に興味を持ち一緒に取り組んでくれるメンバーをエンジニア・リサーチャー及び夏季インターンとして募集しています。夏季インターンの募集は 4/30 締切ですので、お忘れなきようお願いします。

異常検知ナイトで講演してきました

Tomoki Komatsu

2018-03-06 15:17:53

みなさん こんにちは!
2/14にDeep Learning Lab異常検知ナイトというイベントでPreferred Networksの比戸、中郷、小松が講演してきました。

異常検知というニッチなテーマでしたが、300人以上に聴講していただきました。

この講演は3パートに分かれていて、基本的な手法からディープラーニングの応用まで一通り話しています。

資料は、比戸パートがこちら、小松と中郷パートがこちらです。

また、発表当日の動画はこちらになります。(PFNパートは5:00~です)

異常検知入門(比戸)

Deep Learning Lab 異常検知入門 from Shohei Hido

スライドにもある通り、「データがあるところに異常あり」で、異常検知には様々なアプリケーションが想定されます。

では、そもそも異常とはなんでしょうか?というのが、このパートのメインテーマです。

異常検知には、3つの種類の問題があります。

  • 外れ値検知
  • 変化点検知
  • 異常状態検出

これらがどのような問題かを解説し、代表的なアプローチを紹介しました。

後半では「データサイエンティストあるある in 異常検知」を紹介し、異常検知の大変さ、奥深さについて説明しました。

異常検知ハンズオン(中郷)

DLLab 異常検知ナイト 資料 20180214 from Kosuke Nakago

このパートは外れ値検出の代表的な手法を、scikit-learnを使って実際にデモを行いました。
解説したアルゴリズムは、以下の5つです。

  • Kearnel Density Estimation
  • Gaussian Mixuture Model
  • Local Outlier Factor
  • Isolation Forest
  • One Class SVM

2つの正規分布から生成した正常データと、一様分布から生成した異常データに対して、これらの手法を適用しました。
コードは資料に書かれているので、すぐに試すことができます。
どのアルゴリズムも異常検知できていますが、分類平面に手法の個性が見られて面白いですよ!

以下の画像は、それぞれの手法の分類平面です。

時系列データのリアルタイム異常検知(小松)

最後のパートでは、時系列データに異常状態検出手法を適用するデモを行いました。

発表の分かりやすさのために、このパートでも人工データを使って実験を行いました。

早速ですが、青い波形は正常、赤い波形は異常データです。

正常データは、2つの正弦波とガウスノイズを合成して作られています。

みなさんどこか異常か分かりますか?

少なくとも私はいきなりこの波形を見せられてもすぐに気が付く自信はありません!

このパートでは、このように定常動作が決まっているような時系列データに対して異常検知を行っていきます。

時系列データの異常検知の代表的な手法は、自己回帰モデルを使った手法です。

これは線形回帰などで次の1点を予測し、予測が外れたら異常とするものです。

本発表では、この予測モデルをCNNにしてデモを行いました。

先ほどの例に対して異常検知をした結果はこちらになります。

実は異常データは、含まれる正弦波の周波数が違っていたんですね。

下の青いグラフが異常度なのですが、異常が起きているところで異常度が上がっていることが分かります。

 

このイベントが終わった後に、多くの方から質問をいただけました!

異常検知の関心と需要がますます高まっていることを感じます。

それではみなさん、よい異常検知ライフを!

 

「コンピューターサイエンスのすべての分野に精通していること」という応募資格に込めた想い

Toru Nishikawa

2018-02-27 16:00:55

※PFNの募集要項は、本ブログの内容をふまえ、適切に意図が伝わるよう一部更新しました


PFN代表の西川です。

今回は、SNS上でもたびたび話題(炎上?)になっているPFNの応募資格について、改めてご紹介したいと思います。
PFNの採用募集ページに書かれたリサーチャーの条件には、「コンピュータサイエンスのすべての分野に精通していること」という一文があります。この条件は、PFIの時から、リサーチャーの応募資格として常に掲げてきました。

その背景にある想いは、コンピュータサイエンスの研究をする上では、一つの分野だけでなく、幅広い分野について深い知見を有することが極めて重要である、ということです。たとえば、データベースの研究をする上では、トランザクション処理の理論や関係代数について詳しく知っているだけではなく、データベースを動かすコンピュータアーキテクチャ、ストレージ、また、今では分散データベースが一般的になってきているので、コンピュータネットワークについての知見も持っていることが必要不可欠です。深層学習を研究する上では、いまや、一台のコンピュータを使って実現するだけでは競争力が持てず、効率の良い並列処理が必須です。フレームワークを作る上では、コンピュータアーキテクチャや言語処理系の仕組みを理解していることが不可欠です。ドメイン特化した言語を作るような場面では、プログラミング言語理論についての理解がなければ、建増し建築のような言語が簡単にできてしまいます。強化学習においては、シミュレーションや、レンダリングの技術を洗練させていくことも重要です。

このように、一つの分野を知っているだけではもはや強みを出すことはできない時代になってきています。どのような分野と分野を融合したら新しい技術が生み出されるのか、最初から予見するのは難しいことです。私たちには、最先端の技術を切り拓いていくミッションがあります。そのために、すべての分野へ精通するべく、技術を追求していくことが極めて重要だと考えています。

精通という日本語は、その分野について広い知識や深い理解を持つことを示しています。必ずしも、その分野のトップカンファレンスに論文を出せるということを示しているわけではありません(そのためには、知識や理解だけでなく、新しい研究をするという重要な能力が必要になります。そして、そのような能力を身につけていくことも重要だと思います)。また、すべてを知り尽くしているということを表しているわけでもありません。むしろ、すべてのことを知り尽くしていると言い切れる人は、サイエンティストではないと思います。コンピュータサイエンスは今まさに急速に発展している分野であり、その進化を常に追い求めていくことは、極めて重要な姿勢だと考えています。

時にはSNSなどで「コンピュータサイエンスのすべての分野に」という部分が、誤解されたり、面白おかしく茶化されたりするようなことも散見されますが、この応募資格に込めたメッセージは、依然としてPFNの文化を形成する上では重要なことだと思っており、変えるつもりはありません。しかし、この応募資格について、誤解を生まないような表現を新たに考えていくことも必要だと考えています。

この10年間、コンピュータサイエンスの領域も急速に広がってきています。この流れはさらに加速するでしょう。また、コンピュータサイエンスの枠にとどまらず、様々な分野を融合することによって、新しい研究分野もできてくるでしょう。ですので、次のような要素を加味して考える必要があると思います。

  • 現時点でのコンピュータサイエンスのすべての分野に詳しいということよりも(もちろん広い分野を知っていることは必要ですが)、これから生まれてくる新しい分野、コンピュータサイエンスの発展の動きを吸収することのほうが、今後は重要になることを考え、現時点での知識よりも、学ぶ意欲を重要視します
  • コンピュータサイエンスだけでなく、ソフトウェア工学、ライフサイエンス、機械工学など、他の分野についても理解を深めていくという姿勢を評価します
  • 新しい技術の組み合わせによるイノベーションをおこすため、人工知能分野の専門家だけでなく、多様な専門性を持つメンバーを歓迎します


これまでは、この条件は、リサーチャーのみに適用していました。しかしPFNでは、リサーチャーもエンジニアも、分け隔てなく、一丸となって、新しい技術を切り拓いていくことが重要だと考えています。リサーチャーもエンジニアリング的な素養が必要ですし、エンジニアも研究について理解をしていく必要があります。ですので、リサーチャー・エンジニア関係なく、これを応募資格にしようと考えています。

 

また私は、大切な、すべてのPFNのメンバーが、新しい技術を切り拓くために全力を尽くせる環境を作っていくことも重要だと考えており、それは今後も継続的かつ積極的に取り組んでいきます。

 

PFNでは、多様な専門分野を持った人材を募集しています。興味を持ってくださった方は、ぜひご応募ください。
https://www.preferred-networks.jp/ja/job

コミックマーケット93 参加レポート

Taizan Yonetsuji

2018-02-06 11:33:30

コミックマーケット93

PFNでは、2017年12月29日から31日まで、東京ビッグサイトで開催されたコミックマーケット93に我々が開発しているPaintsChainerの企業ブースとして出展してまいりました。

年末にも関わらず、非常に多くの方々にご来展頂き、3日間で1000人を超える方に、プロジェクションマッピングを用いた新しいユーザーインターフェースを体験いただきました。

また、PaintsChainer公式キャラクター「絵愛ちえな」ちゃんのお披露目も行う事が出来ました。


PaintsChainer(ペインツチェイナー)とは

PFNが開発・提供するオンライン線画自動着色サービス。白黒等で描かれた線画ファイルや写真画像をアップロードするだけで、イラスト上の顔や服装、風景等を認識し、完全自動着色または色指定による自動着色をおこないます。

線画に対する自動着色のWebサービス化は世界初で、大きな反響を頂きました。その後、モデルの追加やサイトのリニューリアル等に取り組んでいます。

https://paintschainer.preferred.tech/

 

プロジェクションマッピング上での自動着色

今回のコミックマーケット93のPFNブースでは、紙に書いた絵に色がつくという新たな体験を提供しました。

デジタルデータではなく、実際の紙に描いた線画を専用着色ブースにセットすることで、その線画を4K高画質カメラで読み込み、PaintsChainerが着色し、プロジェクションマッピングを用いて実際の紙に着色されたように投影しました。実際にその場で書いた絵を着色できるということで、時間をかけて力作を描いて下さった方々もおられました。

さらに、着色結果にカラーヒントを与えることで、好きな色に変える機能もプロジェクションマッピング上で提供しました。

例えば、自動着色で黄色に塗られた髪の色を、カラーヒントを与えることにより一瞬にして青や赤など好きな色に変えることができます。

こちらは、もともとWeb版のPaintsChainerにも搭載されている機能ですが、今回は投影により着色された線画紙自体に、絵の具や色鉛筆で着色するかのように色指定ができるインターフェースに作り変えました。こちらもまるで魔法のようだという事で非常に楽しんでいただくことが出来ました。

 

スタイラスペンによって線画に対し直接カラーヒントを与えられるようにし、認識は、テーブルに埋め込んだペンタブレットにて行っています。

 

マンガ向けの着色モデルを限定公開

通常のイラスト向けの着色モデルに加えて、コミケ会場ではマンガ向けの着色モデルも選択できるようにしました。こちらは、今回が初公開のモデルです。

マンガ向けモデルは、Webで無料公開しているイラスト向けモデル(現在は、「たんぽぽ」「さつき」「かんな」の3つのスタイルを公開中)とは異なる学習を行い、マンガが持つセリフ、吹き出し、枠といった特徴に適した着色モデルとなっています。


イラスト用さつきモデルで着色(ノーヒント)マンガモデルで着色(ノーヒント)

(ブラックジャックによろしく 佐藤秀峰 Give My Regards to Black Jack SHUHO SATO )

こちらのマンガモデルは、現在出版社・デジタル配信事業者と共に実用化を目指しています。

 

漫画版は公開利用行っておりませんが、通常のPaintsChainerの3モデルは今回コミックマーケット93で体験いただいたものと同じものがWeb上で無料でご利用頂けます。是非ご利用ください。

https://paintschainer.preferred.tech/

Chainerの可視化・実験管理を支援するChainerUIを公開

ofk
エンジニア

2017-12-20 10:58:59

Chainer上の実験中の学習ログの可視化や実験管理機能を追加するパッケージ、ChainerUIを公開しました。

ChainerUIは、多くのChainerユーザが持つ「学習中の実験ジョブの進捗を手軽に知りたい」、「複数の実験ジョブの手軽に管理したい」ニーズに応えるために開発しました。
具体的には、下記の機能を備えています。

  • 学習ログの可視化
  • 実験履歴閲覧
  • 実行中の実験に対する操作 (スナップショット・学習ハイパーパラメーター修正)

本パッケージは、Chainerの学習用Trainerを監視するChainer extensionとして機能するものです。このChainer extensionを有効化した実験を、Webブラウザからリアルタイムで監視、制御することができます。複雑な依存関係がないため、Trainerを用いる既存の実験スクリプトに簡単に導入できます。

学習ログの可視化


Chainerで実験中のLossやAccuracy等の学習ログを、Webブラウザで可視化することができます。表示する項目は、ユーザが任意に指定できます。

実験管理機能


Chainerを使った複数の実験を1つの画面に一覧表示することができます。各実験には、実験条件を表示することができます。また、ブラウザ上から実行中の実験に対して、スナップショット保存の実行や、ハイパーパラメータの修正が可能です。

セットアップおよび実行

ChainerUIのインストール後、セットアップを行います。

pip install chainerui
chainerui db create
chainerui db upgrade

プロジェクトを登録しサーバーを実行後、Webブラウザでhttp://localhost:5000/にアクセスします。プロジェクトの登録はサーバー起動後にも行うことができます。

chainerui project create -d PROJECT_DIR [-n PROJECT_NAME]
chainerui server

学習ログの可視化

Chainer標準のLogReportが出力するlogファイルを監視し、実験中の学習ログを表示します。下記はtrain_mnist.pyを使用した場合の実行例です。

chainerui project create -d path/to/result -n mnist
python train_mnist.py -o path/to/result/1

“mnist” プロジェクトに “…/result/1” という名前の実験が加えられ、”path/to/result/1”に出力されるlogファイルのデータをグラフに表示します。

実験管理機能

上記logファイルと同じディレクトリにあるargsファイルを一覧に表示します。このargsファイルはkey-value形式のJSONファイルです。下記はtrain_mnist.pyに対して、起動引数をargsファイルに保存するサンプルコード(抜粋)です。

# [ChainerUI] import chainerui util function
from chainerui.utils import save_args

def main():
    parser.add_argument('--out', '-o', default='result',
                        help='Directory to output the result')
    args = parser.parse_args()

    # [ChainerUI] save 'args' to show experimental conditions
    save_args(args, args.out)

実験中のジョブを操作するには、ChainerUIのCommandsExtensionを使用します。同じくtrain_mnist.pyに対するサンプルコード(抜粋)です。任意のタイミングでスナップショットを取ったり、学習率などのハイパーパラメータを修正することができます。

# [ChainerUI] import CommandsExtension
from chainerui.extensions import CommandsExtension

def main():
    trainer = training.Trainer(updater, (args.epoch, 'epoch'), out=args.out)

    # [ChainerUI] enable to send commands from ChainerUI
    trainer.extend(CommandsExtension())

コード全体は、examples/train_mnist.pyを参照してください。

公開の背景

ディープラーニングの応用によって、様々な課題に対するState-of-the-artが日夜目まぐるしく塗り替えられる現在、実験の可視化や管理の効率化は大きな課題となっています。そのため、効率化支援のアプリケーションが乱立する状況も生んでいます。

PFNは、Chainerユーザが上記の課題に悩まされることなく、心地よく実験をこなせることを望んでいます。このような背景から、本パッケージをChainerユーザの効率をよりいっそう高めるための公式ツールとして位置づけて公開します。

PFN2017夏インターンシップの成果

本パッケージは、PFN2017年夏インターンシップに参加した稲垣さんと小林さんの開発成果です。

多くのリサーチャーやエンジニアを抱えるPFN社内では、以前から効率的な機械学習の実験の実施が課題となっていました。しかしながら、各々個人の工夫に頼っていたのが実情でした。そこで、「実験の効率化を支援するためのフロントエンド・アプリケーション」をインターンシップの課題として位置づけて開発を開始しました。

フロントエンド・エンジニアとしてタッグを組んだおふたりは、2か月という短い期間ながらも社内に溶け込み、要件調整から設計・実装まで自発的にプロジェクトを進めました。そしてインターンシップ終了後もPEとして継続的にコミットを続けた上、社内での4ヶ月間のドッグフーディングを経ることで、本日の公開を迎えています。

今後の展望

PFNはChainerUIをChainer製品群の1つとして位置づけ、今後も積極的に開発を進めていく予定です。以下の機能の実装が予定されています。

  • グラフの出力機能
  • 操作コマンドExtensionの拡充 etc

また、PFNでは最先端の研究開発成果物を、エンドユーザに届けるスキルを持ったフロントエンド・エンジニアを募集しています。

化学、生物学分野のための深層学習ライブラリChainer Chemistry公開

Kosuke Nakago

2017-12-18 11:41:05

* English blog is also written here.

Chainer [1]を使った、化学、生物学分野のための深層学習ライブラリ Chainer Chemistry を公開しました。

 

本ライブラリにより、分子構造に対して簡単に深層学習(Deep learning)を適用することができるようになります。

例えば、化合物の分子構造を入力とした毒性の予測や、HOMO(最高被占軌道)レベルの回帰予測など、様々な化学的性質の予測に深層学習を適用することができます。

なお本ライブラリの開発にあたっては、PFN2017夏インターンシップに参加した京都大学の秋田大空さんにも実装に携わっていただきました。

 

特長

様々なGraph Convolutional Neural Network のサポート

Graph Convolutional Network (詳しくは下記参照)の登場により、”グラフ構造”を入力として深層学習が適用できるようになりました。Graph Convolutional Networkは現在盛んに研究がおこなわれていますが、本ライブラリでは今年発表されたばかりの論文も含めいくつかのネットワークを追実装しています。

現時点では以下のモデルが実装されています。

  • NFP: Neural Fingerprint [2, 3]
  • GGNN: Gated-Graph Neural Network [4, 3]
  • WeaveNet: Molecular Graph Convolutions [5, 3]
  • SchNet: A continuous-filter convolutional Neural Network [6]

 

データの前処理部分をライブラリ化・研究用データセットのサポート

様々なデータセットを共通のインターフェースで使えるように、ソフトウェアを設計しています。また、研究用によく使用されるデータセットに関してはライブラリ内でダウンロード・前処理を行うことができます。

現時点では以下のデータセットをサポートしています。

  • QM9 [7, 8]: 9個までのC、O、N、F原子とH原子から構成された有機分子に対して、B3LYP/6-31GレベルのDFT(密度汎関数法)で算出されたHOMO/LUMOレベル、内部エネルギーなどの物性値をまとめたデータセット
  • Tox21 [9]: 12種類のアッセイに対する毒性をまとめたデータセット

 

学習・推論コードのExample code を提供

ライブラリの使い方がわかるよう、モデルの学習コード・推論コードのExampleも公開しています。すでに実装済みのモデル・データセットに対して手軽に訓練・推論を試してみることができます。

 

背景

材料探索・創薬などの応用分野では、分子構造を入力とするシミュレーションが重要な位置を占めます。中でも量子力学的効果を高い精度で取り込みたい場合に用いられるDFT(密度汎関数法)のようなシミュレーション手法は、特に大きな分子に対して、膨大な計算量を要求することが知られています。このため、有用な新物質の候補となる多数の分子構造に対してシミュレーションを行うのが困難です。

そこで機械学習分野では、これまでに実測・計算されたデータを学習することにより、未知の分子の物性値を予測するというアプローチでの研究がおこなわれています。ニューラルネットワークを用いることにより、量子シミュレーションよりも高速に物性値の予測ができることが期待されています。

 

 

Cite from “Neural Message Passing for Quantum Chemistry”, Justin et al. https://arxiv.org/pdf/1704.01212.pdf

 

化合物に対して深層学習を適用することを考えた場合、その入出力をどのように扱うかということが問題となります。これは、通常の深層学習手法が固定長のベクトル値データを入力とするのに対し、分子構造は可変長で分岐やループを持ちうるデータ形式、つまりグラフであるためです。しかし、近年グラフ構造を扱うことのできるGraph Convolutional Neural Network が提案され、注目を集めています。

 

Graph Convolutional Neural Network とは

Convolutional Neural Network (畳み込みニューラルネットワーク)は、局所的な情報のみで計算を進める畳み込み層の導入によって、画像分類、セグメンテーションや画像生成などの分野で成功をおさめました。

Graph Convolutional Neural Network では、同様にグラフ上で近いノードに対する畳み込み演算を導入することにより、グラフ構造の取り扱いを可能にしています。

How graph convolutions work

CNNが画像を入力とするのに対し、Graph CNNではグラフ構造(分子構造など)を入力として深層学習を行います。

 

グラフ構造を入力とするGraph Convolutional Neural Network は、分子構造にかぎらず、ソーシャルネットワークや交通網などに広く適用でき、ここ最近研究が進んできています。例えば、文献[10] では画像、[11]ではナレッジベース、[12]では交通量予測にGraph Convolutionを適用しています。

Graph Convolutional Networkに関しては、以下のブログでもわかりやすく説明されています。

 

対象ユーザー

  1. Deep learningの研究者
    本ライブラリでは、最新のGraph Convolutional Neural Network の追実装を行っています。
    今後、Graph Convolutionは計算科学に限らず、様々な分野への適用が考えられる技術なので、ぜひ様々な方に使っていただきたいです。
  2. 物質探索・創薬などの研究者
    本ライブラリを用いることにより、様々な化合物に対する物性値予測のモデルを構築することができます。

 

今後の予定

本ライブラリはまだベータ版で、開発を行っているところです。今後は以下のような機能をサポートしていきたいと検討しています。

  • Pre-trained modelを提供し、推論だけでの使用をサポート。
  • データセットの拡充
  • モデルの追加

Tutorial も用意しているので、ぜひ試してみてフィードバックをいただけるとありがたいです。

 

参考文献

[1] Tokui, S., Oono, K., Hido, S., & Clayton, J. (2015). Chainer: a next-generation open source framework for deep learning. In Proceedings of workshop on machine learning systems (LearningSys) in the twenty-ninth annual conference on neural information processing systems (NIPS) (Vol. 5).

[2] Duvenaud, D. K., Maclaurin, D., Iparraguirre, J., Bombarell, R., Hirzel, T., Aspuru-Guzik, A., & Adams, R. P. (2015). Convolutional networks on graphs for learning molecular fingerprints. In Advances in neural information processing systems (pp. 2224-2232).

[3] Gilmer, J., Schoenholz, S. S., Riley, P. F., Vinyals, O., & Dahl, G. E. (2017). Neural message passing for quantum chemistry. arXiv preprint arXiv:1704.01212.

[4] Li, Y., Tarlow, D., Brockschmidt, M., & Zemel, R. (2015). Gated graph sequence neural networks. arXiv preprint arXiv:1511.05493.

[5] Kearnes, S., McCloskey, K., Berndl, M., Pande, V., & Riley, P. (2016). Molecular graph convolutions: moving beyond fingerprints. Journal of computer-aided molecular design, 30(8), 595-608.

[6] Kristof T. Schütt, Pieter-Jan Kindermans, Huziel E. Sauceda, Stefan Chmiela, Alexandre Tkatchenko, Klaus-Robert Müller (2017). SchNet: A continuous-filter convolutional neural network for modeling quantum interactions. arXiv preprint arXiv:1706.08566

[7] L. Ruddigkeit, R. van Deursen, L. C. Blum, J.-L. Reymond, Enumeration of 166 billion organic small molecules in the chemical universe database GDB-17, J. Chem. Inf. Model. 52, 2864–2875, 2012.

[8] R. Ramakrishnan, P. O. Dral, M. Rupp, O. A. von Lilienfeld, Quantum chemistry structures and properties of 134 kilo molecules, Scientific Data 1, 140022, 2014.

[9] Huang R, Xia M, Nguyen D-T, Zhao T, Sakamuru S, Zhao J, Shahane SA, Rossoshek A and Simeonov A (2016) Tox21 Challenge to Build Predictive Models of Nuclear Receptor and Stress Response Pathways as Mediated by Exposure to Environmental Chemicals and Drugs. Front. Environ. Sci. 3:85. doi: 10.3389/fenvs.2015.00085

[10] Michaël Defferrard, Xavier Bresson, Pierre Vandergheynst (2016), Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering, NIPS 2016.

[11] Michael Schlichtkrull, Thomas N. Kipf, Peter Bloem, Rianne van den Berg, Ivan Titov, Max Welling (2017) Modeling Relational Data with Graph Convolutional Networks. arXiv preprint arXiv: 1703.06103

[12] Yaguang Li, Rose Yu, Cyrus Shahabi, Yan Liu (2017) Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting. arXiv preprint arXiv: 1707.01926

 

実センサを搭載したロボットカーの深層強化学習による自律制御

Megumi Miyashita

2017-12-12 12:24:19

はじめに

はじめまして。PFNで夏季インターンに続き、アルバイトをしている宮下恵です。普段は東京農工大学大学院で強化学習に関する研究をしており、ものづくりやロボットに興味があります。

「実センサを搭載したロボットカーの深層強化学習による自律制御」について報告させていただきます。

 

続きを読む »

ニューラルネットの逆襲から5年後

岡野原 大輔

2017-11-28 11:39:04

私が2012年にニューラルネットの逆襲当時のコメント)というのをブログに書いてからちょうど5年が経ちました。当時はまだDeep Learningという言葉が広まっておらず、AIという言葉を使うのが憚られるような時代でした。私達が、Preferred Networks(PFN)を立ち上げIoT、AIにフォーカスするのはそれから1年半後のことです。

この5年を振り返る良いタイミングだと思うので考えてみたいと思います。

 

1. Deep Learning Tsunami

多くの分野がこの5年間でDeep Learningの大きな影響を受け、分野特化の手法がDeep Learningベースの手法に置き換わることになりました。NLP(自然言語処理)の重鎮であるChris Manning教授もNLPで起きた現象を「Deep Learning Tsunami」[link] とよびその衝撃の大きさを表しています。

その適用範囲は最初想定されていた画像認識、音声認識分野だけにとどまらず、機械翻訳、生物情報処理、最適化、ロボティクスなど多岐にわたっていきました。

 

2. Deep Learning Frameworkの登場

2012年当時はDeep Learningの研究開発をしようと思った時、使える代表的なライブラリはTorchとTheanoしかありませんでした。その後、2013年末にYanqing Jiaが博士論文を書く過程で作ったCaffeが登場し、2015年6月には弊社PFNからChainerを発表、2015年9月にはGoogleからTensorFlowがリリースされます。その後も各会社がそれぞれのDeep Learning Frameworkを発表していきました。

Chainerは開発者の得居がGW明けに突然作ってきて、使ってみると簡単にかけるものだと驚いたのを覚えています。それまではC++やGoで書いていたのですが、その時とは雲泥の差でした。numpyをはじめとしたpythonの強力な数値計算/データ解析用ライブラリ群の力も合わせpythonによりDeep Learningの研究開発をする流れが急速に広まりました。

また、Chainerが最初に唱えたDefine-by-Runの考え方はコミュニティに受け入れられ、その後PyTorchやTensorFlow Eager execusionなどでも採用され影響を与えていきました。

今ではPythonで数十行から数百行コードを書くだけで、複雑なネットワークを持ったモデルを分散学習することができ、CPU、GPUどちらであっても気にせず、簡単に書くことができます。

 

3. 強化学習との融合

深層学習は強化学習と融合し、大きなブレークスルーをもたらしました。DQNによりAtari2600の様々なゲームが人間と同レベルでプレイできるように学習できることが大きな話題となりました。

元々強化学習は、教師あり学習とは違って、環境からのスカラー値の報酬のみで複雑な制御を獲得できる有望な手法でした。さらに深層学習により価値関数や方策(状態に応じてどの行動を選択するか)の表現力が大きく上がると、これまで困難と思われた問題を次々解けるようになりました。その中でもAlphaGo[オリジナル, AlphaGo Zero]がトップ棋士をやぶったことは大きなマイルストーンとなりました。

弊社もCES2016で強化学習を利用したロボットカーの自動運転のデモンストレーションなどでその可能性について世の中に示していきました[link]

強化学習は未だに学習、利用ともに様々な課題がありますが急速に研究が進んでおり今後ますます重要になるでしょう。最近の強化学習については、Deep RL Bootcampの資料などが参考になるでしょう。

 

4.  研究の爆発

DNNは最初は限られた研究グループのみが研究成果をあげていましたが、現在は世界中の企業、研究グループが次々と研究成果をあげるようになっています。どこの国や地域、企業でもいいアイディアさえあれば、すぐに大きなインパクトをあげられるようになっています。

これにはarxivなどのオープンジャーナルが大きな役割を果たしています。以下にarxivの関連カテゴリ(cs.AI,cs.LG,cs.CV,cs.CL,cs.NE,stat.ML)への投稿数のグラフをあげます[link より図を引用]

これまで研究は国際学会やジャーナル論文が中心でしたが、いつでも誰でも投稿できるオープンジャーナルが登場し、研究プロセスは非常に加速されました。発表された論文が数日後に別の論文で引用されることも珍しくありません。

また、論文と一緒に実験用コードをgithubなどで公開することで、さらに知識の共有が進むようになりました。

一方、オープンジャーナルでは査読がなく論文は玉石混交となり、質が下がるという危惧はあります。しかし注目された研究はすぐに世界中で追試がされチェックされ、怪しいところがあるとRedditなどで指摘されたりします。また、今後はコメントツール(例:Librarian)などを標準が使うことが普及すればさらに論文の信頼性を担保できるようになるかもしれません。

また、大量の論文が投稿され全部追うことは難しくなり、論文キュレーションツールとして、話題になっている論文をまとめるarxiv sanity preserverdeeplearn.orgなども登場しています。

私も読んだ論文の中から面白そうなものはをツイートしていますが、それでも重要な論文を見逃すことがよくあるほど、研究成果が爆発的に出てきています。

 

5. 生成モデル

Deep Learningは、生成モデルでも大きなブレークスルーを起こしました。

例えば、VAE(変分自己符号化器)は連続変数を潜在変数とした場合でも誤差逆伝搬法だけで効率的に学習できるものであり衝撃的でした。

そして二つのニューラルネットワークを競合させて学習するGAN(敵対的生成モデル)がこれまでの生成モデルではできなかった高精細な画像を生成できることは非常に大きなインパクトを与えました。

GANは学習が難しいため、登場から1年間は殆ど後続の研究がなかった中、DCGANが自然な画像生成モデルの学習に成功し、実写と変わらないレベルの画像を生成できることを示しました[最近のGANの生成例,イラストの生成例]   。一方で、GANはその学習の難しさからダイエット本や英語本と同じように多くの研究を生み出しています(GAN Zoo)。

その後、通常の確率モデルの最尤推定による学習では,現実世界のデータにみられるサポート(確率密度値が0ではない)が低次元であるような分布を学習することができず[link]、GAN(の変種)が実現するOptimal Transport (最適輸送)やIntegral Probability Metricsを使わなければいけないということがわかり、Implicit Probabilistic Modelという名とともにGANが注目されました。

 

6. 理論解明

Deep Learningがなぜ学習できるのか、なぜモデルが大きいのに汎化性能が高いのか、何を学習できて何はできないのかといった問題に多くの研究者が取り組んできました。

もともとDeep Learningは非線形のモデルであり,パラメータ数が非常に大きく、従来の統計モデルや機械学習理論からは、謎に包まれていました。

完全な解明には至ってはいないものの分かってきたのは、Deep Learningの確率的勾配降下法(SGD)は極小解にはまりにくいだけでなく[link1 link2]、汎化性能が高いような幅が広い解を見つけられるということ[link]、またミニバッチ正規化[link]、スキップ接続[link]といったテクニックが学習を容易にし、適切なノイズを与えることで汎化性能をあげていることがわかってきています。

また、従来の機械学習の考え方ではパラメータ数が少ない方がモデルの複雑さは下がり、過学習しにくくなりますがDNNの場合、汎化性能はモデルが大きければ大きいほど高いことも予想されています[link]。

 

7. Software 2.0

またDeep Learningが工学的にも、「推論時と計算量と使用メモリ量が固定で済む」「モデルサイズを変えることで計算量と精度のトレードオフをスムーズにできる」「GPUのような並列処理向けプロセッサの開発が非常に容易になる」という利点があることも注目されてきました。

これをAndrej KarpathySoftware2.0と名付け、Deep Learningが単なる機械学習のツールではなく、ソフトウェアの作り方を変える大きなパラダイム・シフトを起こすと述べています。

 

今後について

それでは今後はどのようになっていくのでしょうか。未来の予測は難しく、5年前に予想した時は、Deep Learningがここまで広く適用されるということは予想できていませんでした。それでもしてみましょう。

 

1. 多数の教師なし学習の登場

現在、ディープラーニングが大きく成功しているのは正解ラベルがついたデータを使った教師あり学習です。一方、本当に難しい問題を解くには教師なし学習が重要になると考えられます。

Yann LeCunは講演の中で「知能をケーキに例えるなら、教師なし学習は本体であり、教師あり学習はケーキの飾り、強化学習はケーキ上のサクランボぐらいである。私達はケーキの飾りやサクランボの作り方はわかってきたがケーキ本体の作り方はわかっていない」

と述べています。

また、Geoffrey Hinton教授も[link]「脳のシナプスは10^14個あるが,人は10^9秒しか生きられない。サンプル数よりパラメータ数の方がずっと多いことになる。(これらのシナプスの重みを決定するためには)1秒あたり10^5個の制約が必要となり,多くの教師無し学習をしているとの考えに行き着く」と述べています。

世の中の膨大なデータの大部分は教師データがついていません。これらのデータを活かせる学習手法が望まれています。教師なし学習の中でも”pretext task”は、関係のなさそうなタスクを学習することで、その副作用として本当に学習したいことを学習することが増えています。現時点でも、様々なpretext taskが提案されています。おそらくpretext taskは一つだけではなく無数あり、それらを組み合わせて強力な学習を実現していると思われます[例, 表1に例多数]。しかし、これまで多くの教師なし学習手法が提案されているものの、それを使って教師あり学習、強化学習の性能を大きく向上する決定的な手法はまだ見つけられていません。

また、大きく成功するには学習データ数やモデルの大きさのスケールが数桁足りないという可能性があります。

人は1年間に10時間/日*3600秒/時*365日*10Hz=1.3億回の画像をみてそれらで予測学習や、補間学習、ノイズ除去学習をすることができます。

ただでさえ教師あり学習は人よりもサンプルを必要としているので教師なし学習でも大きな成果を生み出すには莫大な量のサンプルが必要になるかもしれません。

 

2.  微分不可能な要素を含んだNN

現在のディープラーニングは微分可能な構成要素を組み合わせて作られています。これにより誤差逆伝播法が可能となり、どれだけネットワークが複雑になっても、出力を修正するには各モジュールをどれだけ修正すればよいかが正確にかつスケーラブルに求めることができます。

一方で、微分不可能な構成要素も困難な問題を解くためには不可欠です。例えば、汎化するロジックやルールを獲得するためには、過学習につながる情報の中で不要な情報を捨てることが必要になります。これには複数の値を一つの値に縮約(contraction)する、または離散化するということが必要になります。

あの猫もこの猫もそのまま扱わずに「猫」という離散値を割り振ってその上でルールを学習すれば、誤った入力との相関を見つけることはありません。

一方、離散化は微分不可能な計算ですので、誤差逆伝播が使えません。しかし、この場合でも勾配の不偏推定量を求められる手法がいくつか登場しています[例 Relax]。

また、強化学習においても”環境”は微分不可能でそもそもどのような計算がされるのかはわかりませんが、これも同様に環境のダイナミクスをシミュレーションするNNを作り、伝播することができるでしょう。これは環境を想像する能力やデータから獲得した上でのモデルベース学習とも関係します。

離散変数によるゲートはconditional computationやmixture of expertシステムのように使うモジュールをダイナミックに選択し、そのモジュールだけ計算させることで計算量を劇的にさげることができます。

今後は、誤差逆伝播法だけではなく、離散変数での最適化も可能な離散/組み合わせ最適化法[link]、遺伝的アルゴリズムや、進化戦略[link], を使った手法も必要になるでしょう。

 

3.  メタ学習、継続学習

より複雑な問題を解くために、ある学習問題に他の学習結果を利用することが必要となります。今のようにある問題に対して特定の学習器で学習させるのではなく複数の問題、タスクを同時にまたは順番に一つの学習器を学習させることが重要となってきます。

一つの人工知能システムが非常に多くの問題を解けるようになる汎用人工知能システムに到達するにはまだ多くの問題を解く必要があり難しいですが、それでも関連するタスクを一緒に、または次々と学習していくことで一つの学習に必要なサンプル数を大幅に削減できたり、性能を大きくあげるといったことは可能になると考えられます。

カリキュラム学習、ブートストラップ学習といった、複数の学習を計画をたてて学んでいくことも今後大きく伸びていくことと考えられます。

 

4.  シミュレーションとの融合、説明可能性

現実世界の問題を解く上で、現実世界の様々な制約を克服するためにシミュレーション上で学習、検証することがより一層必要になります。その上、どのように計画を立てているのかを説明する上でもブラックボックスであるニューラルネットワークモデルの中の計算処理を説明するのではなく、実際に実現例を示し、シミュレーション上でこうなっているからと説明することが増えていくと考えられます。

今の生成モデルは、様々な条件付けをして生成をすることで滅多にとれないデータを生成し、その上で学習、検証することを可能にします。これは、システムに想像力を備えさせた上で、まだ経験していない環境で学習できることを可能とさせるでしょう。

 

5. 人や既存システムとの協調

これらAIシステムが実問題に適用されていく中で、いかに人と協調するか、既存システムと協調するかが重要となってきます。全ての問題を完璧に解くことが理想ですが、そうならなかった場合でも、解けている問題だけを担当させ、残りを人や既存システムが担当することが多くなるでしょう。

その場合、認識結果や理由をわかりやすくするだけでなく、制御できるようにチューナーのようなツマミが必要になるかもしれません。また、人が自分の感覚を拡張したと感じられるように、操作可能性や応答性が重要になります。人馬一体という言葉がありますが、そのように人がAIシステムを自由自在に扱うことができるようになることが必要となるでしょう。

12345...