ムエタイ · コーチング · ヒューマン・イン・ザ・ループ

AIファイターをコーチする

著者 ヤム トニー(Tony Yum) ·

学習コスト about $40all EC2 training so far: balance (about $24) and jab (about $16), 15–17 October 2026 · 内訳

ポッドキャストのエピソードをSpotifyで聴く

ヤム トニーは長年ムエタイを教えてきたコーチです。AIにパンチを教えるのは、彼にとって新しい旅です。驚いたのは、それが思いのほか馴染みのある感覚だったことです。人に教えることで身につけてきたことのほとんどが、そのまま通用します。

既製のモーションではなく、本物の技を

シミュレーションの格闘技を扱う論文や動画の多くは、既製のモーションから始まります。アセットストアで買ったモーションキャプチャのクリップや、Unrealのようなゲームエンジン向けに作られたアニメーションです。ファイターは、正しかろうが間違っていようが、クリップの中身をそのまま真似することを覚えます。

このプロジェクトの目標は違います。トニーが知っている格闘技について、できるだけ本物に近い動きを目指しています。今のところはムエタイです。ブラジリアン柔術はその後になります。組み技では2つの体が押し合い、掴み合い、互いの上を転がります。その裏にある数学はずっと難しいので、まずは打撃からです。

技のコーチングには2つの段階があります。まずは手本、つまりその技がどう見えるべきかです。次に学習で、ファイターが物理法則のもとで実際にその技をできるようになることです。

第1段階:手本

参照モーションとは、ファイターが後でそれに沿って動くことで報酬を得る、目標となる動きです。これはMuJoCoの体そのものの上で作ります。体は2種類あり、筋肉の体とシンプルな体です(バランスの記事を参照)。参照モーションは筋肉の体で作るので、ある骨格から別の骨格へ変換する層を挟まずに、そのまま使えます。

トニーはコーディングエージェント、つまりコードを書いて実行してくれるAIと一緒に作業しています。彼はスマートフォンからエージェントに話しかけます。エージェントは要所(始まり、インパクト、戻り)の画像や、短い低解像度の動画を送り返し、トニーがそれを確認します。良い参照モーションにたどり着くために、彼は3つのやり方を試してきました。

ただ頼む。 1つ目は、たとえばジャブを作ってほしいとエージェントに頼むやり方です。返ってくるものはたいていパンチらしく見えますが、正しくはありません。そこでトニーは少しずつ直していきます。肘を締める、前に踏み込む、腰を回す、拳を出しながらひねる、顎を引く。直すべき細かい点は山ほどあります。

最初にすべて説明する。 2つ目は、最初に技全体を説明し、試して、見て、アニメーションが正しく見えるまで磨いていくやり方です。こちらのほうが良いのですが、それでも難しいです。言葉による説明では、決まらずに残る部分が多すぎるのです。

見せる。 3つ目は、コーチが一番よく使うやり方、つまり見せることです。トニーは要所の姿勢をとった自分の写真を撮ったり、自分を撮影して重要な瞬間の静止画を選んだりします。それを使って、AIにどこが間違っているかを説明します。バランスの記事に出てくる立て直しのステップは、この方法で作りました。

写真があっても、詰めるべき点はたくさん残ります。足の角度がずれている。足が腰よりも大きく回ってしまい、全体がぎこちなく見える。ここがこのプロジェクトで最も手作業の多い部分です。とはいえ、人にパンチを教えるのと何も変わりません。初心者の最初のジャブもパンチらしく見えて実はそうではなく、コーチは細かい点を1つずつ直していきます。

第2段階:学習

参照モーションが正しく見えるようになったら、ファイターは本物の物理のもとでそれをできるようにならなければなりません。質量、勢い、滑る足、そして倒れうる体です。これが強化学習です。ニューラルネットワークである方策(ポリシー)が、シミュレーションの中でその動きを何百万回も試します。報酬関数がそれぞれの試行に点数をつけます。

どう動かしているか

