Up 運転脳の訓練 : 概要 作成: 2026-06-15
更新: 2026-06-17

4足歩行ロボット > 基礎研究型運転脳 > 訓練概要

    訓練は,つぎの2つがコンポーネントになる:
      運転を訓練される NN
      訓練プログラム (アルゴリズム)


    NN とは,つぎの層構造のこと:
      計算グラフ+重みパラメータ
    そこで NN の表現は,
      f_θ
        f : 計算グラフ
        θ : パラメータ

    計算グラフは,関数だが,「基本的な計算の組み合わせ」 に表わすことを以て,「計算グラフ」 の言い方がされる。

    そして,ここで訓練する NN は 
      DQN (Deep Q-Network)
    と呼ばれるタイプの NN。
    運転脳は,「Q値生成 NN」 としてつくる。


    「訓練プログラム (アルゴリズム)」 となるものは,
      学習アルゴリズム
      行動選択アルゴリズム
      報酬計算
      など

    「計算グラフ (computational graph)」 と 「アルゴリズム (手続き)」 の区別に注意。
    2つは,混同しやい。

    "DQN" の語も,曖昧に使われている。
    文字通りには,NN を指す。
    しかし,これの学習アルゴリズムも "DQN" と呼ばれる。


    作業するコンピュータは,運動脳 があるコンピュータ。
    コンピュータの中に,運転脳 NN と訓練プログラムを構築。
    そして訓練。

    訓練が終了したら,NN のパラメータを固定。
    訓練プログラムを削除。
    このコンピュータをロボットに搭載すれば,運動脳+運転脳の 「脳」 ということになる。


    運転NN = Q値生成 NN は,「状態」 が入力。
    入力 s に対する出力は,「s における行動 a の良さ」 を意味する数値 Q(s, a) の組:
       ( Q(s, F), Q(s, R), Q(s, L) )

    ここで,F, R, L は,運転を3つの運動脳── F脳 (前進), R脳 (右回り), L脳 (左回り) ──の切り替えとしているから。


    この出力から,行動選択アルゴリズムが F, R, L のうちの1つを選択。
    そして,運動脳に,"F"/ "R"/ "L" を渡す。

    選択は,訓練中は
      ε-greedy:
        ε の確率でランダム行動
        1−ε の確率で argmax 行動
    訓練後は argmax が基本。


    訓練のゴールは,Q(s, a) が 「s における行動 a の良さを表すものになること

    < 訓練は,NN のパラメータ値がランダムなところから開始する。
    そして, 「報酬」 を方法にして,パラメータ値を更新していく。
    このパラメータ値更新が,運転脳の出力を 「スマートな (巧い) 運転」 にしていくというわけである。

    Q値の生成は,NN の 「匙加減 (勘)」 であり,プログラムには書けない。
    運転脳を NN でつくるのは,「匙加減」 が欲しいからである。


    「状態sにおける行動 a (F/R/L) の良さ」 は,sのコンテクストにさほど依存しない。
    s だけを見て a を決めても,大体はだいじょうぶ。

    そこで訓練は,
      試行 (「エピソード」) ごとに初期設定を変える
    ができる。
    これは,「転移 transfer」 が効く運転を実現することになる。

    「転移が効く」 とは,運転脳が運転に関わる 「世界」 の概念を持つということである。
    運転の学習は,概念学習!


    報酬を使った NN のパラメータ値更新は,つぎのようになる:
     1. 報酬 r と整合する Q値: \[ Q_{new}(s_t, a_t)\ =\ (1-\alpha)\ Q(s_t, a_t) + \alpha\ R \\ \ \ R\ =\ r_{t+1} + γ\ max \{⁡ Q(s_{t+1}, a_{t+1})\ |\ a_{t+1} \} \]  2. この Q値変更を,パラメータ値の更新で実現  
       (勾配降下法)