強化学習を用いた Ball & Beam 実験装置の制御
2011SE041 日比野綾佳

2011SE230 佐藤いずみ

指導教員：大石泰章

はじめに1

強化学習とは，目標値を設定しそれに近づくと報酬，遠ざかると罰が与えられる環境下で，機械が何度も試行錯誤

図 2 は Ball & Beam 実験装置のブロック線図である．
入力として電圧 v をモーターに与え，アームの角度 θ を変化させ，アーム左端からの距離 q が目標値に等しくなるよ
うにボールを運動させるというものである．

を繰り返し，報酬を最大化するように学習するという方法

表１に基づいて制御対象のモデル化を行う．図 2 のゲイである．文献 [1] では状態と入力が連続なシステムの強化

ン K と時定数 T は未知定数である．また，Kb =100× 35 g =学習を扱っており，入力に制限がある場合も考えている． 60g ，Kθ = π × ( 2.1 )[rad/deg] である．強化学習では，状18015
強化学習を適用したシステムは，文献 [1] では振子の振り 態変数の次元が高くなると学習が急激に難しくなる．その上げ運動，文献 [4] ではロボットの起き上がり運動である． ため本研究では角度 θ を入力として直接指定できると考しかし強化学習による制御の有効性を調べるには，さらに え，制御対象は二次元のシステムであるとして扱う．
多くのシステムに適用することが必要である．
本研究の目的は，実験キット [3] を使って製作した Ball

表 1 用いる記号& Beam という実験機において，強化学習による制御を行意味うことである．本来ならば，システムが簡単であるため，傾いたビームの角度PID 制御などの制御方法を用いて制御するのが一般的だ

ボールの質量が，ここで強化学習を用いることによって，強化学習の有ボールの半径効性を確認する．あわせて強化学習を適用する上での注意

ボールの慣性モーメント点を考える．

ボールの位置

2

制御対象

2.1

Ball & Beam 実験装置

重力加速度
電圧2.2

記号単位θmr
Jxgv

[rad]
[kg]
[m]
[kgm2 ]
[m]
[m/s2 ]
[V]

制御対象の状態空間表現

入力を θ とした場合の状態方程式を導出する．文献 [2]に基づき Ball & Beam 実験装置の運動方程式をたて，これを状態空間表現して，強化学習を適用する．
次の運動方程式が得られる:(mr2 + J)ẍ = r2 mg sin θ．
ピンポン球の中心回りの慣性モーメントは
図 1 Ball & Beam 実験装置
図 1 は Ball & Beam 実験装置の写真である．これは，

2 2mr
3J=である．更に θ ≃0 と仮定するとモーターを動かすことでアームと呼ばれる横長のレール

3gθ
5ẍ =の角度を変化させ，ボールを目標の位置に動かす装置である．文献 [2] に基づき，PID 制御等多くの制御が用いられを得る．以上より状態変数をているので，強化学習を用いる対象として適当であると判[断した．

x=qq̇]と定めたとき, 状態空間表現は[ẋ =図 2 Ball & Beam 実験装置のブロック線図となる．

0010][x+035g]u理論上 θ を入力と考えているが，実機においては v を入力としているので，理想的な θ を満たすような v を間接的に実現しなければならない．したがって，精度の高い制御

強化学習の適用

3.1

報酬と罰

価値関数

価値関数とは，未来の報酬を考えた上で，現在の状態の価値を評価する関数である．報酬が即時的な意味での良さを行うことは困難であることが予想される．

33.2を示しているのに対し，価値関数は未来を見通した上での良さを示している．価値関数が定まれば，入れるべき入力が計算できる．本研究では次の形の価値関数を考える．

強化学習において，制御の良し悪しの判断基準となる報V µ (x) =酬関数を定める．今回は，アーム上においてボールを赤外∫ ∞e− τ r(x(s), u(s))ds．
s−t(1)

t線センサーから 0.2[m] 離れた位置で静止させることを目標とする．そこで，目標値 q = 0.2 に近づく程大きな報酬

この時，未来の報酬を割り引いて評価しているので，価を与え，それ以外の時は，目標値から離れる程少ない報酬値関数の値は発散せずに収束するようになっている．τ はを与えるとする．また，ボールがビームの軌道から外れたその時定数である減衰率である．この式をこのまま計算す時，すなわち q が 0 より小さいまたは q が 0.4 より大きくるのは困難である．そこで，なった時，10 秒間罰として報酬 r(x) の式に −1 を与えるV̇ (x(t)) =ものとする．
報酬は次の形で表せる：

1V (x(t)) − r(x(t))τが成り立つことに着目し，r(x) = R(x) − S(u)．
R(x) は状態 x に対する報酬関数，S(u) は入力 u の絶対値が最大値 umax を越えないようにするためのコスト関数である. 今回は，
2R(x) = −100(q − 0.2) + 0.04 − q̇ 2delta(x(t)) := r(x(t)) −1
V (x(t)) + V̇ (x(t))τとした時，δ(x(t))=0 を満たす V (x) を得ることで学習を行う．そのために，ノーマライズド・ガウシアン・ネットワークを用いる．とする．これは，q=0.2，q̇=0 の時報酬最大とする関数である．

3.3

ノーマライズド・ガウシアン・ネットワーク

価値関数を推定する為に，ノーマライズド・ガウシアン・ネットワークを使用する．これは N 個の基底関数

b1 (x), b2 (x), …, bN (x) の重みつき和 w1 b1 (x) + w2 b2 (x) +… + wN bN (x) であり，係数 w1 , w2 , …, wN を学習して価値関数 V (x) を近似することを考えるものである．パラメータ w は以下のように更新する：
ẇk = ηδ(t)ek (t)．

(2)

ここで，ek (t) はエリジビリティートレースと呼ばれるもので，δ を調節するものである．η は学習係数である．
基底関数 b1 (x), b2 (x), …, bN (x) としては状態空間中の点

c1 , c2 , …, cN をそれぞれ中心とするガウス関数を正規化したものを考える．このためノーマライズド・ガウシアン・ネットワークと呼ばれる．
基底関数の中心 c1 , c2 , …, cN を状態空間中にどのように

図 3 コスト関数 S(u) のグラフ配置するかを考える．本研究では状態空間の中に，適当な範囲を設定し，これを分割することで格子点を定め，ここ

またコスト関数 S(u) は∫ uS(u) = c0に c1 , c2 , …, cN 等を配置する．分割範囲を狭め，分割数をu多くすることで，精度が上がり，良い結果が得られると予

s−1 ( max )duu

想される．と表し，c = 0.1，s(x)= 12 arctan( π2 x) とする．今回は，入π[rad] と設定する．
力の最大値は，umax = 15max

れる運動を含む最小範囲を設定することが必要である．

またまた，分割数を大きくしすぎると計算量が多くなり好まは −uに近づくほど，コスト関数 S(u) の値は大きくしくない．運動の範囲を確認した上で，試行錯誤をし，適

図 6 にコスト関数のグラフを示す．入力 u が umaxなる．

しかし分割範囲の外の運動は評価出来ないので，考えら切な分割数を考えることが必要である．

本研究では，状態変数をそれぞれ 16 分割する．つまり，
0 ≦ q ≦ 0.4，−0.3 ≦ q̇ ≦ 0.3 とし，162 の等間隔の格子を設定して基底関数の中心を定める．

4

シミュレーション

4.1

Ball & Beam 実験装置

今回のシミュレーションは，サンプル時間 0.02 秒で 1回の試行を 20 秒間とし，それを 100 回繰り返して学習を行う．

τ =15，η=0.01 としたときのボールの位置 q と入力 u，価値関数 V の変化を示す．図 4，5，6 は初期値 q=0.0530，q̇=0 とした場合のグラフである．図 4 は，多少の誤差は見られるが，ボールの位置 q=0.2[m] で収束している．そして図 5 から分かるように，入力が 0 に収束しているので，目標値に近づいていると考えられる．また図 6 の価値関数
Ｖは，距離が 0.2 以下の時，速度が正の方向に大きくなる
程，価値関数の値は大きくなり，距離が 0.2 以上の時，速度

図 5 入力 u の変化が負の方向に大きくなる程，価値関数の値は大きくなる．

図 6 価値関数

図 4 ボール位置 q の変化と考えられる．
そのため，試行錯誤によって，その値のときの適切な τ

また，図 7，図 8 は初期値が異なる場合でのシミュレーション結果である．初期値がどのような場合でも，多少の誤差は見られるがボールの位置 q は 0.2[m] に収束し，入力 θ は 0[rad] に収束している．
以上から，学習はほぼ適切に行われていると考える．

4.2

減衰率 τ と学習係数 η の影響と η を決定することが大切であると考えられる．

5

おわりに
本研究では，強化学習の有効性を確かめる為に，Ball &Beam 実験装置を用いて検証を行った．また，減衰率 τ や学習係数 η ，分割数を変更することで，学習の精度への影響を比較した．

本研究では，価値関数 V を大きくすることと，目標値研究の成果として，強化学習による入力をビームの角度にボールを収束させるため，入力をだんだん小さくするこθ とした場合の Ball&Beam 実験装置のシミュレーションに成功した．同時に，制御対象が変化するとパラメータ τ ，η もそれぞれ変えなければならず，パラメータ選択が重要と，つまり V を小さくすることを目標とする．
前者の場合では，(1) 式より τ の値が小さいほど V の値は大きくなる．また，V は学習パラメータｗと基底関数ｂであることがわかった．の重み付け和で表されるので，(2) 式より V が大きくなる

しかし，今回 100 回のシミュレーションを行ったが，実ならば，η も大きくなることが望ましいと考えられる．

際に実験を 100 回行うことは非現実的である．そのため，後者の場合では，(1) 式より τ の値が大きいほど V の値は大きくなり，同様に η の値は小さくなることが望ましい

パラメータの選択によって試行回数を減らすことが必要だと考える．

2118–2131, 1999.

図 7 複数の初期値によるボール位置 q の変化

図 8 複数の初期値による入力 u の変化

今後の課題として，ボールの位置 q を目標値である0.2[m] に誤差なく収束させるため，パラメータの調節を行う．また，入力を電圧 v とする場合のシミュレーションを行い，実機への実装をしたいと考える．

6

参考文献

[1] Kenji Doya: Reinforcement learning in continuous
time and space, Neural Computation, vol. 12, no. 1,
pp. 219–245, 2000.
[2] 平田光男：『Arduino と MATLAB で制御系設計をはじめよう！』．TechShare，東京，2012.
[3]『Arduino と MATLAB で制御系設計をはじめよう！
Ball&Beam 実験装置 実験キット』．TechShare，東京，2012.
[4] 森本淳・銅屋賢治: 強化学習を用いた高次元連続状態空間における系列運動学習–起き上がり運動の獲得- 電子情報通信学会論文誌, vol. J82-D-2, no. 11, pp.