言語処理学会 第24回年次大会 発表論文集 (2018年3月)

深層強化学習を用いたロボットの自然言語による制御への取組み
橋本さゆり †金子 晃 †小林一郎 ††お茶の水女子大学 人間文化創成科学研究科 理学専攻 情報科学コース†{g1320530, kanenko, koba}@is.ocha.ac.jp

1

はじめに解不能であり，かつ他のロボットへの転移学習も困難なデータとなる．これを人間に分かりやすい自然言語

近年，社会の高齢化に伴い，ロボットの普及が広がで表現可能ないくつかの中間動作（タスク）の流れとりつつある．今後，家庭内にロボットが入り込んだ際して表現し，更に個々のタスクを単位動作の組み合わに人間がロボットに自然言語による指示を行い，ロボッせとして表現できれば，ロボットへの指示も出しやす

トが人間の言葉から新しい行動を自発的に学習してくく，他のロボットへの転移学習もやさしくなると考えれることが期待される．そこで本研究では，深層強化る．最初に挙げた例では，「はめる」は「掴んで」「運学習を援用したロボットの自然言語による動作制御のび」「押す」という一連のタスクの系列となり，個々試みを目指す．そのため，ロボットの動作を自然言語のタスクは更に，例えば「掴む」は，腕を回し，手をの言葉で表現する仕組みの構築を試みる．すなわち，下げ，指を閉じること，のように分解されて図 2 のよ

1. ロボットにさせたい仕事（ジョブ）をそれに必要な動作を表す通常の言葉の列として表現する．

うな基本動作の系列になる．

2. ロボットが深層強化学習で得た行動をそれらの言葉で人間に説明できるようにする．の二つを目標とする．本発表では物理シミュレータ

MuJoCo の上で動くロボットアーム（以下簡単のためロボットと略称する）を用い，具体例として，以下の図1 のように右側の白い円柱とタブがある状態から，左側の状態にするというジョブを取り上げる．このジョ

図 2: 動作の言語化

ブを我々は「（円柱をタブに）はめる」という言葉で表現するが，これを実現するのに，ロボットはどのよ
ここでのジョブとは，ロボットに与えられる課題でうな動作を行なわなければならないかを考える．

あり，ロボットの動作を表現するのに目的語（ロボッ
トの動作対象物）や補語（目標地点など）を伴う文章で表される．また，タスクとはジョブ達成のためのステップであり，これも目的語や補語を伴う文章で表される．ロボットは各タスクを一連の動作の系列で遂行する．この動作の基本単位に我々は自然言語の単語を割り当てる．本研究では更に，より難しい「詰める」というタスクを，ロボットに円柱を持ち上げて空中を移動させタブに上からはめる一連の動作として実現することも目指している．
図 1: 「はめる」に対応する動作

このジョブを実現するためのロボットの動きは，関節の物理的な動きの系列となるが，それは人間には理― 121 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

2

記号列によるロボット制御
そこで以下のような動作の基本単位とそれを呼称する言葉の辞書を用意する．この表の順序は使用しているロボットのシミュレーションモデルにおける関節の番号に従っているが，我々は記号列ではなく，自然言語表現の共通化を目指しているので，記号の割り当ても共通化さえできれば良いとする．我々が提案したいのは，プログラミング言語で例えれば C 言語等の機種非依存の高級言語に相当する部分であり，アセンブラに対応する実際のロボットの制御は個々の機種に任せるという立場である．

名称
上腕を回転
上腕を上下
肘を回転
下腕を上下
手首を捻る
手首を上下
右指を開閉
左指を開閉

方向
左下右下右下左左ID
ACEGIKMO方向
右上左上左上
右右ID
B
D
FH
JLN
P

動きの単位
0.05 × 60
0.05 × 60
0.05 × 60
0.005 × 60
0.05 × 60
0.05 × 60
0.05 × 60
0.05 × 60

図 3: 手動学習時
補足 1. 今回の実験では用いていないが，この他にサブ辞書として記号を小文字に変えたものに ×6 の動きを割り当て，「少し」という形容詞付きの同じ動作を表現させて，より細かい動きが必要な場合に備えた．ただし，本研究の立場は工業用ロボッ

上の表の最後のカラムの数値データはそのような “アトのようにミクロン単位の制御をしなくてもよいセンブラ的” な部分を少しだけ示したもので，このモ家庭内での使用に耐える程度のアバウトな作業のデルにおけるロボットの移動単位による数値であり，実現を目指しているので，最初に挙げた辞書で間

