PR

 図4がone-shotでの模倣学習を実現するDAMLのネットワーク構成である。大まかな構成は通常のCNNと変わらないが、特徴的なのは(1)模倣学習を実現するために人間のデモ(例示)映像と、ロボットのデモ映像、その両方を受けられるよう、入力が2股に分岐していること、(2)他人のプレーを見る際の審美眼となる専用のadaptation目的関数(Lψ)が、DNNの後段に続く形で、外部に置かれていること(図中の右側、ピンク色の枠の部分)、である。DAMLは模倣学習であるため、ここでいう「他人のプレー」とは人間の例示のことである。人間の動作のどこに着目すれば、自ら(ロボット)がうまくそれを真似し、再現できるかを、この外部の目的関数ではじき出す。

図4 one-shotの模倣学習を実現するDAMLのネットワーク構成
図4 one-shotの模倣学習を実現するDAMLのネットワーク構成
大まかな構成は一般的なCNNだが、学習データの与え方と目的関数(損失関数)の取り方に特徴がある。人間のデモ映像とロボットのデモ映像とで、異なる損失関数を使う。まずは①人間の例示(デモ)映像を1フレームごとに入力する。②上側にある目的関数Lψ(時系列convolution層)を使ってCNN本体のパラメータ(重み)の更新量(α∇θLψ(θ,dh))を算出し、新しいパラメータφとする。③ロボットが同じタスクを実施した際のデモ映像を入力する。④下側の損失関数LBCを使って、CNN本体とLψの両方のパラメータを更新する(更新量はβ∇θ,ψ LBC(φ,dr) )。これにより、上側のLψが人間のデモ映像に対して鋭敏になり、CNN本体のパラメータθをone-shotで更新する勾配を、meta-learningを通じて獲得・出力できるようになる。(写真:UCB)
[画像のクリックで拡大表示]

 DNN自体は入力画像を受け取り、そこから直接、ロボットに動作指令を出すようになっている。具体的には、ロボットの手先ハンドの速度および角速度、合計6次元の情報を出力する。前段の部分で画像認識のような処理を行い、後段の総結合層の部分がロボットのコントローラ(強化学習で言えば方策に相当)のような処理を行っている。

 なお、中央付近にある画像処理部の出力fは、入力画像中で特に注目すべき特徴点の座標が出力される。人の腕や人が操作している対象物など、例示したタスクに特に関連するような点が抽出される。本誌が2016年7月号の記事4)で解説した「spatial softmax層」という処理を使っている注1)

注1)前段のCNNで特定のタスクへの関連度合いが確率として出力され、その確率をその画素の座標と掛け合わせることで、最も関連する画素の座標を出力する仕組みである。今回のDAMLでは、この特徴点をx方向、y方向で合計128個用いた。

目的関数が2つある意味

 DAMLでは学習を2段階で行う。まずは①人間のデモ映像を入力する。数十種類の対象物を取り上げて、皿などの器に入れるタスクを3~8秒で行い、ここから40フレーム分を抽出して1フレームごとに入力する。次に②外部の目的関数Lψを用いて、このDNN本体を更新(adaptation)するための勾配を算出し、画像認識部とコントロール部を更新する。ここまでが第1段階である。

 次の第2段階では、③ロボットのデモ映像を入力する。このロボットのデモ映像は何でもよい訳ではなく、①で人間が行ったのと同じタスクをロボットに実施させた際の映像である必要がある。そして、このときに④DNNのコントロール部が出力した動作指令と、デモ映像の際にロボットが取った実際の動作指令との誤差を取り、これを逆伝播させる。

 つまり、DAMLのDNNには、外部に置いた審美眼となるadaptation目的関数Lψのほかにもう1つ、教師データとの誤差を取る一般的な目的関数LBC(損失関数)もあるわけだ。このLBCで得た誤差情報を逆伝播させる際は、DNN本体に伝えてそのパラメータを更新(学習)させるだけでなく、上部にあるもう1つの目的関数Lψの内部、つまり審美眼の側にも伝える。

 実はDNN外部にある審美眼となるadaptation目的関数は、それ自体もニューラルネット(CNN)で構成してある。DNN外部に置いてあるといっても中身は通常のCNNであるため、解に収束するための何らかの勾配情報が得られれば、審美眼であるLψも更新して学習できる。Lψを学習させるために、下側の通常の損失関数で得た誤差情報を伝播させて使うという訳だ。

見まね学習の難しさ

 しかし、ここで疑問が湧くだろう。DNN外部にある上部の目的関数は、本当に審美眼に足るほどの妥当な情報を出力できるのか、というものだ。直観的には、単純にDNNの外部に別のCNNを設けたからといって、それが有用な情報を出力するとは考えにくい。

 DAMLにおいてこうしたトリック的な仕組みを使っているのは、見まねによる模倣学習の本質的な難しさに起因している。模倣学習といっても、例示をする人間の側に関節角センサやトルクセンサなど豊富な計測装置を装着させ、それらの情報も学習に使えるのであれば、人間の自由度や運動学がロボットのそれと異なる問題はあるにせよ、問題設定はやや易しくなる。

 しかし、DAMLではそうした情報は一切使わず、あるのは人間のデモのカメラ映像だけである。学習のために人間のデモ映像をDNNに入力したとしても、その際の人間の関節角や関節速度といった教師データとなり得るデータがない。このため、単純に「教師データとの誤差を取る」という通常の教師あり学習のテクニックが使えないのである。