| Up | 運転脳の訓練 : 概要 | 作成: 2026-06-15 更新: 2026-06-17 |
訓練プログラム (アルゴリズム) 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" を渡す。 選択は,訓練中は ε の確率でランダム行動 1−ε の確率で argmax 行動 訓練のゴールは,Q(s, a) が 「s における行動 a の良さを表すものになること < 訓練は,NN のパラメータ値がランダムなところから開始する。 そして, 「報酬」 を方法にして,パラメータ値を更新していく。 このパラメータ値更新が,運転脳の出力を 「スマートな (巧い) 運転」 にしていくというわけである。 Q値の生成は,NN の 「匙加減 (勘)」 であり,プログラムには書けない。 運転脳を NN でつくるのは,「匙加減」 が欲しいからである。 「状態sにおける行動 a (F/R/L) の良さ」 は,sのコンテクストにさほど依存しない。 s だけを見て a を決めても,大体はだいじょうぶ。 そこで訓練は, 試行 (「エピソード」) ごとに初期設定を変える ができる。 これは,「転移 transfer」 が効く運転を実現することになる。 「転移が効く」 とは,運転脳が運転に関わる 「世界」 の概念を持つということである。 運転の学習は,概念学習! 報酬を使った NN のパラメータ値更新は,つぎのようになる: (勾配降下法) |