| Up | 強化学習 (Reinforcement Learning, RL) | 作成: 2026-02-28 更新: 2026-03-01 |
ユーザが,そのアーキテクチャを実際に訓練して,性能(例えば精度)を測定する。 そしてそれを「報酬」として,コントローラに返す。 報酬は,つぎのように定めた: 精度が高いほど報酬アップ モデルが大きすぎるとペナルティ (αは重み) 報酬 = 0.8 (以下は通説である。 コントローラが実際にしていることは,不可視・不可思議。) ○ 行動系列(action sequence) 状態 → 行動 → 報酬 の「行動系列」として扱う: ・行動 (action):どの穴にどの値を入れるかの選択 ・報酬 (reward):最終的に得られたモデルの性能(例:0.8) ○ ポリシー勾配法(REINFORCE)
良い報酬を得たアクションの確率を上げるように,コントローラのパラメータを更新 コントローラは「どの穴が良かったか」は直接わからないが,全体として良かった選択の傾向を学習していく。 たとえば,何度も「conv → conv → pool → fc → fc」みたいな構成で高い報酬が得られたら,コントローラは「convを最初に選ぶと良いかも」と学習していく。 ○ 処理の概要: θは,コントローラのパラメータ。 θ を更新して,次回はより良いアーキテクチャを出せるようにする ○ 確率分布(policy)
第1層の layer_type に対して: コントローラは,この報酬をもとに,確率分布を少しずつ調整していく。
そして,報酬が高かったら: 他の選択肢の確率を 少し下げる これを何千回,何万回と繰り返すことで, 「良いアーキテクチャを生みやすい確率分布」に近づいていく。 これが,「学習」の意味。 そして,良いアーキテクチャを生み出すための選択確率の分布が,コントローラの「能力」。 ○ 「組み合わせの数が膨大」問題を免れる |