視覚からの触覚特性の推定 (ICRA2019 Best Conference Paper Award Finalist)

Kuniyuki Takahashi

2019-09-30 09:49:25

リサーチャーの高橋城志(Takahashi Kuniyuki)です.

2019年5月にロボティクス分野のトップ会議であるICRA2019が開催されました.そこに投稿された約2900件の論文から3件だけ選ばれるBest Conference Paper Award Finalistを受賞しました.この論文はリサーチャーのJethro Tanと執筆したもので,その紹介をします.論文,動画,データセットは下記から閲覧できます.

論文タイトル:Deep visuo-tactile learning: Estimation of Tactile Properties from Images

論文のリンク:https://arxiv.org/abs/1803.03435

データセット:https://github.com/pfnet-research/Deep_visuo-tactile_learning_ICRA2019

論文の動画:https://www.youtube.com/watch?v=ys0QtKVVlOQ&feature=youtu.be

視覚からの触覚特性の推定

 Fig. 1に物体の写真を何枚か載せています.人は物体の表面を触ることで,柔らかさや粗さといった触覚特性を知覚することができます.また,画像だけから触覚の特性とその度合い(e.g. 柔らかさとその程度)を推定できます.この能力は物体操作や歩行方法などの判断に必要になります.例えば,柔らかそうなものは優しく把持を行い,滑りそうな床では気をつけて歩くなどです.

Fig. 1 視覚からの触覚特性の推定

関連研究

 これまでの方法では,触覚特性やその度合を手動でラベル付けする,教師あり学習がほとんどでした.しかし,この方法では手動でつけられたラベルの種類や粒度に結果が依存することになります(Fig. 1).特性の種類(e.g. 柔らかさ,滑らかさ,べたつき)やどの程度の粒度を用意するかは事前に決めなければならなず,手動でのラベル付けで想定していない未知の物体や粒度に対しては,既存のラベルに割り振られてしまうという課題があります.

Deep visuo-tactile learning

 そこで,手動でのラベル付けをせずに,教師なし学習で触覚の特徴を獲得する,deep visuo-tactile learningを提案します(Fig. 2).このモデルはエンコーダ・デコーダ型の深層学習の入力を画像情報,出力を触覚情報を用いており,潜在変数に触覚特性を獲得させます.出力は教師信号がある教師あり学習ですが,潜在変数には教師がないため,触覚特性の獲得に関しては教師なし学習です.

Fig. 2 Deep visuo-tactile learning

 このモデルの学習後,潜在変数に触覚特性が連続値として表現されることになります.そのため,度合いの粒度を事前に決める必要がありません.物体の触覚特性の推論には,対象となる物体の画像を入力するだけで物体の触覚特性である潜在変数が得られます(Fig. 3).つまり,触覚センサは学習にのみ必要で,学習後の推論には触覚センサを必要としません.触覚センサは高価で壊れやすいため,触覚センサを使わずに触覚の特性を推論できるという利点があります.さらに,シミュレーションでは接触状態を扱うのが困難で,触覚情報を扱うことは難しいですが,本手法ではシミュレーションでの画像から触覚情報の推定も可能となります.

Fig. 3 学習後のDeep visuo-tactile learning

データセットの作成

モデルの評価のため,25種類の物体を用いて,新たなデータセットを作成しました(Fig. 4).このデータセットは公開していて,自由に使用できます.
https://github.com/pfnet-research/Deep_visuo-tactile_learning_ICRA2019
実験には,Sawyerと呼ばれる7自由度の腕を持ったロボット,及び,その手先にウェブカメラとuSkinと呼ばれる触覚センサを取り付けたものを使用しました.uSkinは16点のそれぞれのセルで圧力方向とせん断方向の力を取得できます.ロボットは物体表面をなぞる動作を行い,そのときの画像と触覚センサのデータを取得します.実際に取得した時系列における触覚センサの各セルの圧力方向とせん断方向の力のグラフをFig. 4に示します.

Fig. 4 データセット作成

評価実験:潜在変数の可視化

 作成したデータセットを学習させて,触覚センサの特性が表現されている潜在変数を可視化したものをFig. 5に示しています.図中の赤色の星は学習に使用した物体で,青色は学習に使用していない未知物体です.取得した触覚センサの値から,物体の摩擦が大きいほど緑色の円の色が濃くなるように描画しています.Fig. 5から布でない物体はLatent varialbe 1の軸の低い値にプロットされる一方,布の物体は高い値でプロットされていることが分かります.これは,触覚センサの表面を布で覆っていたため,触覚センサ表面の布と布の物体との摩擦が大きくなったためだと考えられます.このことから,潜在変数には摩擦情報が表現されていることが示されました.

Fig. 5 摩擦を表現したLatent Variable

 Fig. 5と同じ方法で,センサ情報から硬くて粗い物体ほど円の緑色が濃くなるように描画したものをFig. 6に示しています.図から硬くて粗い物体であるほど,Latent variable 2の軸において小さな値にプロットされていることが分かります.例えば,カーペットは硬くて粗いですが,バスタオルは柔らかくて滑らかと認識されています.また,色のみ異なる物体や似ている物体は近い位置でプロットされていることが分かります.このことから潜在変数に触覚の特性として柔らかさと硬さが表現されていることが示されました.

 本手法の性能限界を調べるため,紙に印刷された畳の画像から触覚特性を推論させました.その結果,印刷された畳は硬くて粗い物体と認識されていますが,本来推定するべきものは紙であるため,実際の特徴とは異なります.今回の手法では入力としては画像のみを使ったために生じた問題です.深さ情報まで含めた入力にすることで,物体表面の形状情報が取得できるようになるため,このような問題を解決できると考えています.

