{
  "schemaVersion": 1,
  "lessonId": "optimization-12",
  "contentHash": "b53c9001cf8f5566eab55a47c9ceaa664afbbb5b019c4df9da6f0bdba176da8f",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:45:30.516857+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "step / update: 1 [-0.09999993  0.09999993]\nstep / update: 2 [-0.09334469  0.00893815]\n",
  "data": {
    "kind": "line",
    "x": [
      0,
      1,
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28,
      29,
      30,
      31,
      32,
      33,
      34,
      35,
      36,
      37,
      38,
      39,
      40,
      41,
      42,
      43,
      44,
      45,
      46,
      47,
      48,
      49,
      50
    ],
    "xlabel": "completed update",
    "ylabel": "objective",
    "yscale": "log",
    "series": [
      {
        "label": "SGD 0.05",
        "y": [
          5.5,
          1.7012499570846558,
          0.719753086566925,
          0.4456709027290344,
          0.35124143958091736,
          0.3042512834072113,
          0.2714007794857025,
          0.24414268136024475,
          0.22013963758945465,
          0.19862625002861023,
          0.17924773693084717,
          0.16176795959472656,
          0.14599481225013733,
          0.1317601203918457,
          0.11891345679759979,
          0.10731938481330872,
          0.09685573726892471,
          0.08741230517625809,
          0.07888960093259811,
          0.07119785994291306,
          0.06425607204437256,
          0.05799110233783722,
          0.05233696475625038,
          0.04723411053419113,
          0.04262878745794296,
          0.038472484797239304,
          0.03472141921520233,
          0.03133608400821686,
          0.028280816972255707,
          0.025523435324430466,
          0.023034900426864624,
          0.020788999274373055,
          0.018762070685625076,
          0.016932768747210503,
          0.01528182439506054,
          0.013791847042739391,
          0.012447142973542213,
          0.011233546771109104,
          0.01013827696442604,
          0.009149794466793537,
          0.008257688954472542,
          0.007452564314007759,
          0.006725939456373453,
          0.006070159841328859,
          0.005478319711983204,
          0.004944183398038149,
          0.004462125711143017,
          0.004027068614959717,
          0.0036344295367598534,
          0.003280072705820203,
          0.0029602658469229937
        ]
      },
      {
        "label": "momentum 0.05",
        "y": [
          5.5,
          1.7012499570846558,
          0.5676531195640564,
          2.9319541454315186,
          3.713770866394043,
          1.4483853578567505,
          0.03461557999253273,
          1.2929290533065796,
          2.357900857925415,
          1.2898004055023193,
          0.08681458979845047,
          0.6245877146720886,
          1.5696172714233398,
          1.1767903566360474,
          0.2386462241411209,
          0.29174304008483887,
          0.9403372406959534,
          0.8799124360084534,
          0.22732152044773102,
          0.06310366839170456,
          0.46965813636779785,
          0.5873262882232666,
          0.21218658983707428,
          0.00645929342135787,
          0.23846766352653503,
          0.41127678751945496,
          0.22458769381046295,
          0.0299995094537735,
          0.1250682920217514,
          0.2717123031616211,
          0.19087553024291992,
          0.03151748701930046,
          0.044646333903074265,
          0.15095177292823792,
          0.13538718223571777,
          0.028346098959445953,
          0.008976730518043041,
          0.08099889010190964,
          0.09926427155733109,
          0.036747436970472336,
          0.0059060389176011086,
          0.04596395045518875,
          0.07165637612342834,
          0.03735828399658203,
          0.004841371439397335,
          0.021115384995937347,
          0.043925151228904724,
          0.028703004121780396,
          0.0027659116312861443,
          0.006715106312185526,
          0.024945450946688652
        ]
      },
      {
        "label": "Adam 0.1",
        "y": [
          5.5,
          4.455007076263428,
          3.5236434936523438,
          2.7072434425354004,
          2.0061025619506836,
          1.4191699028015137,
          0.9437739849090576,
          0.5753220915794373,
          0.3070265054702759,
          0.12974466383457184,
          0.03198150917887688,
          0.00014515886141452938,
          0.019101429730653763,
          0.07302282750606537,
          0.14644207060337067,
          0.22534814476966858,
          0.29813048243522644,
          0.35621052980422974,
          0.39427998661994934,
          0.410162091255188,
          0.4043826162815094,
          0.3795652687549591,
          0.3397635817527771,
          0.28981050848960876,
          0.23473963141441345,
          0.1793053299188614,
          0.12761376798152924,
          0.08286605775356293,
          0.047210853546857834,
          0.021701280027627945,
          0.006347548682242632,
          0.00025298650143668056,
          0.0018164525972679257,
          0.008978464640676975,
          0.019484475255012512,
          0.031137332320213318,
          0.042013224214315414,
          0.050621215254068375,
          0.05599493533372879,
          0.05771461874246597,
          0.05586616322398186,
          0.050950706005096436,
          0.04376188665628433,
          0.03524920344352722,
          0.026384525001049042,
          0.018045978620648384,
          0.010929561220109463,
          0.005494351498782635,
          0.0019430274842306972,
          0.0002351691946387291,
          0.0001275439135497436
        ]
      }
    ]
  },
  "diagram": {
    "title": "A norm ball and a coordinate box",
    "prediction": "Does coordinate clipping at \\(2.5\\) guarantee that the whole gradient norm is at most \\(2.5\\)?",
    "reading": "The blue arrow is \\((3,4)\\). Green scales it to norm \\(2.5\\) along the same ray. Orange clips each coordinate to \\(2.5\\), landing at the box corner with norm \\(2.5\\sqrt{2}\\). The circle and box are analytic constraints, not training measurements.",
    "alt": "The blue arrow is \\((3,4)\\). Green scales it to norm \\(2.5\\) along the same ray. Orange clips each coordinate to \\(2.5\\), landing at the box corner with norm \\(2.5\\sqrt{2}\\). The circle and box are analytic constraints, not training measurements.",
    "scope": "Architecture and dataflow mechanism diagram.",
    "height": 6,
    "panel": {
      "kind": "clipping"
    }
  }
}
