{
  "experiment": "Controlled 2x2: MLP/CNN x no augmentation/random integer translation",
  "execution": "all four runs executed locally on CPU; single seed; no synthetic fallback",
  "environment": {
    "python": "3.12.14",
    "torch": "2.14.0+cpu",
    "numpy": "2.3.5",
    "torch_threads": 2,
    "deterministic_algorithms": true
  },
  "protocol": {
    "train_n": 12000,
    "validation_n": 10000,
    "test_n": 10000,
    "split_seed": 20260908,
    "model_seed": 20260921,
    "shuffle_seed": 20260922,
    "augmentation_seed": 20260923,
    "epochs": 6,
    "batch_size": 128,
    "optimizer": "Adam",
    "learning_rate": 0.001,
    "selection": "minimum clean validation cross-entropy; test not used",
    "train_augmentation": "independent per-image dx,dy uniform integers [-2,2], zero-fill/crop",
    "test_transform": "fixed right 2 px, zero-fill left and crop right",
    "split": "NumPy permutation; first 12000 train, positions 50000:60000 validation; official test",
    "partition_sha256": "07b9912c3f033a9e953a0f35809aec455e5bb08f1baaea8aeba153127d54a353",
    "train_ids_sha256": "f37bb06a382ad9bddc201674fdd0a53dbe5c4331a054244e11fcb5f43e9a8042",
    "files": [
      {
        "file": "train-images-idx3-ubyte.gz",
        "bytes": 9912422,
        "md5": "f68b3c2dcbeaaa9fbdd348bbdeb94873",
        "sha256": "440fcabf73cc546fa21475e81ea370265605f56be210a4024d2ca8f203523609"
      },
      {
        "file": "train-labels-idx1-ubyte.gz",
        "bytes": 28881,
        "md5": "d53e105ee54ea40749a09fcbcd1e9432",
        "sha256": "3552534a0a558bbed6aed32b30c495cca23d567ec52cac8be1a0730e8010255c"
      },
      {
        "file": "t10k-images-idx3-ubyte.gz",
        "bytes": 1648877,
        "md5": "9fb629c4189551a2d022fa330f9573f3",
        "sha256": "8d422c7b0a1c1c79245a5bcf07fe86e33eeafee792b84584aec276f5a2dbc4e6"
      },
      {
        "file": "t10k-labels-idx1-ubyte.gz",
        "bytes": 4542,
        "md5": "ec29112dd5afa0611ce80d1b7f02629c",
        "sha256": "f7ae60f92e00ec6debd23a6088c31dbd2371eca3ffa0defaefb259924204aec6"
      }
    ]
  },
  "models": {
    "MLP": {
      "parameters": 25450,
      "conv_linear_macs": 25408,
      "shapes": [
        [
          "flatten",
          "(1, 784)"
        ],
        [
          "hidden",
          "(1, 32)"
        ],
        [
          "relu",
          "(1, 32)"
        ],
        [
          "logits",
          "(1, 10)"
        ]
      ]
    },
    "CNN": {
      "parameters": 26698,
      "conv_linear_macs": 307648,
      "shapes": [
        [
          "conv1",
          "(1, 8, 28, 28)"
        ],
        [
          "relu1",
          "(1, 8, 28, 28)"
        ],
        [
          "pool1",
          "(1, 8, 14, 14)"
        ],
        [
          "conv2",
          "(1, 16, 14, 14)"
        ],
        [
          "relu2",
          "(1, 16, 14, 14)"
        ],
        [
          "pool2",
          "(1, 16, 7, 7)"
        ],
        [
          "flatten",
          "(1, 784)"
        ],
        [
          "hidden",
          "(1, 32)"
        ],
        [
          "relu3",
          "(1, 32)"
        ],
        [
          "logits",
          "(1, 10)"
        ]
      ]
    }
  },
  "runs": {
    "MLP / no augmentation": {
      "architecture": "MLP",
      "augmentation": false,
      "parameters": 25450,
      "conv_linear_macs": 25408,
      "history": [
        {
          "epoch": 1,
          "train_online_loss": 1.279486498037974,
          "val_loss": 0.6492245197296143,
          "val_accuracy": 0.8422
        },
        {
          "epoch": 2,
          "train_online_loss": 0.5120621717770895,
          "val_loss": 0.4303207993507385,
          "val_accuracy": 0.884
        },
        {
          "epoch": 3,
          "train_online_loss": 0.3823934219280879,
          "val_loss": 0.36013299226760864,
          "val_accuracy": 0.8995
        },
        {
          "epoch": 4,
          "train_online_loss": 0.33030956935882566,
          "val_loss": 0.3248308598995209,
          "val_accuracy": 0.9072
        },
        {
          "epoch": 5,
          "train_online_loss": 0.2967049793402354,
          "val_loss": 0.30389681458473206,
          "val_accuracy": 0.9121
        },
        {
          "epoch": 6,
          "train_online_loss": 0.27068274235725404,
          "val_loss": 0.28525370359420776,
          "val_accuracy": 0.9187
        }
      ],
      "selected_epoch": 6,
      "seconds": 0.46608377899974585,
      "initial_state_sha256": "6895ce03789df7eb4cb35d2fa763f7fe5fb30eb84bdd4d82a519e05bed976e2c",
      "clean": {
        "n": 10000,
        "correct": 9211,
        "accuracy": 0.9211,
        "loss": 0.278793603181839
      },
      "right_2px": {
        "n": 10000,
        "correct": 6639,
        "accuracy": 0.6639,
        "loss": 1.2206131219863892
      },
      "prediction_changed": 3219,
      "paired": {
        "correct_to_correct": 6440,
        "correct_to_wrong": 2771,
        "wrong_to_correct": 199,
        "wrong_to_wrong": 590
      }
    },
    "MLP + shift augmentation": {
      "architecture": "MLP",
      "augmentation": true,
      "parameters": 25450,
      "conv_linear_macs": 25408,
      "history": [
        {
          "epoch": 1,
          "train_online_loss": 1.647910569190979,
          "val_loss": 0.8642081022262573,
          "val_accuracy": 0.8044
        },
        {
          "epoch": 2,
          "train_online_loss": 1.0174751510620117,
          "val_loss": 0.6319127678871155,
          "val_accuracy": 0.8322
        },
        {
          "epoch": 3,
          "train_online_loss": 0.844072825272878,
          "val_loss": 0.5304024815559387,
          "val_accuracy": 0.8645
        },
        {
          "epoch": 4,
          "train_online_loss": 0.7717113202412923,
          "val_loss": 0.4827503561973572,
          "val_accuracy": 0.8789
        },
        {
          "epoch": 5,
          "train_online_loss": 0.7121036451657613,
          "val_loss": 0.4549749493598938,
          "val_accuracy": 0.8809
        },
        {
          "epoch": 6,
          "train_online_loss": 0.6486869858105977,
          "val_loss": 0.4317486882209778,
          "val_accuracy": 0.8908
        }
      ],
      "selected_epoch": 6,
      "seconds": 1.2107707060058601,
      "initial_state_sha256": "6895ce03789df7eb4cb35d2fa763f7fe5fb30eb84bdd4d82a519e05bed976e2c",
      "clean": {
        "n": 10000,
        "correct": 8994,
        "accuracy": 0.8994,
        "loss": 0.4100692868232727
      },
      "right_2px": {
        "n": 10000,
        "correct": 8421,
        "accuracy": 0.8421,
        "loss": 0.5579330921173096
      },
      "prediction_changed": 1227,
      "paired": {
        "correct_to_correct": 8189,
        "correct_to_wrong": 805,
        "wrong_to_correct": 232,
        "wrong_to_wrong": 774
      }
    },
    "CNN / no augmentation": {
      "architecture": "CNN",
      "augmentation": false,
      "parameters": 26698,
      "conv_linear_macs": 307648,
      "history": [
        {
          "epoch": 1,
          "train_online_loss": 1.3473554762999216,
          "val_loss": 0.5120416879653931,
          "val_accuracy": 0.8428
        },
        {
          "epoch": 2,
          "train_online_loss": 0.40829876629511513,
          "val_loss": 0.3359728157520294,
          "val_accuracy": 0.9028
        },
        {
          "epoch": 3,
          "train_online_loss": 0.28251572167873384,
          "val_loss": 0.25189560651779175,
          "val_accuracy": 0.9259
        },
        {
          "epoch": 4,
          "train_online_loss": 0.22639261655012766,
          "val_loss": 0.20900729298591614,
          "val_accuracy": 0.9389
        },
        {
          "epoch": 5,
          "train_online_loss": 0.18569258213043213,
          "val_loss": 0.18062162399291992,
          "val_accuracy": 0.9427
        },
        {
          "epoch": 6,
          "train_online_loss": 0.1575392838716507,
          "val_loss": 0.1610109955072403,
          "val_accuracy": 0.9508
        }
      ],
      "selected_epoch": 6,
      "seconds": 7.749303313998098,
      "initial_state_sha256": "5f0699842eed166a300510c5c240eabe92a3e7881d0346d37770dc367068ea80",
      "clean": {
        "n": 10000,
        "correct": 9533,
        "accuracy": 0.9533,
        "loss": 0.1518123298883438
      },
      "right_2px": {
        "n": 10000,
        "correct": 8464,
        "accuracy": 0.8464,
        "loss": 0.49975717067718506
      },
      "prediction_changed": 1381,
      "paired": {
        "correct_to_correct": 8353,
        "correct_to_wrong": 1180,
        "wrong_to_correct": 111,
        "wrong_to_wrong": 356
      }
    },
    "CNN + shift augmentation": {
      "architecture": "CNN",
      "augmentation": true,
      "parameters": 26698,
      "conv_linear_macs": 307648,
      "history": [
        {
          "epoch": 1,
          "train_online_loss": 1.6658898069063823,
          "val_loss": 0.698250949382782,
          "val_accuracy": 0.7774
        },
        {
          "epoch": 2,
          "train_online_loss": 0.8353470934232076,
          "val_loss": 0.42062240839004517,
          "val_accuracy": 0.8822
        },
        {
          "epoch": 3,
          "train_online_loss": 0.5670598087310791,
          "val_loss": 0.27301546931266785,
          "val_accuracy": 0.9236
        },
        {
          "epoch": 4,
          "train_online_loss": 0.3952855316003164,
          "val_loss": 0.2038508653640747,
          "val_accuracy": 0.942
        },
        {
          "epoch": 5,
          "train_online_loss": 0.304270667274793,
          "val_loss": 0.16948743164539337,
          "val_accuracy": 0.9507
        },
        {
          "epoch": 6,
          "train_online_loss": 0.24611281287670136,
          "val_loss": 0.1572180688381195,
          "val_accuracy": 0.9555
        }
      ],
      "selected_epoch": 6,
      "seconds": 8.72066449400154,
      "initial_state_sha256": "5f0699842eed166a300510c5c240eabe92a3e7881d0346d37770dc367068ea80",
      "clean": {
        "n": 10000,
        "correct": 9581,
        "accuracy": 0.9581,
        "loss": 0.14576253294944763
      },
      "right_2px": {
        "n": 10000,
        "correct": 9384,
        "accuracy": 0.9384,
        "loss": 0.2040695995092392
      },
      "prediction_changed": 436,
      "paired": {
        "correct_to_correct": 9288,
        "correct_to_wrong": 293,
        "wrong_to_correct": 96,
        "wrong_to_wrong": 323
      }
    }
  },
  "shift_augmentation_interaction_pp": -8.61999999999999,
  "failure_examples": {
    "selection": "first six test indices where clean is correct and shifted is wrong",
    "test_indices": [
      5,
      46,
      51,
      55,
      62,
      73
    ],
    "activation_example": 5
  },
  "limitations": [
    "single seed",
    "architectures have different parameters and compute",
    "MNIST only",
    "cropping may remove information"
  ]
}