Fig. 6柔らかさと粗さを表現したLatent Variable

まとめ

画像からの触覚特性とその度合を推定するために,教師なし学習であるdeep visuo-tactile learningを提案しました.この研究の新規性は,教師なしで潜在変数に触覚特性を表現したこと,及び,画像と触覚情報を含んだ新たなデータセットを作成したことです.今後の展望として,推定した触覚特性を元にロボットに把持や歩行などの行動をさせることです.

ACL 2019 参加レポート

Motoki Sato

2019-08-30 18:03:22

PFNでは自然言語処理(NLP)による研究開発にも取り組んでいます。

自然言語は人にとって最も身近なインターフェースのうちの一つです。

弊社ではこれまでにもロボットへの言語指示(ICRA 2018, CEATEC 2018)などの研究開発の成果を発表してきました。
先日7/28-8/2にイタリアのフィレンツェにて、自然言語処理のトップ国際会議ACL 2019が開催され、弊社からも佐藤元紀と小林颯介が参加しました。今回はその様子を論文紹介とともにお伝えしたいと思います。本記事は2名で協力し執筆しています。

 


(写真:会場となったバッソ要塞)

また、佐藤元紀が東北大学の鈴木潤氏・清野舜氏と執筆した論文 “Effective Adversarial Regularization for Neural Machine Translation” を口頭発表しました。この論文についても紹介します。

※佐藤が学生時代に行っていた研究です。

 

なお、ACL 2019では口頭発表された論文については基本的にビデオが公開されています。以下のリンクからアクセスできます。

 

ACL 2019 概要

まずACL 2019の概要について紹介します。

2019年の投稿数は2905件で去年の投稿数1544件よりも大幅に投稿数が増えていました。前年までも増加傾向にありましたが、今年は一気に跳ね上がりました。相並ぶNLPのトップ会議であるNAACL(6月)と来るEMNLP(11月)でも今年は投稿数の倍増が見られました。

(写真:ACL 2019 Openingより)

 

分野別の投稿数については次の分野が順に人気でした。

  1. Information Extraction and Text Mining (9%)
  2. Machine Translation (8%)
  3. Machine Learning (7%)
  4. Dialogue and Interactive Systems (7%)
  5. Generation (6%)

際立って人気な分野はありませんが、Machine Translation(機械翻訳)やDialogue and Interactive Systems(対話システム)が昨年に比べて微増しており、また、Generation(生成)については昨年はシェアが4%ほどだったものが6%になりました。投稿数の増加も相まってトータルでは3倍近くの論文が投稿されるようになったホットな分野だと言えるでしょう。

 

(写真:ACL 2019 Openingより)

投稿や採択の本数は増えましたが、採択率はLong paperで25.7%、Short paperで18.2%と概ね例年どおりでした。

 

以下では、参加した佐藤、小林が気になった論文や特徴的な論文の紹介をしていきます。

 

離散的構造

NLPでは、品詞タグ付け、構文木解析、単語アライメントなど系列や離散的な構造を扱うタスクが多いです。構造内で依存性のある入力や予測をいかに考慮するか、膨大な出力空間の中で教師データをいかに活用するか、などの興味深い課題が存在します。この分野で発展してきた手法は、時系列予測やデモンストレーションからの制御学習など、共通の性質を持つような他の分野でのタスクに応用できるかもしれません。

ACL 2019では、離散的構造を持った潜在モデルについてのチュートリアル “Latent Structure Models for Natural Language Processing” が行われ、注目度の高いトピックとなっていました。

 

以下のスライドでは、End-to-Endのニューラルネットワークの中間表現として離散的な構造をどう扱うかについて説明されています。End-to-Endの枠組みで離散的な構造を扱うには、基本的には演算を一貫して微分可能にすることが必要です。そのためにこれまで提案されてきた手法について、REINFORCEからSparseMAPまで幅広くよくまとまって紹介されていました。

 

(ACL 2019 チュートリアルの図)

 

ここでは、カテゴリカル分布を含む計算グラフを微分可能にするテクニックを紹介します。

まず、カテゴリカル分布からサンプリングを行う実装方法の1つとして、Gumbel-Max Trickという方法が知られています。softmax層に入力する前のスコアベクトルを s とすると、Gumbel分布G(0, 1)からサンプリングされるノイズベクトル ε を用いてargmax(s + ε)を求めることは、カテゴリカル分布softmax(s)から1つの要素をサンプリングすることと等価になります。

(なお、ε ~ G(0, 1) は ε = -log(-log(u)), u ~ Uniform(0, 1) でも計算できます。)


また、このargmaxをとる前の s + ε について温度パラメータ τ を導入したsoftmaxとして softmax((s + ε) / τ) を考えると、τ → 0 の場合には、argmaxによるone-hot ベクトルとこの値が等しくなることが分かります。このノイズ付きのsoftmaxの出力をそのまま、サンプリングによるone-hotベクトルの代わりとして用いる(continuous relaxation)ことで、テスト時の実際のサンプリングでの計算とは少し異なるものの、訓練用の微分可能な計算グラフを実現できます。サンプリング結果に対して単に埋め込みベクトルの辞書引き(one-hotベクトルに対する行列計算)を行う場合などには、このようなrelaxationが可能になります。


より発展して、実際にサンプリングをした上で擬似的にbackpropagationを可能にするStraight-Through Gumbel Estimatorという方法もあります。forward計算の際には、上記のノイズ付きsoftmaxからサンプリングしたone-hotベクトルを用います。一方、backward計算の際には、one-hotベクトルをサンプリング前のsoftmax出力へとすり替えて伝播を行います。

