第 9 章 ロボット の知能化 9.1 はじめに ロボットの知能化は機械知能と言われる物のロボットへの実装である。通常、知能とは定理の証明 のような人間にとっても困難な問題を解決できる能力をさすが 、機械知能の場合、人間がふだん何気 なくしているような事柄、例えば 、手を障害物に当てることなく目的の場所に伸ばすとか 、受け皿 の上に置かれた角砂糖を見つけ、取り上げてコーヒーカップに入れるなどのような作業を、自動的に できるような能力を指す。その様な能力は、認識、解釈、連想、回想、推論、学習の様な機能を、コ ンピュータを用いて実現することによって達成できると考えられる。ここでは特に学習について述 べる。 知能ロボットにおける学習機能は次の3種類に分類できる。 1. 運動機能の学習 2. ルールの学習 3. シナリオの学習 (1) の運動機能の学習は、人間が練習することによって次第にテニスのサーブが上手になるような種 類の学習で、一般に模範となる教師のある学習( 教師付き学習)である。(2) のルールの学習は色々 な状況において取るべき行動を決定するルールを学習する物であって、例えばゲームにおいて相手の 打球に応じて自分のポジションを決定するルールを体得する。その場合、ゲームの終了後などの一連 の行動の後で初めて大まかな評価( 勝ち、負け、引き分けなど )が与えられる事が多く、それによっ て自分の行動を振り返って学習しなければならない( 強化学習)。(3) のシナリオの学習は作業計画 の立案時の学習である。例えば 、テニスの試合において、まず強いサーブを打ち、ネット際に出てボ レーで決める、と言ったシナリオの作成の学習を行う。これらについて以下順次簡単に紹介する。 9.2 運動機能の学習 ロボットアームで言えば 、位置制御機能、インピーダンス制御機能、位置・力ハイブリッド 制御機 能の学習を行う。これらを行うために適応制御理論を用いることも考えられるが 、ここではニューラ ルネットワーク制御器を用いた位置制御機能の学習法を紹介する。 ニューラルネットワークは脳の機能を工学的に実現しようとする物で、工学的ニューロンモデルを 相互結合することでつくられる。ニューロンモデルは図 9.1 のような構造を持っている。矢印は神経 細胞のシナップスにあたり信号の伝達方向を示す。丸は神経細胞にあたり、信号の受容部( 集約関数 で表現される)と処理部( 活性化関数で表現される)からなっている。代表的な集約関数は線形和で あって y= nx wi xi + θ i=1 119 (9.1) 120 図 9.1: ニューロンモデル y = x1 + x2 − 1.5 y = x1 + x2 − 0.5 x1 x2 y z = x1 AND x2 x1 x2 y z = x1 OR x2 0 0 -1.5 0 0 0 -0.5 0 0 1 -0.5 0 0 1 0.5 1 1 0 -0.5 0 1 0 0.5 1 1 1 0.5 1 1 1 1.5 1 表 9.1: ニューラルネットワークによる論理回路 で表される。ここで xi は入力であり、wi は結合重み係数、θ は閾値と言われる。活動関数としては 初期においては一般にステップ関数が用いられた。この時、このニューロンを必要な数だけ用いれば 様々な機能が実現できることが知られている。 例題 9.2.1 ニューロンによる論理回路 図 9.1 において、集約関数を y = w1 x1 + w2 x2 + θ とし 、活性化関数をステップ関数 z = u(y) = 0 if y < 0 1 if y ≥ 0 とする。表 9.1 に (w1 , w2 , θ) に2種類の値を設定した場合の入出力関係を示す。このニューロンが重 みを変更することで AND 回路と OR 回路の何れにもなりうることが分かる。NOT 回路も簡単に実 現できるのでこの様なニューロンを多層に組み合わせることで任意の論理回路を構成できる。 制御においては活性化関数は z = v tanh(y) (9.2) がよく用いられる。ここで tanh(y) = 2 exp(y) − exp(−y) = −1 exp(y) + exp(−y) 1 + exp(−2y) (9.3) Intelligent Machine Lab. Meiji univ. 121 とする。z の値域は v > 0 のとき −v < z < v となる。 制御によく用いられるネットワークは次のような式で与えられる。 u(k) = V σ(W x(k) + θ) (9.4) ここで k は第 k サンプ リングタイムを表す。また V は nu × m 、 W は m × nx であり、σ(y) は (tanh(y1 ), tanh(y2 ), . . . , tanh(ym ))T である。これはフィード フォワード ニューラルネットワーク制 御器と呼ばれる。ロボットアームに適用する場合、 q(k) q̇(k) , x(k) = e(k) ė(k) u(k) = τ (k) (9.5) となる。ここで e(k) = q̂(k) − q(k) であり、nu = n 、nx = 4n となる。m は実験的に求める。 制御の目的は J= N E(k), E(k) = k 1 T e (k)P e(k) + ėT (k)Rė(k) 2 (9.6) を最小にするような V と W および θ を学習することである。ここで N は制御時間のサンプリング 数を表し P , R はそれぞれ pi , ri > 0, i = 1, 2, . . . , n を要素とする対角行列である。 いま第 t 回試行時の学習パラメータ(すなわち V と W および θ の要素)を並べたベクトルを α(t) で表すと N ∂E(k) ∂J = ∂α(t) ∂α(t) (9.7) k は J の値の増加する方向を表す。よって、 α(t + 1) = α(t) − η ∂J ∂α(t) (9.8) とすれば J の値を減少させることができる。ここで η ∈ (0, 1] は学習係数と言われる。α の要素 αi に対しては次のように計算できる。 ∂E(k) ∂αi = = ∂E(k) ∂q ∂E(k) ∂ q̇ ∂τ + ∂q ∂τ ∂ q̇ ∂τ ∂αi ∂q ∂ q̇ ∂τ T T + ė R − e P ∂τ ∂τ ∂αi (9.9) ここで ∂q/∂τ と ∂ q̇/∂τ は一般には未知であるが 、ロボットアームの場合は簡単に ∂ q̇ ∂q = = ∆I n ∂τ ∂τ (9.10) と仮定し 後はニューラルネットワークの学習能力にまかせることにする。1 ここで ∆ はサンプ リン グ時間間隔である。より具体的には次のようになる。 ∂E(k) ∂vi,j 1 あるいは ∂qi ∂τj ∼ κ1 q̇i (t)sgn(τj (t) − τj (t − h)) および = ∂ q̇i ∂τj ∆δi1 (k)σj (9.11) ∼ κ2 (q̇i (t) − q̇i (t − h))sgn(τj (t) − τj (t − h)) と近似しても 良い。ここで κ1 と κ2 は適当な実数であり、h はロボットの動特性に比して十分短い時間である。また、sgn は符号関数で ある。 122 ∂E(k) ∂wj,s ∂E(k) ∂θj = ∆δj2 (k)xs (9.12) = ∆δj2 (k) (9.13) ここで、i = 1, 2, . . . , n 、s = 1, 2, . . . , m 、s = 1, 2, . . . , 4n であり σj は σ = σ(W x(k) + θ) の第 j 要 素を示す。また、 δi1 (k) = δj2 (k) = −pi (q̂i (k) − qi (k)) − ri (q̂˙ i (k) − q̇i (k)) n δi1 (k)vi,j (1 − σj2 (k)) (9.14) (9.15) i=1 である。 9.3 ルールの学習 ルールは一般に次の形で与えられる。 If 状態 then 行動. 例えば If ( 前に障害物がある and 左に障害物はない) then 左へ曲がれ . と言うような物である。ルールの学習は種々の状態と行動との間の正しい結合関係を経験的に見出す ことである。この場合の問題点として、評価が各行動の直後に与えられるのではなく、一連の行動の 後に初めて与えられ 、またその評価値が定性的であると言うことである。例えば図 9.2 に示すような 環境でロボットが start 地点から goal 地点へ到達することを求められているとする。この時、評価は ある一定時間内に goal に到達できれば good と評価され 、そうでなければ bad と評価されると言う 様な場合である。この様な学習問題は強化学習問題と言われる。強化学習法は大きく「経験強化型」 と「環境同定型」に分類される。経験強化型は学習速度は速いが必ずしも最適解を見いだせるとは限 らない。一方、環境同定型は学習速度は比較的遅いが適当な条件下では必ず最適解を見いだせる。こ こでは 、その2つの代表的な解法である「 報酬割り当て解法」 ( 経験強化型)と「 Q 値学習法」 (環 境同定型)を紹介する。 9.3.1 報酬割り当て解法 評価値が与えられた段階で、それまでに行った行動に対して報酬を割り当てることによって、最適 な行動を学習する方法である。いま、一連の各時刻の行動 a(1), a(2), . . . , a(N ) のあとで報酬 R が与 えられたとする。この時、報酬割り当て方として以下の物が提案されている。 1. 均一割り当て法:r(k) = R, k = 1, 2, . . . , N 2. 等差割り当て法:r(k) = R − (N − k)∆, k = 1, 2, . . . , N, (N −k) 3. 等比割り当て法:r(k) = λ R, k = 1, 2, . . . , N, ∆>0 1>λ>0 強化学習問題においての問題点は評価に影響を与えない行動列の存在である。例えば 、ロボットアー ムがある物体を掴んで離す動作を n 回繰り返して次の動作に移りある評価を得たとすると n − 1 回 Intelligent Machine Lab. Meiji univ. 123 図 9.2: ルールの学習 の繰り返し動作は評価に関係しない無駄な動作となる。この様な動作を生じ るルールを無効ルール と呼ぶが 、無効ルールを学習の最初から禁止することは許容動作を限定し学習効率を悪化させる。ま た、無効ルールを生じないような学習問題を定式化することは不可能でないにしても、しばしば困難 となる。そこで、学習の途中で自然とその様な無効ルールを抑制する事が望まれる。その手法として 以下の結果が知られている。 定理 9.3.1 無効ルールの抑制( 宮崎) 任意の無効ルールが抑圧されるための必要十分条件は W i−1 r(j) < r(i), ∀i = 1, 2, . . . , N (9.16) j=1 である。ここで、r(i) は第 i 番目の行動の報酬であり、W は各状態における最大のルール数、N は 最大行動長である。 この定理を満たすひとつの報酬割り当て法は公比( 割引率と呼ばれる)を 0 < λ ≤ 1/(W + 1) とし た等比割り当て法を用いることである。この時、 W i−1 r(j) = λW j=1 より W i r(j) = λW r(i) + λW j=2 i−1 r(j) = j=1 i−1 r(j) − λW r(1) (9.17) j=1 W (r(i) − r(1)) ≤ r(i) − r(1) < r(i) 1/λ − 1 (9.18) となるり式 (9.16) を満足する。 (a) 報酬割り当て強化学習法のアルゴリズム 各状態 xi , (i = 1, 2, . . . , M ) において採りうる行動が a1 (xi ), a2 (xi ), . . . , aW (xi ) であるとし 、各状 態における各行動の総報酬を s1 (xi ), s2 (xi ), . . . , sW (xi ) とする。 1. 各報酬 rj (xi ), i = 1, 2, . . . , M, j = 1, 2, . . . W に初期報酬(たとえば 10 )を割り当てる。 2. 以下を収束するまで繰り返す。 124 図 9.3: 報酬割り当て法強化学習の経過 (a) k = 1, x(1) = x1 とする。 (b) 確率 Prob [a(k) = aj (x(k))] = sj (x(k))/ W j=1 sj (x(k)) に従って行動 a(k) を決定する。 (c) 行動 a(k) を実行し x(k + 1) を求める。もし 、目標を達成していれば (e) へ。 (d) k = k + 1 とする。もし k ≤ N であれば (b) へ。そうでなければ (a) へ。 (e) 報酬 R を以下のように割り当て、(b) へ。 sj (x(k)) = sj (x(k)) + λ(N −k) R, if a(k) = aj (x(k)) (9.19) 3. 各活動 a1 (xi ), a2 (xi ), . . . , aW (xi ) の内、最大の報酬を持つ行動を状態 xi に対する最適行動で あるとする。 例題 9.3.1 自律移動ロボットの報酬割り当て法による強化学習 図 9.2 の迷路を移動するロボットを報酬割り当て法を用いて学習させる。このとき取り得る状態 は (i, j), i = 1, 2, 3, 4, 5, j = 1, 2, 3, 4 であり、各状態で上下左右の4つの行動をとり得る。よって、 W = 4 であるので割引率を λ = 1/5 とする。また、最長行動回数を N = 20 とし 、初期報酬を 10 、 ゴ ールに到達したときの報酬を R = 1000 とする。なお、この問題における最短距離は 7 である。 100 回のシミュレーション結果を図 9.3 と図 9.4 に示す。図 9.3 は学習の進む様子を表している。 最初 18 回まではゴールに到達できなかったが 、いったん到達すると急速に学習が進む様子が分かる。 また、無効ルールが効率よく抑圧されている。図 9.4 は学習した結果である。矢印の長さは報酬の大 きさを表している。この問題は3つの最適解を持つが 、そのいづれもが学習されている。 Intelligent Machine Lab. Meiji univ. 125 図 9.4: 学習されたルール 9.3.2 Q 値学習法 Q 値とはある状態 x である行動 a を行ったとき得られる報酬の予測値であると考えることが出来、 次のようにして学習される。 Q(x, a) = (1 − α)Q(x, a) + α(r(x, a) + λ max Q(y, b)) (9.20) b ここで、1 > α > 0 は学習係数であり試行の経過と共に減少させる。r(x, a) と y は状態 x に対して 行動 a を行ったときの局部的な利得とその結果得られる状態である。もちろん y がゴ ールであれば 報酬 R を獲得することになる。 Q 値学習法のアルゴリズム 各状態 xi , (i = 1, 2, . . . , M ) において採りうる行動が a1 (xi ), a2 (xi ), . . . , aW (xi ) であるする。 1. 各 Q 値 Q(xi , aj (xi )), i = 1, 2, . . . , M, j = 1, 2, . . . W に初期値(たとえば 10 )を割り当 てる。 2. t = 0 とし 、以下を収束するまで繰り返す。 (a) t = t + 1, k = 1, x(1) = x1 とする。 (b) 確率 Prob [a(k) = aj (x(k))] = Q(x(k), aj (x(k)))/ a(k) を決定する。 W j=1 Q(x(k), aj (x(k))) に従って行動 (c) 行動 a(k) を実行し x(k + 1) を求め、Q 値を次のように更新する。 Q(x(k), a(k)) = (1 − α(t))Q(x(k), a(k)) + α(t)(r(x(k), a(k)) + λ max Q(x(k + 1), b)) b (9.21) (d) もし 、目標を達成していれば (a) へ。 (e) k = k + 1 とする。もし k ≤ N であれば (b) へ。そうでなければ (a) へ。 3. 各活動 a1 (xi ), a2 (xi ), . . . , aW (xi ) の内、最大の Q 値を持つ行動を状態 xi に対する最適行動で あるとする。 例題 9.3.2 自律移動ロボットの Q 値学習法による強化学習 126 図 9.5: Q 値学習法強化学習の経過 図 9.2 の迷路を移動するロボットを Q 値学習法を用いて学習させる。Q 値の初期値を 10 、ゴ ール に到達したときの報酬を R = 1000 とする。r(x, a) は y が x よりゴ ールに近ければ 1 としそうでな ければ 0 とする。また、α(t) = 0.75/(1.0125) t を用いる。他の条件は以前と同じである。 100 回のシミュレーション結果を図 9.5 に示す。この場合は、8 回でゴ ールに到達しているが以後 の学習は報酬割り当て法よりも幾分遅い。これは、ゴールに到達したという情報が 1 回の試行でそれ に隣接した状態にしか伝わらないからである。 以上のように 、報酬割り当て法は一般に学習が速いが長期にわたる行動の履歴を記憶しておく必 要がある。一方、Q 値学習法は逐時に Q 値を更新していくので行動の記憶をする必要はないが学習 速度が幾分劣るという性質がある。 ロボットアームでは状態の数やとりうる行動の数が極めて多いので、各状態や行動をファジイ集合 として表し 、ファジイルールを強化学習させる研究も行われている。 9.4 シナリオの学習 シナリオの学習は実行前にシミュレーションモード で行われる。例えば 、テニスの試合のときには 相手の行動を予想しながら、過去の経験をふまえて作戦を練る。ロボットの作業のシナリオ作成にお いても、過去の経験を生かしながらシミュレーションを行って計画を立案する。それ故、シナリオ作 成には以下の要素が必要である。 1. 対象の特性の記述 2. 対象の状態の記述 3. 作業の内容の記述 4. 作業の規則の記述 例えば 、図 9.6(a) の様に置かれた積み木を図 9.6(b) の様に積み直す作業を考えてみる。この作業の 実行にはまず、(1) 2種類の積み木 A( 立方体), B( 直方体)の大きさ、重さ、視覚的特徴などの特 Intelligent Machine Lab. Meiji univ. 127 図 9.6: 積み木作業 性が必要である。次に、(2) 例えば積み木 A は場所 P1 にある、積み木 B は場所 P2 にある、と言っ た関係を記述する必要がある。また、ロボットが何を持って、何処にいるかと言ったロボット本体の 状態も記述する必要がある。さらに、(3) ロボットが積み木 A を持ち上げる、下に置くと言った作業 による状態の変化を記述する必要がある。次に、(4) 積み木 A が点 P5 と場所 P6 の両方になければ 積み木 B は乗せることが出来ない、積み木 B が場所 P7 に無ければ積み木 A を場所 P8 に置くこと は出来ない、といった経験的事実を表す規則が必要である。最後に、ここでの問題はこれらを用いて 「初期の状態 (a) から与えられた目的の状態 (b) へ移行させるためのシナリオ( 作業列)を過去の経 験を取り込みながらいかに効率よく生成するか」である。なお、Nest はロボットの収納場所、P9 は 積み木の一時保管場所を表す。 9.4.1 対象物の特性と状態の記述 必要となる対象物の特性は問題によって変化する。RLW では次のような物を標準で与えている。 name base : オブゼクトの名前 : 基準フレーム名 frame : 同次変換行列( 3×4行列) mode mass : fixed, free の指定 : オブゼクトの質量 size marks : オブゼクトの大きさ(0から4) : 視覚センサのための認識マークの2次元座標リスト ’((x1 y1)(x2 y2)(x3 y3)) corners : 物体の四隅の座標 状態を記述するには、例えば 、 ( AT x y) (AT null y) : : x が y にある。 y には何もない (Hand x) : ハンドが x を掴んでいる (Hand null) : ハンドは何も掴んでいない 128 作業 前提条件 削除リスト 追加リスト (Hand null), (Hand x), (AT x y), (AT Robot *) (AT null y), (AT Robot y) (Hand x), (Hand null), (AT null y) (AT null y), (AT Robot *) (Hand null) (AT Robot *) (Hand null), (Grasp x y) (AT x y) (Hand x), (Put x y) (Home) 成功確率 コスト 0.9 3 (AT x y), (AT Robot y) 0.8 5 (AT Robot Nest) 1.0 1 表 9.2: 作業内容の記述 とすると(ここで x は A, B の、また y は P1, P2, ..., P9 の何れかである)、図 9.6(a) の初期状態は リスト Start= ((AT B P1),(AT A P2), (AT A P3), (AT A P4), (AT null P5), (AT null P6), (AT null P7), (AT null P8), (AT nul P9), (AT Robot Nest), (Hand null )) で、図 9.6(b) の目標状態はリスト Goal= ((AT null P1),(AT null P2), (AT null P3), (AT null P4), (AT A P5), (AT A P6), (AT B P7), (AT A P8), (AT nul P9), (AT Robot Nest), (Hand null )) で表すことが出来る。行動としては (Grasp x y) : 点 y にある x を掴む。 (Put x y) : 点 y に x を置く。 (Home) : ロボットが Nest ポジションに戻る。 があるとする。これらの行動は前提条件と波及効果を持っている。例えば 、(Grasp A P2) はハンド が何も持っていず( (Hand null) )かつ点 P2 に積み木 A が存在する( (AT A P2) )のときのみ実行 可能であり、その結果今までの (AT Robot *) と (Hand null) が状態リストから削除され (AT Robot P2) と (Hand A) が追加される。また、各作業に対して成功確率、予想コストが与えられる。各行動 に対するそれらは表 9.2 の様にまとめられる。 作業の規則は不可能な状態の組み合わせのリストを与えることで記述できる。 Rule= ( ((AT A P1)), ((AT B P2)) ,((AT B P3)), ((AT B P4)), ((AT null P1), (AT A P2)), ((AT null P1)(AT A P3)),((AT null P1)(AT A P4)), ((AT B P5)), ((AT B P6)), ((AT A P7)), ((AT B P8)), ((AT null P5), (AT B P7)), ((AT null P6), (AT B P7)), ((AT null P7)(AT A P8)) ) 例えば ((AT A P1)) は場所 P1 には A を置けないこと、((AT null P1), (AT A P2)) は P1 に何もな いときに P2 に A を置けないことを表す。ロボットが (Home) を実行するか、この様な不可能な組み 合わせを含む状態が生じた段階で作業が終了する。 Intelligent Machine Lab. Meiji univ. 129 図 9.7: 探索木 作業終了時の評価は例えば次のように行う。 J = 100k × p − c (9.22) ここで、k は (a) から (b) に正しく詰まれた積み木の数であり、p と c はそれまでに行った全ての作 業の成功確率の積とコストの和である。よって問題は次のように設定される。 初期状態 Start を目標状態 Goal に移行させるシナリオ( 作業列)のうち評価 J を最大に する物を見いだせ。 9.4.2 探索木によるシナリオ生成 このような問題を解くのによく用いられる方法は探索木を用いる物である。探索木は次のように して構成される。 1. Start 状態を根とする。 2. 一つの状態に行動を適用して新しい状態をつくる。古い状態と新しい状態の間に枝を付け適用 した行動のラベルを付ける。 3. 作業終了であればその状態は葉となる。そうでなければその状態は節点となり、(2) に戻る。 概念図を図 9.7 に示す。探索技の葉の内、Goal と等し く最大の評価値を持つ物が最適なシナリオと なる。なお、実際は、巡回路や閉路を生じないような工夫が必要である。 探索木を用いるともし解が存在すると必ず見出すことが出来るが 、その計算量は膨大な物となる。 よって、いかに少ない探索で解を見出すかが問題となる。代表的な物としては、横型探索法と縦型探 索法、評価関数を用いた探索法などがあるが 、ここでは評価関数を用いた探索法( 最良優先探索法) を紹介する。 各状態 S に対する評価は式 (9.22) を S に対して適用して求めることとし 、それを J(S) で表す。以 下の手順で探索を行う。 1. 状態のリスト OPEN={ Start } と CLOSED= { } を用意する。 2. OPEN が空集合であれば探索失敗。 130 1 (Grasp A P2) 6 (Put A P9) 2 3 (Put A P5) (Grasp A P3) 7 8 (Grasp B P1) (Put B P7) 4 5 (Put A P6) (Grasp A P4) 9 10 (Grasp A P9) (Put A P8) 11 (Home) 表 9.3: 探索木によって生成したシナリオ 3. OPEN の先頭の状態 S を取り出す。S が Goal と等しければ探索成功。 4. S が終了条件を満たしていれば CLOSED に入れ (2) へ還る。 5. S に可能な行動を全て適用して子節点 Ci , i = 1, 2, . . . , s を求める。S を CLOSED に入れる。 6. 各 i に対して Ci ∈ OP EN かつ Ci ∈ CLOSED であれば (a) S から Ci へ枝を付け行動をラベルとする。 (b) Ci を OPEN に入れる。 7. OPEN 内の状態を評価値の高い順に並び替える。(2) に還る。 例題 9.4.1 探索木によるシナリオの作成 積み木の積み替え問題を探索木を用いて解いた。その際、(Home) 命令は考慮しなかった。この命 令を無視して目標状態を達成するシナリオを求めた後、そのシナリオの最後に (Home) をつけ加え ればよいからである。シミュレーションを行ったところ 38 回の繰り返しの後、表 9.3 のようなシナ リオを生成できた。 この場合の学習対象は規則のリストの要素、各行動の成功確率、コストなどである。 探索木によるシナリオの作成は積み木のような簡単な問題には有効であるが 、問題が複雑となる とその探索すべき場合の数が指数的に増大し 、OPEN や CLOSED のサイズが膨大な物となる。そ こで、その様な場合に対応するために確率的探索法の一つである遺伝的アルゴ リズムを用いた研究 もある。 9.5 おわりに ここでは知能ロボットのシナリオ作成、ルールの学習、運動機能の学習について述べた。
© Copyright 2024 Paperzz