例えば 1 行目の基本動作はこれに対応する関節に対しに合わせることが理想である．て 0.05 単位の移動を 60 回繰り返したものを割り当て

補足 2. 動きの能率化のため，2 個（以上）の動作をているという意味であり，無次元である．そのため実同時に行なわせることも許容できる．例えば上の機の場合にはここに mm 等の単位付きの値を与えるこ

手動制御の記号列の例に出てきた，2 本の指を連とになる 1 ．

動させて指を閉じるという動作を表している MP

この辞書を用いて，ロボットに白い円柱を掴ませては二つの関節を同時に作動させたほうが自然であ

赤いタブにはめることを手動で学習させた様子を以下る．ロボットによっては 2 本の指が有るがこのよに示す．使用した記号列は次のようであった（この表うなシンクロナイズされた動きしかできないもの

記はランレングス圧縮法により短縮できる．
）：もある．このような複合動作は関節のアクション
ベクトルの異なる成分に同時に値をセットするこ

AAAAACCCCCCMPMPMPCCHGGMPMPM
PMPMPAAAAAAAAAGGGCCGGGMGGGAとで実現可能であり，上記テーブルの拡張として，例えば次のようなものを追加できる：

この系列を上記の辞書に従い，自然言語に直すと「上腕を左に回転し,. . . , 上腕を下げ,. . . , 指を閉じて,. . . , 上腕を下げ,. . . . . . , 上腕を左に回転する」という動きとなる．

指を閉じる
指を開く
腕を縮める
腕を伸ばす
肘を曲げる
肘を伸ばす

QRS
TU
V

M and P
N and O
C and HD and G
B and F
A and E

なお，実機や完全な物理シミュレータなどでは，慣性の影響で，上腕を動かすとその先の部品が予1 ロボットによっては力の単位ともなりうる．実際的な重力場の下では更に重力に逆らって腕を水平に保つためにも逆向きのトルクが必要になるがこれも機械依存の “アセンブラ” に委ねる．

― 122 ―

期しない方向に連られて動くことが有り，そのような場合には逆方向にトルクをかけて調整する必Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

要が生じるが，それは機械固有の処理に任せるこ実験

4ととする．従って機械によっては実は複合動作の記号化した基本動作の離散化 action による深層強化方が自然な基本動作になっているということが有学習で，課されたタスクに対するロボットの動作概念り得る．の獲得を試みた例として，ロボットに「はめる」という動作を学習させてみた．図 3 のようにロボットが白3

深層強化学習い円柱を掴み，赤いタブまで持っていくという課題を深層強化学習で実現させる試みである．

本研究では，動作の獲得に強化学習を用いる．強化
学習では，動作を行なう主体であるエージェント（ここではロボット）が毎回の試行（エピソード）ごとに，環4.1

境から状態を受け取り，その状態の下で行動を選択し，その結果として報酬を受け取るという動作を繰り返す．
エージェントは各エピソードで貰える報酬の重み付き総和（累積報酬）を最大にすることを目標として行動し，その結果として目的の状態が達成されることを期待する．本研究で使用する深層強化学習とは，強化学使用するシミュレータとロボット

本研究では，MuJoCo3 [4] という物理シミュレータを使用している．またロボットアームは GitHub 上で公開されていた Pusher4 を改変し 2 本の指を付け加えた ”Picker” を使用している．このロボットモデルは全部で 8 自由度を持ち，構成は図 4 のようになっている．

習と深層学習を組み合わせたもので，強化学習の行動価値関数や政策を深層ニューラルネットで関数近似するものである．本研究では，Asynchronous Advantage

Actor-Critic (A3C)[1] というアルゴリズムを用いて学習させることを試みた．A3C では強化学習の手法の一つである Actor-Critic というアルゴリズムを用いている．

Actor-Critic では，エージェントが行動を選択する Actorと，その選択した行動を評価する Critic という構造を
図 4: ロボットの構成図持っている．Actor と Critic をそれぞれニューラルネットで表現したものが A3C である．以下では ChainerRL
中の example として実装されていたものを本実験用に修正して使用した 2 . 深層強化学習としてはこのアルゴ

4.2