不思議なトリックではありますがこれでモデルは問題なく学習できることも多く、このStraight-Through Estimatorのアイデア自体はニューラルネットワークの量子化などでも活躍しています。

次に、ACL 2019のBest Long Paperについて紹介します。

 

RNNなどのニューラルネットによる文生成モデルの訓練について改善を提案した論文です。

よく使われる文生成のモデルは自己回帰モデルになっており、ある位置で単語を予測・生成した後にはその単語を入力として次の単語を予測し、その流れを繰り返して文生成の推論を行います。一方で訓練の場合には、次の単語を予測する際に入力される単語は、「前位置で予測した単語」ではなく、教師データの正解文から取り出された「前位置の正解の単語」です。この訓練の方式は広く使われており、teacher forcingとも呼ばれています。

 

このように、訓練時には常に1つ前の位置までの正解の単語列(の一例)を常に見ることができる一方で、テスト時の推論では再帰的に自身の予測結果に基づく文生成を行う必要があります。このようにテスト時の設定と異なるようなデータ分布でしか訓練ができていないexposure biasと呼ばれる問題があり、テスト時の性能低下につながるとこれまでも指摘されてきました。

 

この論文では、常にteacher forcingの「正解単語での文脈」で訓練をするのではなく「予測単語での文脈」による訓練を確率的に織り交ぜる方法について提案しています。その際、入力する文脈として使う(予測)単語は、単に予測分布からargmaxで選ぶよりはサンプリングを行ったほうがよく、また、先に文全体をビームサーチやサンプリングなどで生成した上で単語を選ぶのも効果的だと示しています。また、学習初期には正解単語を多く使い、終盤ではより多く予測単語に触れさせるようなスケジューリングも行っています。これまでにもBengio et al. (2015)Ranzato et al. (2015)から研究されてきたテーマでしたが、文レベルの拡張などを含めた統合的な実験で良好な結果を示せた点、その他の文生成タスクへの応用可能性への期待から今回の選定につながったようです。

Adversarial Training

次に、今回ACLに採択された佐藤の論文を紹介させてください。

スライドは以下のリンクで公開しています。

ニューラルネットワークの訓練時に、入力データを少し変化させた状態で訓練を行うと汎化性能が向上することがあります。その一例として、モデルの出力の正解に対するロスを大きくしてしまうような敵対的なノイズ(Adversarial perturbation)を入力に足し合わせて訓練を行うAdversarial Training (Goodfellow et al., 2015)という方法があります。また、さらに発展したVirtual Adversarial Training (Miyato et al., 2015)という手法もあります。こちらは正解の教師データは必要なく、出力の分布を最も大きく動かすような敵対的なノイズを用いて訓練を行います。教師データのない入力データを用いて訓練ができるため、半教師あり学習の手法として有用です。

(なお、Adversarial Trainingという用語は敵対的なモデルや勾配を用いる学習方法全般について使われますが、本記事では上の訓練方法を指す狭義の意味で使います。)

 

これらはまず画像認識のタスクで有効性が確かめられ、その後[Miyato et al. (2017)]がテキスト分類タスクにおいてLSTMベースのモデルに適用し、当時の該当データセットにおける世界最高性能を達成しました。画像のタスクでは、画像の入力そのものにノイズを足し合わせていましたが、言語のタスクでは生の入力が単語(さらに意えば文字)の記号のため難しく、代わりに単語ベクトルへと埋め込んだ後にAdversarial perturbationを足し合わせて適用しています。

 

こうしてテキスト分類のタスクではAdversarial Trainingが有効であることは知られていたのですが、機械翻訳を始めとした文生成のタスクでは適用例がありませんでした。ここに取り組んだのが本研究になります。

シンプルには「機械翻訳でAdversarial trainingは効果的なのか」という問いですが、機械翻訳のタスク及びモデルでの適用に関してはいくつか設定が考えられるため、それらを実験的に確かめることで実用性を高めました。

 

特に以下の3つの側面に対して実験を行っています。

  1. LSTMとTransformer両方のモデルで効果があるのか?
  2. 敵対的なノイズの計算にはAdversarial TrainingとVirtual Adversarial Trainingのどちらを使うべきか?
  3. Encoder側(原言語文)とDecoder側(目的言語文)でともに単語ベクトルの入力部分があるが、どこにノイズを加えるべきか?

結果として、Transformer + Virtual Adversarial Training の組み合わせが良く、ノイズを加える場所は、EncoderとDecoder両方に入れるのが効果的でした。

Adv (Adversarial Training) と VAT (Virtual Adversarial Training) の比較ではAdvの方が効果的でしたが、これは [Miyato et al. (2017)] でのテキスト分類の結果 (論文中 Tables 6)と一致しました。Advの欠点として、ラベル情報からの簡単な変換でノイズを生成しているため、モデルがAdvesarial Perturbation付きの入力に対して変にoverfitしてしまうのではないか、と[Kurakin et al. (2017)]は議論しています。VATはノイズ計算にラベル情報を使っていないためこの現象は起きず、今回の実験でもVATの方が性能が上がっているのではないかとか思っています。

現在、機械翻訳など文生成のタスクではLSTMからより性能の出やすいTransformerへと人気が移っていますが、Adversarial Trainingを適応した場合にはどちらのアーキテクチャでも同様の性能向上が見られました。

また、Virtual Adversarial Trainingは半教師あり学習にも適用できることを上で紹介しました。今回は、機械翻訳タスクの半教師ありの手法として効果的なBack-translation [Sennrich et al., 2016]と組み合わせることで、さらに大きく性能が上がることを確認しました。関連タスクに取り組む機会があればぜひ試してみてください。

