Up モデルの構築 作成: 2026-02-28
更新: 2026-03-02


    設計の意思決定(どのパーツを使うか)は,コントローラが行う。
    実際にコードとしてモデルに埋め込む処理は,人間が書いたプログラム(フレームワークやNASの実装)が自動で行う。

    つまり,コントローラは「設計図の指示書」を出すだけで,実際の組み立て作業は,あらかじめ人間が用意したコードが担当する。


    たとえば,コントローラが
      「Conv3x3 → ReLU → MaxPool → FC」
    という設計を出したとする。
    NASの実装コードは,この設計に従って:
     1. Conv2d レイヤーを作る
      (入力チャンネル数,出力チャンネル数,カーネルサイズ
       などを指定)
     2. ReLU() をその後に追加
     3. MaxPool2d() を追加
     4. Linear() で出力層を作る


    モデルの構築は,訓練の終了までである。
    これは,つぎのプロセルになる:まとめると,
    (1) モデルの構築
      選ばれた構造に従って,PyTorchやTensorFlowなどのフレームワークでモデルを構築する。
      この部分は人間がコードを書くこともあるし,完全に自動化されているNASフレームワーク(例:AutoKeras,DARTS)もあるよ。
    (2) 構造の制約チェック
      選ばれた構造が実行可能か(例えば,出力サイズが合っているか,パラメータ数が多すぎないか)をチェックする。
      ここで問題があれば,設計をやり直すこともある。
    (3) モデルのテスト
     (3.1) モデルの訓練
     (3.2) モデルの評価
      コントローラが提案したアーキテクチャを,実際に訓練して,その性能を測る。
      そして,次のアーキテクチャ提案にフィードバック。