リズムより以前にも，Deep Q-Network（DQN）[2] やDeep Deterministic Policy Gradient（DDPG）[3] といったアルゴリズムが知られており，一定の成果を出していたので本研究ではこれらを用いた学習も試みた．その結果，DQN はパラメータの選択が非常に難しく学習がうまく行かず，また DDPG は行動が連続値の場合のみしか扱えず，学習に多くの時間がかかってしまうため，最終的に本研究では離散化した action に対し実験設定

上記のロボットを OpenAIGym5 というフリーの強化学習環境に組み込んで，chainerrl の上で深層強化学習を行なった．1 エピソードを 100 回の試行とし，全80,000,000 エピソード学習させる．報酬については，ロボットの指 2 本，腕の軸と白い円柱の距離と，白い円柱と赤いタブの距離をそれぞれ計算し，係数を掛けて足し合わせたものとしている．て A3C を用いて学習を行なうこととした．ロボット
を家庭内で実用に供するためには，絶えず新しい仕事4.3

実験結果を学習させる必要があるが，それらを丸ごと連続的な深層強化学習で学ばせるのは家庭の環境資源的に無理

以下に学習時の経過を示す．報酬関数の係数を様々があり，自然言語による離散化とそれによる仕事の表な値に変化させて実験を行なったが，図のように白い現はこのような要求に役立つとも考えられる．

円柱を挟まずに腕が当たって赤い枠の近くまで持っていくような動作を行なう様子が観察された．これ以外

3 http://www.mujoco.org/
4 https://github.com/openai/gym/pull/557
5 https://github.com/openai/gym

2 https://github.com/chainer/chainerrl― 123 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

にも円柱を掴まずに円柱の上に腕を置いた状態で止トの制御と，リアルタイムで必要となる強化学習の簡まってしまうものなども観察された．

易化・高速化を目指した．今後は，我々の方式を用いてロボットが獲得した動作を他のロボットに伝える転移学習の検証や，タスクやジョブレベルでのロボット自身及びロボット間の動作の説明を目指したいと考えている．更に，ロボット動作の連続な空間での表現から離散的な言葉による表現にし，それを word embedding
操作で再び連続空間に戻すことで，複雑かつ機械依存の連続表現を互換性の有るものにし，同時に次元圧縮もできるであろうと考えている．

参考文献

図 5: 学習経過図

4.4

考察と課題

報酬関数をいくつか変更して実験を行なったが，ロボットがうまくつかんではめるという目標の仕事を学[1] Volodymyr Mnih,Adrià Puigdoménech Badia,Mehdi Mirza,Alex Graves,Tim Harley,Timothy P. Lillicrap,David Silver,Koray
Kavukcuoglu,“Asynchronous methods for deep reinforcement
learning”, PMLR 48:1928-1937, 2016.
[2] Volodymyr Mnih,Koray Kavukcuoglu,David Silver,DaanWierstra, Alex Graves,Ioannis Antonoglou and Martin Riedmiller,“Playing Atari with Deep Reinforcement Learning”,InNIPS Deep Learning Workshop. 2013.
[3] Timothy P. Lillicrap, Jonathan J. Hunt, Alexander Pritzel, NicolasHeess, Tom Erez, Yuval Tassa, David Silver and Daan Wierstra,“Continuous control with deep reinforcement learning”,
ICLR2016.
[4] Emanuel Todorov, Tom Erez and Yuval Tassa, “MuJoCo: A
physics engine for model-based control” IEEE/RSJ International
Conference on Intelligent Robots and Systems, 2012.
[5] keroro

習させることはできなかった．原因として，はめるを手動で学習させた際に複雑な記号列になったことから，深層強化学習で学習するにあたっても学習に時間がかかることが考えられる．また，「掴む」という動作は左の指を右側に，右側の指を左側に動かすという動作を行なわないとできない動作であるため，報酬関数をよりデリケートに設定する必要があると考えられる．なお，今後の課題としては，実用的には現在用いている幾何学的に計算された報酬関数に代わって画像から円柱やタブの位置関係を判断し，それに基づいた報酬計算を行うことで，これらの新しい位置関係への対応を自動化できるようにし，転移と汎化の能力を高めることを考えている．

5

まとめと展望本研究では，動作は元来のロボットの物理的可動性よりは大まかな最小単位の動作を設定し，それらの組み合わせで実用的に必要な様々な仕事を表現できると考えた．実験ではこれら最小単位の動作と対応する言葉の辞書を用意し，動作の記号化を行なってロボットに動作概念獲得を試みた．これにより人間によるロボッ― 124 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.