マルチモーダルタスク

次に新しくデータセットを作った研究の中で気になったものを紹介します。

Adobe Researchの方々の研究で、RedditのPhotoshop Requestというページから「元画像」「編集リクエスト文」「編集された画像」の3つ組を収集しデータセットとして公開したものが発表されていました。先行研究の似たデータセットとして、動画中のフレームから抜き出した2枚の写真の違い(例: 青色の車が無くなった)をデータセットとして公開しているSpot-the-Diffや、2枚の画像の関係について説明したテキストが付与されているNLVR2があります。

 

論文の実験では「元画像」「編集された画像」を入力としてリクエスト文の生成を行っていました。二種類の画像の差分や関係性について表現するような言語生成タスクになっています。また、今回のデータでは、別のタスクとして編集リクエスト文から画像の編集を行う実験も考えられます。難易度はかなり高そうですが、今後の研究でテキスト指示によって画像を自由に編集できる研究がさらに発展すると面白いなと思いました。

([Tan et al. 2019]の図より)

 

セグメンテーションとの同時学習

最後に紹介する興味深いトピックは、テキストのセグメンテーション(分かち書き)を学習しながら、そのセグメンテーションで分割された系列で目的のタスクのモデルを学習していく話です。

NLPではCNN、RNN、Transformerなど様々なニューラルネットワークのモデルを使いますが、これらに共通している一般的な処理があります。与えられたテキストはまず始めに何らかの離散トークン列に変換し、各トークンに割り当てられた埋め込みベクトルを組み上げていくことで構成的な意味表現を得ています。また、機械翻訳のように文を生成する際にも全テキストが一気に生成されることはなく、トークンごとに順番に生成されていきます。

このように言語処理の根幹をなすのがトークン列への変換処理、セグメンテーションです。このセグメンテーションをどうするかによって、モデルの出力や性能が変わってきます。典型的なセグメンテーション処理としては、スペースでの分割や、Byte Pair Encoding (Sennrich et al., 2016)による分割、あるいは1文字ごと分割してしまって文字ベースでテキストを処理するという手もあります。日本語や中国語のように空白文字での分かち書きが付いていない言語では、なおのことどうすべきか奥が深いテーマです。英語にしても、スペース分割そのままに doing という文字列をひとかたまりとして見るか、あるいは do+ing として見るか、どちらがより良いのか(特に、ある機械学習モデルの性能をいかに効率よく高められるのか)は自明ではありません。なんにしてもある1つのテキストに対して様々なセグメンテーションというのが考えられ、NLPに関する工学としても言語獲得の研究としても興味深いテーマになっています。

 

以下の2つの論文では、テキストの出現確率を計算する言語モデルについて、同時にそのテキストの様々なセグメンテーションのそれぞれを考慮して周辺化で計算を行うモデル(と、その学習によって得られるセグメンテーションモデル)の構築を目指しています。

様々なセグメンテーションで訓練ならびに推論を行うことで、分割の曖昧性に頑健になったり様々なデータのパターンに触れることによる汎化の効果が期待できます。様々なセグメンテーションを考慮するというのは、例えば、次に his という単語が出現することを予測する場合に {his, h+is, h+i+s, hi+s} という分割の異なる複数のパターンについて計算を行っていくような処理です。しかし、長いテキスト上では可能なセグメンテーションそれぞれで全計算をやり直していては計算量が爆発してしまいます。この問題を緩和するために、論文では、「文脈側のテキストに関しては分割を考慮せずに全て文字ベースで扱う」というアイデアを活用しています。上のように予測(生成)する際には4パターン考慮した his ですが、この方法であれば、その次に繋がるテキストについて考えるときには、どういう分割パターンの his なのかが条件部に入らない式で一括で計算できます。その他、あるトークンの確率計算に際して典型的なsoftmax層でのスコアと文字ベースデコーダでのスムージング的なスコアを混ぜ合わせる構造や、セグメンテーションの各トークンの長さに対して正則化をかけるなどの効果的なテクニックも提案されています。


その他以下の論文でも、テキスト分類を文字と分割トークンの併用で解くモデルの訓練時に、様々なセグメンテーションで訓練データを入力することで分類性能が向上したと報告されています。昨年のACLで発表されたSubword Regularization (
Kudo, 2018)のように、多様なセグメンテーションによる汎化性能向上を示す面白い論文でした。

上ではセグメンテーションについて紹介しましたが、系列に関して曖昧性が生じる他の代表的な例としては、音声認識による書き起こしの予測結果が挙げられます。そのような曖昧性を残した複数の系列パターンを表すラティスに対して適用可能なTransformerとして、attentionのマスク処理やpositional embeddingに工夫を凝らした亜種を提案する論文もありました。

 

おわりに

今回は ACL 2019における論文をいくつか紹介しました。言わずもがな言語には、英語、中国語、日本語など様々なものがあり、それぞれが異なる文法、単語、文字を併せ持ちます。ACLでは、今回紹介した離散性や隠れた構造に関する挑戦の他にも、より大局的に複数言語間で学習の結果を共有や転移させようとする試みなど、言語ならではの課題や面白さが詰まった研究が多く発表されています。これらの研究が自然言語処理のみならず、離散記号や系列データを扱うその他の分野でも応用されていく可能性もあると思います。PFNでは、引き続きロボティクス、コンピュータビジョン、音声処理などの多様な分野とともに自然言語処理の研究開発を行っていきます。

2016年夏季インターンシップ開催報告

