Skip to content

nnue_train: Loss / WDL に lambda jitter (per-sample / per-batch + AR(1) decay) を導入 #263

Description

@SH11235

背景

nnue-pytorch は WDL lambda に Gaussian noise を注入する jitter を持つ:

  • per-sample (jitter_lambda_sample)
  • per-batch (jitter_lambda_batch)
  • batch jitter に AR(1)-style 減衰 (jitter_decay_lambda_batch: buf = decay*buf + sqrt(1-decay²)*noise)
  • 最後に clamp(0,1)

WDL scheduler の代替として regularization 効果。tatara には対応物無し。

参考

  • nnue-pytorch (chess、commit e215624): model/lambda_utils.py (jitter 関連 fn 全体)
  • tatara: 該当無し (grep -ri jitter 0 件)

受け入れ条件

  • CLI flag --lambda-jitter-batch <std> / --lambda-jitter-sample <std> / --lambda-jitter-decay <f32> (default 全 0、0 で従来挙動)
  • noise 注入経路を実装 (位置は dataloader / loss kernel どちらかを実装時に判断)
  • 決定論性 (seed) を維持する設計
  • 既定値経路は従来挙動 bit-identical
  • experiment.json に効値を記録
  • local-ci PASS

補足

複雑度: 中。SPRT は別途。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions