状態: ドラフト (2026-10-18)、実測。 数値はノートPC(Apple M1 Max、macOS 26.5)のPython 3.9.6・numpy 2.0.2で直接計算したシミュレーション値です。原データとコード: 作業ディレクトリ
measure/robot-arm-basics/rl/のttenv.py,ppo.py,exp_rl.py、結果out/rl/rew_*,out/rl/hyb_*,out/rl/ppo_base_*。 すべての学習はシード3つであり、評価は学習に使用していない1,000個のボールです。実際のロボット実験はありません(ハードウェア未実測)。参考文献は2026-10-18に閲覧しました。 作成ルール: 実測データが基本であり、測定できなかったものは「未実測」、確認できなかったものは「未確認」と表示します。
目次
1. 直感: 言われた通りにする
強化学習エージェントは設計者の意図を理解しません。報酬の合計を増やすことだけを知っています。「ボールを当てたらボーナス」と言えばボールを当てるための最も簡単な方法を見つけ、その方法がボールを卓球台に入れるかどうかは気にしません。報酬が望むものと食い違う隙を突く現象を報酬ハッキング(reward hacking)と呼びます。Amodeiら 2016は、AI安全性の具体的な問題5つのうちの1つとしてこれを挙げました。
行動空間(action space)も同じ重みの設計です。ポリシーに10 msごとに 関節加速度を決めさせることもできれば、一度だけ「いつ、どれくらい強く」を決めるようにして残りを第1〜10話の古典的手法に任せることもできます。前者は自由ですが学ぶべきことが多く、後者は素早く学びますが古典的部分が間違っているとその限界に囚われます。
2. 5種類の報酬
すべて直接制御(10 msごとに 関節加速度)、PPOのデフォルト設定(第12話)、エピソード19,200個です。
| 名前 | 報酬 | 意図 |
|---|---|---|
| 希薄 | 相手の卓球台に入れば1、そうでなければ0 | 望み通りのもの |
| 形骸化(デフォルト) | 当れば0.3、入れれば+1、目標(y = 0.9 m)に近いほど最大+0.5、逃すとラケットとボールの最短距離の分だけ減点(最大−0.5) | 学習の初期にガイドを与える |
| 形状 + 制限ペナルティ | 上記に加え、関節の限界に達したステップごとに−0.05 | 安全 |
| 当てるだけ | ラケットに当ると1 | ハッキング実験 |
| ボールの速度 | 当たった後のボールの速さ ÷ 10 | ハッキング実験(「強く打てばいいだろう」) |
学習は報酬によって行いますが、 評価は常に同じ基準、すなわち「相手の卓球台に入れたか」で行います。報酬を変えた実験で報酬の数値を比較することは意味がないためです。
3. 実測:報酬
| 報酬 | 成功の中央値(最小〜最大) | ラケットに当たった | 関節の限界に達したエピソード | 当たったボールの速度の中央値 |
|---|---|---|---|---|
| スパース | 86.8% (75.4~90.7) | 92~96% | 5~48% | 5.2 m/s |
| 形状(デフォルト) | 82.9% (76.8~90.9) | 88~94% | 4~79% | 5.3〜5.6 m/s |
| 形状 + 限界ペナルティ | 89.2% (77.9~90.3) | 84~92% | 5~8% | 5.3〜5.5 m/s |
| 当てるだけ | 0.0% (0.0~8.9) | 98~99% | 100% | 9〜28 m/s |
| ボールの速度 | 0.0% (0.0~0.0) | 98% | 100% | 28.6 m/s |
3.1 報酬ハッキング
「当てるだけ」と「ボールの速度」は、報酬基準としては大成功を収めました。ラケットはボールの98%にヒットし、「ボールの速度」ポリシーはボールを平均28.6 m/sで打ち返しました。しかし、卓球台に入ったボールはほとんどありませんでした。どちらのポリシーも、すべてのエピソードで関節を限界まで振り回しました。ラケットを最速にすればボールに当たりやすく、ボールも速くなるからです。実際のロボットであれば、打球のたびに関節のストッパーを打ち鳴らすようなポリシーです。
教訓はシンプルです。 報酬の数値ではなく本当の目標で評価し、報酬が上がるのに目標がそのままならハッキングを疑います。
3.2 疎な報酬とシェイピング報酬
シェイピング報酬は「学習初期の道標」としてよく推奨されますが、この問題では疎な報酬(86.8%)の方がシェイピング報酬(82.9%)よりもむしろ少し高くなりました(シード3つのため差は誤差の範囲内)。理由は2つ推測されます。第1に、ランダム方策でも1.5%は成功するため(第11回)反復ごとに64個のエピソードのうち1、2個は成功シグボルを受け取ります。成功がそれほど稀でなければ、道標はそこまで必要ありません。第2に、「当たれば0.3」のような中間報酬は「当てて卓球台の外」を「外す」よりもマシだと教えるため、目標と少し異なる方向を混ぜてしまいます。シェイピング報酬は成功がはるかに稀な問題(例:最初から7自由度の腕でスマッシュ)で価値を発揮し、その時も目標から逸脱しないように設計しなければなりません(未計測)。
3.3 関節限界のペナルティ
ペナルティ1つで限界に達したエピソードが4〜79%から5〜8%に減り、成功率は落ちませんでした(89.2%)。第12回の基本方策が限界に達したのは、限界に達する必要があったからではなく 達するなと言われなかったからでした。安全条件は報酬ではなく制約として扱う方が確実だという観点もあります。実際のロボットはペナルティとは別に、コントローラー側にハードリミットを設けます。
4. 行動空間:直接制御 vs ハイブリッド
直接制御は第11回のままです。エピソードごとに決定が100回前後あり、タイミング・軌道・ラケットの角度をすべて方策が自ら見つけなければなりません。
ハイブリッドは最初のステップで数字を2つだけ選びます。接触角に加える補正Δφ(±0.15 rad)と、打撃瞬間のラケット角速度φ̇_c(0〜8 rad/s)です。残りは古典的な手法です。ボール飛行モデル(第6回)でボールがラケットの円弧に入る位置と時刻を予測し、その位置にその速度で到達する5次軌道(第8回)を作成してそのまま実行します。強化学習の問題としては1ステップのもの(コンテキスト・バンディット)になります。反復ごとに64個のボールで120回反復(7,680個のボール)を学習しました。
予測器は2種類試してみました。第6回の「Bモデル」のように回転を知らない予測器と、回転を知る予測器です。
| 行動空間 | 成功の中央値(最小〜最大) | 40%を初めて超えたボール数(シードの中央値) | 関節限界に達したエピソード |
|---|---|---|---|
| 直接制御(シェイピング報酬) | 82.9% (76.8~90.9) | 5,120 | 4~79% |
| ハイブリッド、回転を知らない予測器 | 46.3% (36.1~48.0) | 1,920 | 0~0.7% |
| ハイブリッド、回転を知る予測器 | 65.6% (39.0~73.8) | 1,280 | 0.3~0.9% |
学習なしのベースラインは、ハイブリッド行動空間の最善定数行動46%、回転を知らないモデルのグリッドプランナー40%、正解で選んだグリッドの上限85%でした(第11回)。
4.1 読み取れたこと
- ハイブリッドは速い。 40%を超えるのに直接制御は5,120個のボール(シードの中央値)がかかり、ハイブリッドは1,280〜1,920個でした。評価は640個のボールごとに行ったため、これより粗く測定された値です。数字を2つだけ学べばよいためです。Tebbeら(2021)も打撃瞬間のラケットの状態(向き・速度)のみを行動として事前学習なしで200エピソード以内に正確な結果を得たとアブストラクトに記載しています。
- しかし、古典的手法の限界に縛られます。 回転を知らない予測器を用いたハイブリッドは、最善定数行動(46%)を超えることができませんでした。予測した接触点が狂っていれば、Δφ ±0.15 radの補正ではボールに触れることすらないためです。予測器に回転を認識させると66%まで上昇しました。 ハイブリッドの性能は古典部分の品質で決まります。 第10回の「方程式が知らないことを狭めてくれる時だけ学習が安上がりになる」と同じ話です。
- ハイブリッドは安全です。 軌道を限界内で計画するため、限界に達したエピソードが1%未満でした。直接制御はペナルティなしでは最大79%でした。
- ハイブリッドの学習は変動が激しかったです。 回転を知るハイブリッドの評価成功率は学習中に10〜81%の間を往復し、最後の値を用いると1つのシードでは39%でした。反復ごとの64個のボールは、バンディット問題においてノイズが大きいサンプルです。「最も良かった瞬間」ではなく「最後」を報告するというルールを遵守しました(第15回)。
- 直接制御がハイブリッドの上限(85%)に近いところまで到達したことは、直接制御が打撃の角度と速度を1自由度の中でより自由に(例:スイング途中の減速など)組み合わせることができるためだと考えられます(推測)。
4.2 実際のシステムにおける選択
| システム | 学習が選択するもの |
|---|---|
| Büchlerら 2022(v1) | 8つの筋肉の圧力変化(最も低いレベル) |
| D'Ambrosioら 2023 | 関節速度8つが基本、ラケット位置3+法線2のタスク空間行動も比較 |
| D'Ambrosioら 2024 | スキル方策は関節速度(50 Hz)、その上の高レベルコントローラーは17個のスキルのうちの1つ |
| Tebbeら 2021 | 打撃瞬間のラケットの状態(向き・速度) |
下に行くほど古典的部分(軌道、逆運動学、ボール予測)に多くを任せます。オープンハードウェアの最初のロボットにはハイブリッドで出発してサンプル効率と安全性を獲得し、古典的部分の弱点(回転予測)が露呈した後にその部分を修正するか学習によって拡張する順序を推奨します。
5. 限界
- シェイピング報酬の係数(0.3、0.5、0.05)を1パターンしかテストしていません。異なる係数では結果が変わる可能性があります(未計測)。
- ハイブリッドの方策への入力は最初の観測のみであり、予測された接触点情報を入力に含めていません。含めればさらに改善する可能性があります(未計測)。
- シードが3つのため、類似した設定間(疎な報酬 vs シェイピング報酬、基本 vs ペナルティ)の差は統計的に区別できません。
6. まとめ
- 報酬は欲しいものを伝える唯一の手段です。「当てること」や「強く打つこと」を報酬にすると、98%当てて0%決める方策が出来上がります。評価は常に本当の目標で行います。
- この問題では疎な報酬だけでも十分でした。シェイピング報酬は成功が非常に稀な場合のためのツールです。
- 安全性は明示してこそ守られます。関節限界のペナルティ1つで限界衝突が10分の1に減少しました。
- 打撃パラメータのみを学習するハイブリッドは高速で安全ですが、古典的部分が間違っている分だけ限界に縛られます。回転を知る予測器に変更したところ、46%が66%になりました。
一言まとめ。 「ボールに当たったら褒める」と言ったら、ロボットはボールに全部当たったものの1点も決めませんでした。褒めるのは本当に欲しいものに対してだけにしなければなりません!
参考文献
すべての資料は2026-10-18に閲覧しました。
- Amodei et al., Concrete Problems in AI Safety, arXiv:1606.06565, アブストラクト.
- Tebbe, Krauch, Gao, Zell, Sample-efficient Reinforcement Learning in Robotic Table Tennis, arXiv:2011.03275(ICRA 2021), アブストラクト.
- D'Ambrosio 他, arXiv:2309.03315(行動空間の比較), arXiv:2408.03906(技術ポリシーと高レベルコントローラー).
- Büchler 他, arXiv:2006.05935 v1.