大野 健太
エンジニア

2016-10-28 18:41:49

PFI・PFNでは今年8, 9月に夏季インターンとして14名の方に来て頂き、機械学習・深層学習に関する様々なプロジェクトに取り組みました。このブログエントリでは、PFI・PFNのインターンシッププログラムの概要と、今年のインターンシップ、特に最終成果発表会についてを紹介します(写真は中間発表のポスター発表の様子です)。

2016%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%b3%e4%b8%ad%e9%96%93%e7%99%ba%e8%a1%a8

PFI・PFNのインターンプログラムについて

PFI, PFNでは、2010年からインターンシップを実施しています(PFNは2015年から)。夏季のインターンシップは毎年行っており、また毎年ではありませんが、春季にもインターンを実施しています。PFI・PFNのインターンシップの特徴として、8, 9月の2ヶ月間と比較的長期であること、インターンで行うプロジェクトのテーマに精通している社員がメンターにつき一緒にプロジェクトを進めていくこと(大抵の場合1人の学生に対してメンター2人)、インターン中の成果は論文やOSSなどの形で可能な範囲で公開できることなどが挙げられます。

準備に関しても4月から募集要項の作成を進めており、春季インターンも含めると、1年のうち半分以上はインターンに関して何らかのプロジェクトが動いていることになります。PFI・PFNがここまでインターンシップに力を入れている理由として、インターンを行った後に社員としてPFNに来ている方がメンバーとして活躍していること、社員の側もインターンで来ていただく学生の方々から最新の研究について学んでいること、インターンでのプロジェクトが学生の方の研究・学業にも直接的・間接的に役に立っているという自負があることなどが挙げられます。

選考は書類審査・コーディング審査・面接審査で実施しております(選考方法に関しては今後変更になる可能性は十分あります)。コーディング試験に関しては別のブログエントリにて、過去の選考で出題した課題を公開しておりますのでご参照ください。選考では、本人の興味・研究分野・得意な技術などを考慮し、指導できるメンターとの間でマッチングを行います。幸いなことに、PFI・PFNでのインターンを希望していただける方は多く、また、皆さん優秀な方が多いので、毎年選考には頭を悩ませています(そして、大体毎年想定以上の人数を採用してインターン期間中はてんやわんやになります)。今年の募集要項は過去のNewsをご参照ください。

今年の夏季インターンについて

PFNが事業を拡大し、人数面・設備面でキャパシティが増えたことで、今年の夏季インターンでは14人と例年以上に多くの方に参加していただきました(倍率としては例年と同等程度でした)。今年4月にオフィスを本郷三丁目から大手町に移転した時には空席がたくさんあると思っていたのですが、実際にインターンを開始したら、危うく席が足りなくなりそうになり、若干ヒヤヒヤしました。

インターンシップの募集する際に、大まかなテーマは設定していますが、具体的にどのようなテーマで行うかは採用後にインターン生とメンターとの間で議論を行い、プロジェクトの方向性を決めていきます。今年のテーマは以下の通りです。どのプロジェクトでも関しても異常検知・強化学習・深層生成モデルなどに関する最先端のテーマに取り組んでいただきました。

  • 対話における商品の営業
  • Automatically Fusing Functions on CuPy
  • Generation of 3D-avatar animation from latent representations
  • Response Summarizer: An Automatic Summarization System of Call Center Conversation
  • Imitation Learning for Autonomous Driving in TORCS
  • 3D Volumetric Data Generation with Generative Adversarial Networks
  • DQN with Differentiable Memory Architectures
  • Anomaly Detection by ADGM / LVAE
  • Multi-modal Deep Generative Model for Anomaly Detection
  • CNN based robotic grasping for randomly placed objects by human demonstration
  • Bayesian Dark Knowledge and Matrix Factorization

今年の新しい試みとして、中間発表・最終発表を従来の口頭発表形式から、ポスター形式に変更しました。また、最終発表は一般公開し、外部の方も参加していただけるようにしました。発表をポスター形式にしたことで、インターンの学生の方たちがPFI, PFN社員やお客さんと双方向の議論が出来たのはよかったのではないかと思います。最終発表会は当初2時間を予定していましたが、終了時間が過ぎても活発に議論が続いていました。最終発表会当日のポスターはリンク先のconnpassページにまとめておりますので、是非ご覧になってください(発表資料は順次追加していきます)。

今後のインターンシップに関して

PFNでは(私がPFN所属なのでこのような主語を置きます)来年以降も夏季インターンシップを実施する予定で、募集要項は4月頃に掲載する予定です。また、PFNでは、春季インターンなどの通年インターンシップやアルバイトも随時実施しております(通年でのインターンシップはまだ仕組みが整備されていないため、受け入れられる数が限定されていますが、HPへの募集要項の掲載などの準備を進めています)。PFI・PFNでのインターンシップやアルバイトに興味のある方は是非ご一報いただければと思います。

CEATEC2016に出展してきました 〜ロボット編〜

Taizan Yonetsuji

2016-10-20 16:03:19

PFNは2016年10月4-6日に千葉幕張メッセで開催されたCEATEC2016で、スマートピッキングロボットおよびバラ積みロボットの展示を行ってきました。ロボットの他にもドローンやDIMoに関する展示も一緒に行いました。こちらに関しては関連記事をご参照ください。

以下では、もう少し詳細な解説をしたいと思います。

続きを読む »

CEATEC2016に出展してきました 〜ドローン編〜

PreferredNetworks

2016-10-17 15:58:17

