【フィンガービジョン×ロボット】思いついたら即実装!机上の空論では意味がない

プロフィール


東北大学
助教 山口明彦
2011(H.23).3.31
 奈良先端科学技術大学院大学 情報科学研究科
 情報システム学専攻 博士後期課程 修了
2011(H.23).4.1-2011(H.23).7.31
 日本学術振興会特別研究員(PD)
2011(H.23).8.1-2015(H.27).3.31
 奈良先端科学技術大学院大学 情報科学研究科 特任助教
2012(H.24).9.16-2013(H.25).3.15
 大阪電気通信大学 非常勤講師
2014(H.26).4.14-2015(H.27).4.14
 カーネギーメロン大学 ロボット研究所 客員研究員
2015(H.27).4.1-2016(H.28).3.31
 奈良先端科学技術大学院大学 情報科学研究科
 博士研究員(非常勤)
2015(H.27).4.20-2017(H.29).8.31
 カーネギーメロン大学 ロボット研究所 博士研究員
2016(H.28).9.1-2016(H.28).10.31
 ブレーメン大学 人工知能研究所 客員研究員
2017(H.29).9.1-現在
 東北大学 大学院情報科学研究科 助教

サイエンスとデザインから始まる研究人生

小学2年生の時に書いた“一冊の研究ノート”から、山口氏の研究人生が始まる。
研究の内容は“花びらに色をつける”というもの。
シクラメンに色のついた溶液を吸わせ、花びらまで登っていき色がつく実験をノートにまとめていた。

実験では、溶液に絵の具を使ったら粒子が荒いため花びらまで届かないが、ペンのインク溶液だとちゃんと花びらまで色が付くといった発見にワクワクし、研究の楽しさを知る。
当時を振り返り山口氏は、自分が植物のデザインをしているような感覚がして面白かったと話す。

また同じ時期に、システムから電気回路まで、何でも開発出来るエンジニアの父親の影響で、簡単な電気回路を設計し、実際に造るうちにモノづくりの楽しさも知る。

中学生になると、今度はプログラムでデザインをするために独学でプログラムの勉強を始める。
はじめは結晶のような綺麗な図を描く為に、円や線を動かすプログラムを作った。
その開発の過程で、山口氏が理想とする図を描くプログラムを開発するために、sin・cos関数が活用できることを知り、プログラムに取り入れた。
当時の先生が、まだ習っていない関数を取り入れて造られたプログラムを見て驚いたという。
また、フラクタルに魅了され、その特徴を有したマンデルブロ集合をプログラミングで表現した。

【山口氏が当時プログラミングで制作したマンデルブロ集合の写真】

高校生になると、人間の言語をコンピューターに理解させるにはどうしたらいいか考え始める。
当時山口氏は、人間が言語を用いて考えているとすれば、その言語をコンピューターに理解させるプログラムを造れば人工知能になるのではないかと考えた。
その為には、プログラム言語がどのように造られるかということを、理解することが必要だと考える。
更に、プログラム言語をBasicに近いインタプリタで造り始め、数式を評価できるくらいのプログラムが完成する。(プログラム言語が完成したのは大学3年生の時)

また、学校のプロジェクトでは光通信機の開発に着手する。
当時、光通信機の造り方の情報が少なかった時代に、電子回路の本などで調査し、独学で理論を構築し、仮説を立て、一つずつ検証して、自作の光通信機を完成させた。

ロボットシミュレーション“バーチャルからリアルへ”

その後、ロボットハードの知識を勉強するため、京都大学の電気電子工学科に進学する。
しかし、大学では電気回路、電子回路、マイクロ波や送電などの勉強が中心で、ハードを造ることは少なかったという。
やがて研究室配属となり、コンピュータービジョンの研究室に所属する。
研究室では、画像認識も知能の一つと考え、ロボットの体を考慮した、起こりうるモノ・コトを理解する研究していた。

しかし、コンピュータービジョンで興味が持てる研究分野が少なかったため、山口氏はロボットの運動学習の研究を始める。
まず始めに、ヒューマノイド研究者の梶田秀司氏が書いた「ヒューマノイドロボット」の本で、Featherstoneの方法による順動力学を勉強し、ロボットのシミュレーターを開発した。
更に運動学習の研究として、ジャンピングロボットを学習させるために、トランポリンをシミュレートする機能を開発する。