作業は2台のマシンに分かれています。

  • 小さなサーバーがAmazon Lightsailで常に動いています。学習を管理するマシンです。トニーのコーディングエージェントはここで動いていて、彼のスマートフォンも同じセッションにつながります。
  • 大きな学習用マシンがAmazon EC2で重い処理を担います。トニーのテストでは、ここではグラフィックカード(GPU)はほとんど役に立ちませんでした。MuJoCoのような物理シミュレーターはプロセッサ上で動き、ファイターのコピーをコア1つにつき1体ずつ、たくさん並べて同時に学習させます。ですから大事なのはvCPUの数です。費用を抑えるため、このマシンは余っている計算資源を安く借りるスポットインスタンスにしています。

学習用マシンは進捗をクラウド上のログに書き出します。小さなサーバー上のエージェントがそれを見張り、ランを追いかけ、トニーと話します。2人で一緒に、進み具合が正しいのか、それとも方策を変える必要があるのかを見極めます。時には第1段階に戻って参照モーションを変えることもあります。

ときどき、短い動画を並べたものがトニーのスマートフォンに届きます。いろいろな距離の標的にジャブを打つファイターや、あらゆる方向から押されるファイターの動画です。ですから週末に家族と散歩していても、たまに動画が届きます。明らかにおかしなところがあれば、彼は声で伝えます。「ここに問題があるのが見える」。2人でアイデアを出し合い、次の実験が始まります。実験はそれまでに学習したネットワークの続きから始まるので(ファインチューニング)、ファイターの技術はすでに身につけたものの上に積み上がっていきます。

新しい言葉で、それでもコーチング

この段階も、人に教えるのとよく似ています。見て、問題に気づき、直す。違うのは、直し方がもう「腰を回せ」ではないことです。それは報酬が求めるものの変更になります。問いも新しいものになります。

  • 何に沿わせるべきか? 腰は参照モーションに正確に沿うべきか? それとも報酬は、標的に当たるときの拳の速さを重視すべきか? トニーが一番こだわっていたのは、インパクトまでとインパクトの瞬間の速さとスタイルでした。戻りはもっと緩くてかまいません。
  • パンチの後はどうなるか? あるバージョンでは、ファイターはジャブを当てた後に前へすり足で進んでしまいました。それは良くないので、報酬で構えに戻ること、つまり前を向いて足を元の位置に戻すことを求めました。ところが決まった順序で戻るよう強制すると、パンチそのものから力が失われました。そこで戻りを緩めました。構えには戻らなければなりませんが、パンチが優先です。
  • どれくらい強く押すか? ファイターは、コーチが生徒を押すように、押されながらバランスを保つことも学びます。しかし押しすぎると、パンチを打つ力が損なわれます。トニーの判断は、今は押しを軽めにして、まずパンチを正しくすることでした。
  • 標的はどれくらい遠いか? 標的が遠ければ、もっと踏み込むべきか? 前に体を傾けるべきか? そして標的が近すぎると、ジャブの見た目が悪くなります。腕が曲がり、踏み込みもない。そもそもそんなに近い距離ではジャブを打つべきではないのでは? トニーの答えは「それは気にしなくていい」でした。近い間合いでは肘打ちか膝蹴りが正しい技です。コーチがファイターに言うのと同じです。

これらの中には互いに引っ張り合うものもあります。バランスを増やせばパンチは弱まる。戻りを厳しくすればインパクトが弱まる。どちらを取るかはコーチとしての判断であって、数字ではありません。だからこそ、これはヒューマン・イン・ザ・ループのプロジェクトなのです。トニーは目と格闘技の経験を持ち込みます。AIは「腰が遅れている」を方策とその報酬への変更に落とし込むためのアイデアを持ち込みます。どちらも単独では遠くまで行けません。この組み合わせこそがうまくいく理由です。

双方向の学び

ニューラルネットワークが技を学んでいる間、トニーも学んでいます。自分の判断と格闘技の経験を、人工知能とどう組み合わせるかです。この旅は始まったばかりで、彼はとてもワクワクしています。

何より良いのは、夜遅くまで机に縛りつけられないことです。彼は普段どおりの生活を送っています。ときどき技を確認し、直し、考え直し、進みながら学んでいます。人を教えているときとほとんど同じように。