PFNは2016年10月4-6日に千葉幕張メッセで開催されたCEATEC2016で、深層強化学習に基づくドローン(マルチコプター)の自律飛行に関する展示を行ってきました。ドローンの他にもロボットやDIMoに関する展示も一緒に行いました。こちらに関しては関連記事をご参照ください。

ドローンスペースでは実機による自律飛行を披露しただけではなく、説明用のデモ動画を作って上映しました。以下がその動画となります。

 

以下では、この動画よりも少し踏み込んだ内容について知りたい方向けに解説したいと思います。

続きを読む »

Amazon Picking Challenge 2016 ~ドイツ・ライプチヒにて~

神谷保徳

2016-09-02 16:25:17

神谷です。

7月上旬、ドイツ・ライプチヒで開催されたAmazon Picking Challenge(以降APC)に、PFNとして参加しました。これは、Amazonが主催しているロボット競技会で、Amazonの倉庫内に在庫された商品から、購入された商品を棚から集めるタスクの自動化を想定した競技です。今回で2回目で、前回からのタスクである、指定された商品を棚からロボットで取得しカゴに入れるPickタスクと、新しく加わった、カゴに入っている商品を棚に入れるStowタスクの、二つのタスクがあります。Pickタスクは、前回から商品の種類や難易度も上昇しています。

実際に我々が作り上げたシステムの技術内容に関しては、PFI&PFNセミナーで概要ではありますが既に発表しており[1][2]、また日経Roboticsに弊社システムの解説記事や弊社岡野原のコラム、APC全体の技術解説も載る予定ですので、今回はドイツ・ライプチヒにおいて、実際に我々がどんなことを行っていたか、旅行記風に紹介しようと思います。


6/28、お昼頃、会場入りしました。スーツケースをたくさん持っているのは、手持ちのロボット部材や、工具があるためです。ぎりぎりまで開発を行っていたため、手持ちとなった物が多くあります。
DSC01675

輸送されたロボットアーム達。実は、輸送に時間がかかるため、本番用ロボットアームは先に送り、直前までの開発には別のロボットを使用していました。それにまつわる様々なトラブル回避もありました。そうまでしたのは、それだけ短期間での開発だったためでもあります。
DSC01691

箱開け。きれいに、きっちりと梱包されています。ぎりぎりまでの輸送タイミング交渉、また税関など、この輸送自体に関してもかなりの問題解決/回避が行われました。
DSC01701
DSC01699

設置の様子。設置に関しても準備を凝らしていましたが、それでも電圧の違いによるトラブルが少しありました。ロジスティクスの方と協力し、短時間で完了しました。
DSC01707

本番前々日
設置後、調整と改良が続きました。
本番前の調整では、奇跡的に隣にあった、ホームセンターが大活躍しました。例えば、照明条件の違いから、ライトを購入したり。ロボット競技では、現地でのイレギュラーがつきものです。
DSC01840

本番前日
調整と改良を続けます。
DSC01847

また、Amazon.deの見学にも行きました。
DSC01775

試走のスケジュール表。試走では本気を出していない(動作の確認に徹している)チームもあり、まだまだ分かりません。
DSC01789

本番直前。ぎりぎりまで改良を行いました。
DSC01999

そして本番。オレンジのTシャツの人が、Amazonの委員の人です。ターゲットのアイテムと、棚内のアイテムの配置は数パターンあり、くじで選択する形です。委員の人がアイテムを慎重に配置していました。また、棚のずらしも、配置前に行われます。
DSC02006

本番中。ハラハラドキドキ。本番のロボットの動作の様子はYouTubeに上がっています[3]。
DSC02007

終わりました。幾つかミスはありましたが、満足のいく動作でした。
DSC02009

そして表彰式
DSC02015

表彰式後の一コマ
DSC02018

その夜のパーティ。みんな笑顔。
他のチームの方やAmazonの方ともいろいろなお話をしました。
DSC02026

次の日はデモです。試合までは調整であまり見られなかった他チームのシステムについて、拝見、質問をしました。我々が開発中に気付かなかったアイディアも幾つかありました。また、我々のシステムについてもいくつも質問を受けました。
DSC02036

お片付け。ロボット達はまたPFNに戻ってきます。おつかれさまです。
DSC02038



この数か月間、非常に大変でしたが、結果も伴い、とても良い形となりました。
DSC02011

—————————————————————————
[1]http://www.slideshare.net/pfi/amazon-picking-challenge
[2]https://www.youtube.com/watch?v=gqcO8ZX0jB8
[3]https://www.youtube.com/watch?v=w7NgejZMSsA

GPUの祭典・GTC2016に参加しました

hido
Chief Research Officer

2016-04-27 08:13:33

比戸です。4月4日から開かれていた世界最大のGPUイベント、NVIDIAのGPU Technology Conference (GTC) 2016に参加しました。

続きを読む »

CES2016でロボットカーのデモを展示してきました

自動運転チーム

2016-01-21 10:14:40

こんにちは。Preferred Networksの自動運転チームです。

PFNは、2016年1月6日〜1月9日にアメリカのラスベガスで開催されたCES 2016でロボットの学習による自動走行のデモを行いました。これはPreferred Networksとトヨタ自動車様、NTT様との共同展示です。展示はトヨタ自動車様のブースの一部で行われました。

このブログではその中でどのような技術が使われているのかについて簡単に解説します。

続きを読む »

Chainer Meetup #01 を開催しました

preferred

2016-01-04 15:03:39

あけましておめでとうございます!PFI舛岡です。12/19にChainer Meetup #01@スマートニュースを行いました。