ロボットの行動を最適化する時、パラメーターに対してどう言う結果が出るか、ジャンプさせた時にどうジャンプできるかは難しい関数であり、その難しい関数がわからなければ微分することはできないとう課題に直面する。
山口氏は試行錯誤した末に、微分関数を知らなくても最適化できる手法である、遺伝的アルゴリズムを選択することで運動学習を完成させる。

【ジャンプのシミュレーション動画】

その後、奈良先端科学技術大学院大学に連携講座を置く、国際電気通信基礎技術研究所(ATR)の脳情報研究所へ進む。
研究所では、実際に人間に相当するような機器をロボットとして制作し、組み立てた脳の理論が正しいか検証することによって、理解を深めるような研究を行っていた。
例えるなら、脳を人工的に造ることによって、脳を理解するといった研究だ。

当時、山口氏が行っていた研究はロボットの強化学習だ。
強化学習とは、タスクを達成する方法をロボットが知らなくても、試行錯誤を繰り返して自分で学習する方法である。
その方法に「報酬関数」と呼ばれるタスクの目的を表した関数を書き込み、ロボットに学習させたいことを表現し、実行させる。

この方法を使用することにより、”テニスのボールを打つ”というモーションを、事前知識なしの状態から(ゼロから)学習させることに成功した。
ロボットが自動でモーションを学習するため、報酬関数を変えるとジャンプすることも可能である。
研究では、テニスボールを打つこととジャンプの間の共通項である「転倒回避」を分離して学習することにより、どちらか一方を学習した後で他方を学習する際に、効率的に学習できる枠組みを開発した。

【ボールを打つシミュレーションの比較動画】

その後、博士課程では脳情報研究所から、奈良先端大のロボティクス研究室に移動した。
移動の理由は、脳情報研究所では脳機能の解明と応用に主眼が置かれていたが、山口氏自身は、実装する事を考えた上で、脳が持つ学習や推論機能を工学応用することに興味があったからだ。

ロボティクス研究室では、これまでのシミュレーターの中での学習だけではなく、実機のロボットでも、ゼロから新しい知識を学習する研究を開始した。
この研究でも強化学習のアルゴリズムを使用し、高速で学習できるような枠組みを開発することによって、シミュレーションなしでも実機を使いゼロからモーションを学習させることに成功した。

そして、ロボットに報酬関数を与えて学習を開始してから、20分ほどでロボットは匍匐動作を学習することができた。
その際、報酬関数は前進速度に比例するように設計し、ロボットは報酬をたくさん集められるようなモーションを、試行錯誤しながら見つけられるようにした。

【クモ型ロボットによるほふくモーション学習の動画】

これまで話してきた強化学習の特徴として、ロボットや環境のダイナミクスが分からなくてもわからなくても、ロボットは自動で学習できるというものがある。

ダイナミクスとは、物理特性ということもでき、ある状態でロボットが起こした行動に対してロボットや環境がどう変化するか(状態の変化)を表すものだ。
そして、ダイナミクスがわからなくても学習できるということは、ロボットが置かれている環境がカーペットなのか、氷の上なのか、あるいはロボットの身体がクモ型なのか人型なのか、物理方程式として表されていなくても構わないということである。

上記の動画ではそれを示すために、摩擦の大きいカーペット、滑りやすいフローリング、異なる型のロボットと、ダイナミクスが異なる状況でロボットを学習させている。
また、環境が変わっても、それまでに学習した経験を再利用して効率的に新しい環境に適応し、元いた環境に戻ってもすぐにモーションを切り替えられるような、知識の蓄積の方法も開発した。
更に、ロボットの身体が変化する(例えば足が折れる)場合にも同じ方法が使えるという。
これらの研究は、博士号を取得し、奈良先端大の特任助教に就任した後も継続して行われた。

本質を探究し、0から1を生み出す

ある日、山口氏は奈良先端大からアメリカのカーネギーメロン大学(CMU)へ1年間の留学が決まり渡米するが、CMUの研究生活が快適で居心地がよく、そのまま就職することにした。
それまでの強化学習の研究から、実用的で役に立つモーション、特に物体操作(マニュピレーション)への適用に大きな壁があることを実感した。
マニピュレーションと言っても対象範囲が広すぎる。
そこで、実現可能だがチャレンジングなタスクを設定することから始めた。

