{
  "article_slug": "private-gradient-clipping",
  "figures": [
    {
      "id": "private-gradient-clipping-1",
      "kind": "line_chart",
      "title": "Clipping can reverse the expected direction",
      "x_label": "Clipping threshold C (gradient units)",
      "y_label": "Expected scalar gradient",
      "series": [
        {
          "name": "Clipped mean",
          "x": [
            0.25,
            0.5,
            0.75,
            1.0,
            1.25,
            1.5,
            1.75,
            2.0,
            2.25,
            2.5,
            2.75,
            3.0,
            3.25,
            3.5,
            3.75,
            4.0,
            4.25,
            4.5,
            4.75,
            5.0,
            5.25,
            5.5,
            5.75,
            6.0,
            6.25,
            6.5,
            6.75,
            7.0,
            7.25,
            7.5,
            7.75,
            8.0,
            8.25,
            8.5,
            8.75,
            9.0,
            9.25,
            9.5,
            9.75,
            10.0,
            10.25,
            10.5,
            10.75,
            11.0,
            11.25,
            11.5,
            11.75,
            12.0
          ],
          "y": [
            0.2,
            0.4,
            0.6000000000000001,
            0.8,
            0.775,
            0.75,
            0.725,
            0.7,
            0.675,
            0.65,
            0.625,
            0.6,
            0.575,
            0.55,
            0.525,
            0.5,
            0.475,
            0.45,
            0.425,
            0.4,
            0.375,
            0.35,
            0.32499999999999996,
            0.29999999999999993,
            0.275,
            0.25,
            0.22499999999999998,
            0.19999999999999996,
            0.17499999999999993,
            0.15000000000000002,
            0.125,
            0.09999999999999998,
            0.07499999999999996,
            0.04999999999999993,
            0.025000000000000022,
            0.0,
            -0.025000000000000022,
            -0.050000000000000044,
            -0.07500000000000007,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998,
            -0.09999999999999998
          ]
        },
        {
          "name": "Unclipped mean",
          "x": [
            0.25,
            0.5,
            0.75,
            1.0,
            1.25,
            1.5,
            1.75,
            2.0,
            2.25,
            2.5,
            2.75,
            3.0,
            3.25,
            3.5,
            3.75,
            4.0,
            4.25,
            4.5,
            4.75,
            5.0,
            5.25,
            5.5,
            5.75,
            6.0,
            6.25,
            6.5,
            6.75,
            7.0,
            7.25,
            7.5,
            7.75,
            8.0,
            8.25,
            8.5,
            8.75,
            9.0,
            9.25,
            9.5,
            9.75,
            10.0,
            10.25,
            10.5,
            10.75,
            11.0,
            11.25,
            11.5,
            11.75,
            12.0
          ],
          "y": [
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1,
            -0.1
          ]
        }
      ],
      "caption": "Constructed P(g=1)=0.9 and P(g=-10)=0.1. Gradient descent subtracts these means; no Gaussian noise is needed for reversal."
    },
    {
      "id": "private-gradient-clipping-2",
      "kind": "line_chart",
      "title": "One-step error decomposes into bias and variance",
      "x_label": "Clipping threshold C (gradient units)",
      "y_label": "Mean squared gradient error",
      "series": [
        {
          "name": "Squared bias",
          "x": [
            0.25,
            0.5,
            0.75,
            1.0,
            1.25,
            1.5,
            1.75,
            2.0,
            2.25,
            2.5,
            2.75,
            3.0,
            3.25,
            3.5,
            3.75,
            4.0,
            4.25,
            4.5,
            4.75,
            5.0,
            5.25,
            5.5,
            5.75,
            6.0,
            6.25,
            6.5,
            6.75,
            7.0,
            7.25,
            7.5,
            7.75,
            8.0,
            8.25,
            8.5,
            8.75,
            9.0,
            9.25,
            9.5,
            9.75,
            10.0,
            10.25,
            10.5,
            10.75,
            11.0,
            11.25,
            11.5,
            11.75,
            12.0
          ],
          "y": [
            0.09000000000000002,
            0.25,
            0.4900000000000001,
            0.81,
            0.765625,
            0.7224999999999999,
            0.6806249999999999,
            0.6399999999999999,
            0.6006250000000001,
            0.5625,
            0.525625,
            0.48999999999999994,
            0.4556249999999999,
            0.42250000000000004,
            0.390625,
            0.36,
            0.33062499999999995,
            0.30250000000000005,
            0.275625,
            0.25,
            0.225625,
            0.20249999999999996,
            0.18062499999999995,
            0.15999999999999992,
            0.140625,
            0.12249999999999998,
            0.10562499999999997,
            0.08999999999999996,
            0.07562499999999996,
            0.0625,
            0.050625,
            0.039999999999999994,
            0.030624999999999986,
            0.022499999999999982,
            0.015625000000000007,
            0.010000000000000002,
            0.005624999999999997,
            0.002499999999999996,
            0.000624999999999997,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34,
            7.703719777548943e-34
          ]
        },
        {
          "name": "Sampling variance / 32",
          "x": [
            0.25,
            0.5,
            0.75,
            1.0,
            1.25,
            1.5,
            1.75,
            2.0,
            2.25,
            2.5,
            2.75,
            3.0,
            3.25,
            3.5,
            3.75,
            4.0,
            4.25,
            4.5,
            4.75,
            5.0,
            5.25,
            5.5,
            5.75,
            6.0,
            6.25,
            6.5,
            6.75,
            7.0,
            7.25,
            7.5,
            7.75,
            8.0,
            8.25,
            8.5,
            8.75,
            9.0,
            9.25,
            9.5,
            9.75,
            10.0,
            10.25,
            10.5,
            10.75,
            11.0,
            11.25,
            11.5,
            11.75,
            12.0
          ],
          "y": [
            0.0007031250000000001,
            0.0028125000000000003,
            0.006328125,
            0.011250000000000001,
            0.01423828125,
            0.017578125,
            0.021269531250000005,
            0.025312500000000005,
            0.029707031249999998,
            0.034453125,
            0.03955078125,
            0.04500000000000001,
            0.05080078125000001,
            0.056953125,
            0.06345703125,
            0.0703125,
            0.07751953125,
            0.08507812500000002,
            0.09298828125,
            0.10125,
            0.10986328125,
            0.118828125,
            0.12814453125000003,
            0.1378125,
            0.14783203125000002,
            0.158203125,
            0.16892578125000002,
            0.18000000000000005,
            0.19142578125,
            0.20320312500000004,
            0.21533203125000003,
            0.2278125,
            0.24064453125,
            0.253828125,
            0.26736328125000003,
            0.28125,
            0.29548828125,
            0.310078125,
            0.32501953125000005,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001,
            0.3403125000000001
          ]
        },
        {
          "name": "Gaussian variance",
          "x": [
            0.25,
            0.5,
            0.75,
            1.0,
            1.25,
            1.5,
            1.75,
            2.0,
            2.25,
            2.5,
            2.75,
            3.0,
            3.25,
            3.5,
            3.75,
            4.0,
            4.25,
            4.5,
            4.75,
            5.0,
            5.25,
            5.5,
            5.75,
            6.0,
            6.25,
            6.5,
            6.75,
            7.0,
            7.25,
            7.5,
            7.75,
            8.0,
            8.25,
            8.5,
            8.75,
            9.0,
            9.25,
            9.5,
            9.75,
            10.0,
            10.25,
            10.5,
            10.75,
            11.0,
            11.25,
            11.5,
            11.75,
            12.0
          ],
          "y": [
            6.103515625e-05,
            0.000244140625,
            0.00054931640625,
            0.0009765625,
            0.00152587890625,
            0.002197265625,
            0.00299072265625,
            0.00390625,
            0.00494384765625,
            0.006103515625,
            0.00738525390625,
            0.0087890625,
            0.01031494140625,
            0.011962890625,
            0.01373291015625,
            0.015625,
            0.01763916015625,
            0.019775390625,
            0.02203369140625,
            0.0244140625,
            0.02691650390625,
            0.029541015625,
            0.03228759765625,
            0.03515625,
            0.03814697265625,
            0.041259765625,
            0.04449462890625,
            0.0478515625,
            0.05133056640625,
            0.054931640625,
            0.05865478515625,
            0.0625,
            0.06646728515625,
            0.070556640625,
            0.07476806640625,
            0.0791015625,
            0.08355712890625,
            0.088134765625,
            0.09283447265625,
            0.09765625,
            0.10260009765625,
            0.107666015625,
            0.11285400390625,
            0.1181640625,
            0.12359619140625,
            0.129150390625,
            0.13482666015625,
            0.140625
          ]
        },
        {
          "name": "Total MSE",
          "x": [
            0.25,
            0.5,
            0.75,
            1.0,
            1.25,
            1.5,
            1.75,
            2.0,
            2.25,
            2.5,
            2.75,
            3.0,
            3.25,
            3.5,
            3.75,
            4.0,
            4.25,
            4.5,
            4.75,
            5.0,
            5.25,
            5.5,
            5.75,
            6.0,
            6.25,
            6.5,
            6.75,
            7.0,
            7.25,
            7.5,
            7.75,
            8.0,
            8.25,
            8.5,
            8.75,
            9.0,
            9.25,
            9.5,
            9.75,
            10.0,
            10.25,
            10.5,
            10.75,
            11.0,
            11.25,
            11.5,
            11.75,
            12.0
          ],
          "y": [
            0.09076416015625002,
            0.253056640625,
            0.4968774414062501,
            0.8222265625,
            0.78138916015625,
            0.7422753906249999,
            0.7048852539062499,
            0.6692187499999999,
            0.63527587890625,
            0.603056640625,
            0.57256103515625,
            0.5437890624999999,
            0.5167407226562499,
            0.49141601562500004,
            0.46781494140625,
            0.4459375,
            0.42578369140624994,
            0.40735351562500005,
            0.39064697265625004,
            0.3756640625,
            0.36240478515624996,
            0.35086914062499996,
            0.34105712890624995,
            0.3329687499999999,
            0.32660400390625,
            0.321962890625,
            0.31904541015625,
            0.3178515625,
            0.31838134765625,
            0.32063476562500004,
            0.32461181640625003,
            0.3303125,
            0.33773681640625,
            0.346884765625,
            0.35775634765625003,
            0.3703515625,
            0.38467041015625,
            0.400712890625,
            0.41847900390625004,
            0.4379687500000001,
            0.4429125976562501,
            0.4479785156250001,
            0.4531665039062501,
            0.4584765625000001,
            0.4639086914062501,
            0.4694628906250001,
            0.4751391601562501,
            0.4809375000000001
          ]
        }
      ],
      "caption": "Independent batch n=32, Gaussian standard deviation C on the sum before division, sigma=1. This optimization calculation does not compute epsilon or provide a privacy guarantee."
    }
  ]
}