参加の倍率が1.8倍と参加するだけでも大変なイベントのようでした。
(ちなみに弊社社員P氏は抽選で落選しました)
また参加率も90%以上でとても大盛り上がりのイベントでした。
会場をご提供くださったスマートニュース株式会社、会場を準備してくださった@tkngさんありがとうございます!

イベントの様子はtogetterにまとめております。

イベント概要

今回のイベントのテーマを以下の様に設定しました。

  • Chainerとはなにか?
  • Cupyとはなにか?
  • Chainerはどのように使われているか?
  • Chainerの開発はどうなっていくのか?
  • Chainerの開発を手伝うにはどうすればいいのか?

Chainer開発者全員と、Chainerをサービスに使っている担当者の方に話をして頂きました。
またLTも募集をして8名の方に話をして頂きました。

発表資料

発表に使用した資料は以下の通りです。

Chainer入門と最近の機能(@unnonouno)

CuPy解説(奥田)

超自然言語リアルタイム解析をサービスに組み込んだ話(@ixixi)

http://qiita.com/ixixi/items/a3d56b2db6e09249a519

Capitalicoでのchainer 1.1→1.5バージョンアップ事例(@arrow_elpis)

ディープラーニングにおける学習の高速化の重要性とその手法(@yukofuji)

学習済み Caffe モデルを移植してみた(@ohtysk)

ボケるRNNを学習したい(@aonotas)

深層学習ライブラリのプログラミングモデル(yutakashino)

Chainer向けGUI環境DEEPstationについて(shi3z)

Webアプリ診断AIの開発(bbr_bbq)

デモ画面

Chainer ハンズオン勉強会について(@SnowGushiGit)

アカデミアでの Chainer 利用の実例 深層ニューラルネットワークを用いた日本語形態素解析(@Ace12358)

Chainer: Development Plan(@beam2d)

Chainer Contribution Guide(@@delta2323)

イベントの雰囲気

IMG_20151219_175632IMG_20151219_171928

 

IMG_20151219_164703IMG_20151219_163707

IMG_20151219_165531IMG_20151219_163104

Chainerドーナツスポンサー

今回、Chainerロゴにそっくりのドーナツをエヌディビア合同株式会社の@yukofuji様に準備頂きました!ありがとうございます!その他にチョコや本もご提供頂きありがとうございます!
(セブ○イレブ○のドーナツが一番そっくりだったんですが、1週間前に関東で販売を停止してしまいました。。。)

CWkPmRlVAAAfegICWkPmReU8AAd-03

今後のイベント開催予定

懇親会等でも継続的にイベントを開催して欲しいとの声をたくさん頂きました。(実は)次回イベントも準備中です。詳細が決まり次第またconnpass等で告知しますので、お待ち下さい!

深層学習でバラ積みロボットの0から学習

mattya

2015-12-07 18:48:07

乱雑に積まれた物体を取り出す産業用ロボットの動作を、ディープラーニングで学習しました。

こんにちは、松元です。今回は、国際ロボット展2015にてFANUCブースで出展した「バラ積みロボットの0から学習」について解説したいと思います。

まずは次の動画をご覧ください。

背景

「物を取る」というのはロボットの最も基本的なタスクの一つで、あらゆる場面で必要となります(たとえば産業用では、カゴから部品を取り出してベルトコンベアに乗せるといった用途で頻繁に使われます)。このときに、取るべき部品が決まった位置に整然と並んでいたり、平らな面に一つだけ置かれているなら簡単なのですが、箱にぐちゃっと積まれたところから一つ取り出したいというケースもあります。このようなタスクをバラ積み取出しといいます。

様々なバラ積み取出しの活用例(google画像検索)

いま、3Dカメラによってバラ積みされた領域の深度付き画像が得られているとして、取り出したい対象(ワークという)の座標を返すことを目標とします。通常は次のような手法が用いられます。

    • 取りたいワークの写真やCADデータとパターンマッチして、目標位置を探す

ワークの形状が予め完全に分かっている場合に有効です。

    • ある程度以上の面積の平らな場所を探して、そこを目標とする(吸着やマグネット式のハンドの場合)

こちらはワーク形状が未知の場合にも使えます。

既存手法(FANUCの製品)によるワーク位置の検出 しっかりチューニングを行えば高い精度が出る

既存手法(FANUCの製品)によるワーク位置の検出
しっかりチューニングを行えば高い精度が出る

しかし、いずれの手法でも、判別の閾値などのパラメタチューニングには熟練を要します。また、特定のハマりパターンがあったときに、それを回避するのが難しいという問題もあります(今回取り組んだ円柱ワークの場合、ワークが複雑に重なっている時や、円柱が2つピッタリくっついて並んでいるときなどに、誤検出することがありました)。

今回私たちはディープラーニングを用いることで、このような問題を解決し、既存手法の熟練者によるチューニングに匹敵する精度を自動で達成することができました。

手法

セットアップ

・ワーク
鉄製の円柱(高さ5.0cm, 直径2.5cm)が200個程度箱にバラ積みされています。

ワークとハンド

ワークを吸着して持ち上げている様子

・ロボット
取り出しには、FANUC製の「LR Mate 200iD」というロボットアームを用いました。ロボット展の会場を見渡すと、あちらこちらで使われているのを目撃できるくらい、産業用では広く使われている優秀な機体です。
このアームは同じくFANUCの「R-30iB」というコントローラーから制御します。
PCからコントローラーに目標座標(x, y, z, yaw, pitch, roll)を指示すれば、そこに移動するまでの経路を自動で計算して正確に動いてくれます。
動作も高速で、3秒に1つくらいのペースでワークを取っていくことができます。