設定したタスクは“注ぐ”という動作。
その動作に山口氏は面白みを見出した。
私たち人間は、“注ぐ”という動作を様々な場面、場所で行っている。
そして、多種多様な液体や粉体がある中、人間は多くのものを注げているのだ。
注ぎ方も様々で、グラスを傾けながら注ぐ、塩胡椒を振り掛ける時は容器を叩きながら注ぐ、洗剤をかける時は容器を押し潰しながら注ぐ、重いものを移し替える際は両手を使って注ぐ、ケチャップなどは振りながら注ぐなど。

ロボットを現実世界に投入することが難しい理由の一つとして、日常生活で扱われるようなスキルの多様性への対応がある。
工場などの製造、工業用ロボットであれば、動作は制限されてくるが、人間の生活空間などでは、個人によって生活環境も異なれば、生活リズムも違う、扱うものも違う。
しかし、人間の場合、様々なモーション(スキル)を組み合わせて、状況の多様性に対して柔軟に適応している。
スキルを柔軟に組み合わせる能力、そこに本質的な答えがあるのではと考え始め、ロボットでも実現できるように、研究を開始する。

「様々なスキルの柔軟な組み合わせが、状況の多様性を扱えるカギである」
この仮説は本当に正しいのか?
その疑問を追求するべく、”注ぐ”タスクを題材に研究を進めていった。

【山口氏が注ぐタスクをピザ作りで実演している動画】

注ぐスキルには様々なタイプが存在する。
上の動画は自身でピザを作る様子を撮影したものだが、そのほとんどの工程が注ぐタスクで構成されている。

研究していくと、本質的に重要なものが、三つあるということがわかった。
一つ目は、様々なスキルをライブラリーのような形で持っておく。
二つ目は、現在の状況に合わせるために必要な推論のアルゴリズム。
三つ目は、推論がうまくいかなかった場合の学習のアルゴリズム。

これらのエッセンスが組み合わさることで、多様な状況で注ぐタスクを達成できることを示した。
まずはシンプルで単純なアルゴリズムの組み合わせから考える。
推論と学習のいずれも、過去に提案された手法で実現できることがわかった。

しかし、それだけでは実現できないことも見えてきた。
ロボットがそれまで経験したことがない状況、例えば見たことがない形の容器や粘性といった物理特性の液体に対して、どのようにスキルを選び、モーションを調節するのか。
いわゆる汎化性の実現が次の課題であるとわかった。

そこで、再び強化学習の研究に戻る。
ただし今度は新たな理論を持って、だ。
強化学習の他にも深層学習を取り入れ、上記エッセンスを中心に理論を組み立てていく。
シミュレーションで注ぐタスクにおける汎化性が実現できることを示し、新たなタスクに取り組んでいるところだ。

更に、山口氏は“料理をする”ロボットを実現するという、チャレンジングな研究を始める。
まずはデモンストレーションとして、人間がロボットを遠隔操作して、バナナを向くことができるのかということを検証してみた。
人間にとっては簡単な行動であるが、ロボットにとっては難しく、人間と同じようにむこうとすれと、バナナの皮でロボットの手が滑ってしまった。

次にバナナに切れ目を入れ、その部分に指を入れてむいてみてもうまくいかず、ナイフを使い、切れ目を広げてみても成功しない。
最終的にはナイフを中に入れ、スプーンですくうようにしてバナナの実を掘り出し、40分かかったがタスクは達成できた。

【ロボットでバナナの皮を剥く動画】

この実験では、人間が遠隔操作していたため、人間の知能と変わりがないものの、身体はロボットを使っている。
つまり、ロボットがバナナの皮むきを自動でできないのは、ソフトウェア(AI)の問題であると言える。
深層強化学習でこのミッションを達成させるためには、数万〜数百万の学習サンプルが必要だったりする。

しかし、今回はバナナの皮むきはたった一回のみで実現できた。
ロボットが“バナナの皮をむく”というタスクが達成できた理由の1つとして、人間が失敗しながらでもタスクを遂行する適応力の高さの秘密が隠れていると考えている。

