| Up | テンプレートの構築 | 作成: 2026-02-28 更新: 2026-03-03 |
「ここに畳み込み層を入れる場所があるよ」 「ここは選択肢が複数あるよ」 といった "穴あきの設計図"。 これは人間が事前に用意することが多い。 設計(パーツを組む)は, そのテンプレートの穴を,パーツで埋めること。 これはコントローラの役割。 「穴」 は変数で,「穴を埋める」 は値の設定。 テンプレートは「設計図の下書き」, コントローラは「その下書きを埋めて完成させる職人」。 テンプレートは,アーキテクチャの「枠組み」や「制約」を定めるもの。 とえば: ・各層の種類(Conv, Pooling, Attention など) ・各層の幅の範囲 (フィルターサイズやストライド) ・接続のパターン(直列,並列,スキップ接続など) ・活性化関数の種類 コントローラはこのテンプレート (「空の器」) を入力として受け取り,それに従って 「どの層をどこに配置するか」 「どのハイパーパラメータを使うか」 などを決定する。 NAS の「AI が AI を設計」は, モデルが出来上がっていく = コントローラが出来上がっていく コントローラーは, テンプレートの穴変数の値を調節 という形で,テンプレートからモデルをつくる。 そしてこれは,つぎのループを繰り返すことで実現される: テンプレートの穴変数に値を代入 (「アーキテクチャの設計」) アーキテクチャを構築・訓練 検証データで性能を測る(評価) 性能を報酬としてコントローラに返す 報酬をもとに,穴変数に代入する値を導出 (「学習する」) 実際の NAS システムでは,テンプレートはコードや DSL (ドメイン特化言語) で記述されている。 即ち,テンプレートの実体は,つぎのようなコード: 6層のネットワーク で,各層に layer_type, kernel_size, activation の3つの穴がある。 「穴」を意味は:
|