今回用いたロボット「LR Mate 200iD」(FANUC公式サイトより引用)

・ハンド
ロボットの先端に取り付け、ワークとコンタクトする部分をハンドといいますが、
今回は空気による吸着式のハンドを用いました。
先端はジャバラ状になっていて、多少ワークが傾いていても取ることができます。
吸着動作後に気圧を測ることで、ワークの取得に成功したか失敗したかを自動で判別します。

・ビジョンセンサ
箱の上方に3Dカメラがついていて、箱内部の深度付き画像を取得します。
3Dカメラとロボットの座標系の対応をキャリブレーションして、
深度付き画像から、ロボットの移動目標座標を求められるようにしてあります。

学習

学習は次のような流れで行います。
(1) 深度付き画像を撮影する
(2) 現在の予測モデルのもとで最善の(x, y)を選ぶ(学習初期では領域内の点をランダムに選ぶ)。深度付き画像からzが求まるので、この(x, y, z)を目標座標とする
(3) (x, y, z)にロボットを動かし、ワークの吸着を試み、成否を取得する
(4) (x, y)周辺の深度付き画像を切り出して、成否のラベルと組にして保存する
(5) 現在得られているデータから、画像から取得成否を予測するモデルを学習してアップデートする(この処理は数百回おきに行う)
(6) 以上を繰り返す

集めたデータの一例

集めたデータの一例。こういったラベル付きデータから、CNNを教師あり学習する

予測モデルにはChainerで実装したCNN(convolutional neural network)を用いました。目標座標周辺を切り出した深度付き画像を入力とし、取得成功確率が出力となります。
(5)での学習処理は教師あり学習ですが、学習に用いるデータセットの構築に現在のモデル自身を用いるため、能動学習の一つと捉えることができます。

ロボットを動かすのはPCから自動で指示が送れるので、ときどき空になった箱をリフィルする以外は自動でサイクルを回すことができます。ディープラーニングではデータの数を揃える必要があるので、ほっとけばどんどんデータが集まってくるという設定にすることはとても大事です。

結果

学習当初のランダムモデルでは50%ほどの取得成功率だったものが、
学習データが集まるにつれて、2000データ(約4時間)で70%、5000データ(約10時間)で90%の取得率を達成できました。

学習に伴う取得成功率の向上

学習に伴う取得成功率の向上

学習の進捗は、実際の撮影された画像に対して、CNNがどのような評価値を出力しているかを可視化することでも評価できます。
下の図は、1000データ学習後と5000データ学習後のCNNで、同じ盤面に対して評価値を出力させた図になります。明るい色で塗られている部分が、「取れる」と判断した座標になります。

学習による予測精度の向上

学習による予測精度の向上

基本的には他のワークが上に重なっていないワークの、側面あるいは端面の中心付近を狙えば取得に成功しますが、
1000データ学習の時点でも大まかにはその性質が学習できていることが分かります。
しかし、青い丸が付けてあるところのように、ワークとワークの境界部分や、上に他のワークが重なっているワークにも高い評価値が割り振られているところがあります。このようなエラーが、5000データ学習後にはぐっと減っていることが分かります。

このような精度の改善は、取りやすいワークを全て取ってしまった後のような難しい局面にて威力を発揮します。
学習前は何回も連続で失敗してしまうようなところで、数少ない取れるワークを正確に狙うことが出来るようになり、90%の取得率を達成できるのです。

本手法の意義

    • 熟練を要するチューニングのプロセスを、自動で行うことができるようになりました

ある程度までは手動チューニングで精度を高め、それでどうしても誤検出するケースを学習で改善するという使い方もできます

    • 取得するワークの形状が不定の場合にも適用できます

食材を扱うロボットや、ゴミを分別するロボットといった応用が考えられます

    • 転移学習が可能

Deep Learningの優れている点として、汎用的なモデルをひとつ作ってしまえば、様々なタスクに転移できることが挙げられます(imagenetの画像分類タスクで学習したモデルが、画像からのキャプション生成に使えるなど)。
バラ積み取出しにおいても、複数種類のワークで学習を行ったり、シミュレータ上で大量に学習したものを、転移学習することも可能でしょう

    • 分散学習が可能

複数台で同時にデータを集めれば、それだけ高速に学習できます

関連する研究

Supersizing Self-supervision: Learning to Grasp from 50K Tries and 700 Robot Hours
一般物体をハンドで掴むロボット。本研究と同じように、ランダムに掴むところからデータを貯めて学習を行う。取得したい物体が任意の一般物体であり、ハンドも挟むタイプのものであるため難しい問題設定。700時間という時間をかけても取得成功率は70%くらいでちょっと悲しい。

Dex-Net 1.0: A Cloud-Based Network of 3D Objects for Robust Grasp Planning Using a Multi-Armed Bandit Model with Correlated Rewards. Ken Goldberg, et al. ICRA 2016
UC BerkeleyとGoogleの共同研究で、Bay area robotics symposium 2015で発表があった。
10000種類の物体の3Dモデルを用意して、シミュレータ上でどこが掴みやすいかを1000台のマシンで並列に学習するという。
産業用ロボットは指示されたとおりに非常に正確に動き、また、学習初期の頃から実機でいきなり実験すると物を壊してしまう可能性もあるため、シミュレータを使うことは理にかなっている。
一方で、バラ積み取り出しのよくある失敗例として、取得動作の際にワークが崩れて動いてしまったり、ワーク間の光の反射によって位置推定がずれたりといった、シミュレーションしにくい要素が絡んでいることも事実である。
シミュレータで得た学習結果を、いかに実機に適用するのかというのは今後の大きな課題であろう。