また、この実験ではロボットを操作する際に、バナナが滑って持てないという課題が見つかった。
滑っているかどうかはセンサーがついていないため、コントローラーにフィードバックして返すことができない。
ロボットによるバナナの皮むきを自動化する際にも問題になるため、山口氏はロボットの体をアップグレードする必要があると考えた。

次世代の触覚センサー“フィンガービジョン

ロボットの体をアップグレードするために作り出したのが、次世代の触覚センサー“フィンガービジョン”である。
透明で柔らかい素材(皮膚)でカメラを覆った構造をしており、皮膚の変形をカメラで捉えることで外力分布を推定する。
更にカメラの映像を解析することで、操作している物体の滑りや変形といった変化も読み取ることが可能だ。
この“フィンガービジョン”をロボットハンドに搭載することで、掴んだ物体の滑りを自動で回避する制御などが実現できる。

【フィンガービジョンが滑りや物体を感知している動画】

滑りの回避制御を応用することで、物体を潰すことなく、様々なものを持ち上げることも可能だ。
人間でも崩してしまう可能性のある木綿豆腐も、持ち上げることができる。

フィンガービジョンによる滑りの自動回避を使って、遠隔操作によるバナナの皮むきに再挑戦したところ、15分程度まで時間を短縮できた。
フィンガービジョンはロボットの性能向上に役に立つ、そう確信した。

今後の展開について山口氏は、フィンガービジョンに関しては研究開発で使いたいという人もいるし、自分のところだけにと留めておくのはもったいないと思っているので、広めていきたいと語る。
現在、HPにオープンソースとしての公開もしているそうだ。
また、展示会などでデモを見た方から使ってみたという声が多数あったため、今後は製品化を目指しつつ、学術的にも研究し、発展させていきたいと話してくれた。

フィンガービジョンは、ロボットの安全性向上や、野菜や果物など柔らかいモノの取り扱いなど、様々な分野での活用が期待されている。

【フィンガービジョンの写真】

やめたくなければ、もがきなさい

山口氏よりロボットの研究、開発を指す方へメッセージを頂いた。
私の夢は人間以上の行動生成能力を持ったロボットを開発すること。
具体的にはロボットAIを作ることだが、それは単純にプログラムだけではなく、ロボットの体として必要な機能を含め、実装していくということである。

脳だけあっても意味がないため、ロボットの体と連動させて、ロボットAIを創りたい。

これからロボットの研究や開発をする方へのアドバイスは、思いついたアイデアをすぐに試し、その活動量を限界まで高めることが大切ということ。
アイデアが上手くいくか、いかないかを、机の上で考えているだけではなく、実際に手を動かして検証する。
私がフィンガービジョンのプロトタイプを作った時も、アイデアを思いついてから一週間位で材料を買い、パッと造り、そこから改善点を見つけ、一個一個課題を潰していった。

いつも心掛けていることは、途中でモヤモヤしたネガティブな考えにとらわれないよう、ポジティブに次にどうしたらいいかと考え続けることだ。

そして、行き詰まったらひたすらもがいて、思いついたことを片っ端から試す。
活動量を高めることが大事と話したが、極限までもがいてどんどん試しまくると、解決の糸口が見えてくる。
行き詰まる時は、答えがないから行き詰まっているわけで、それを突破するには手当たり次第やるしかない。
そのモチベーションがキープできるなら、誰かに分からないことを聞いたり、インターネットで質問すれば、何かしらの糸口が見つかる。

辛い時に、もがけないなら、やめるしかない。
やめたくなければ、もがきなさい。
未来で会えることを、楽しみにしています。

山口氏は人工知能(脳)だけが発達しても、ハード(体)と連動していなければ、人間を超えるロボットを作ることはできないという考えを持っており、日々奮闘している。
そして「やり続けたければ、もがくことを止めてはいけない」という言葉に強い信念を感じた。

山口助教 HP URL: http://akihikoy.net/info/index-j.php

Sharing is caring!

紹介 さくまみさき

楽しく、驚く記事であり、製作者の言葉が、一人でも多くの人の頭の片隅に残るような記事を書いていきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です