{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $M \\colon \\R \\to \\R$ be an unknown function and let $\\alpha \\in \\R$ be a target value.\nAssume that at each $\\theta \\in \\R$ one can observe a [[random variable|0DKRR22AEQ]] $N(\\theta)$ with [[expectation|0WQNRCNY3M]] $E[N(\\theta)] = M(\\theta)$.\nLet $(a_n)_{n \\ge 1}$ be positive step sizes.\nThe *Robbins–Monro algorithm* is this [[stochastic approximation|ZPCPW4W1Y9]] scheme:\n$$\\theta_{n+1} = \\theta_n - a_n \\left( N_n - \\alpha \\right), \\qquad n \\ge 1.$$\nHere $\\theta_1$ is an initial guess.\nGiven the past, $N_n$ is an observation of $N(\\theta_n)$, made independently of the earlier observations.\nIts aim is a root $\\theta^*$ of the equation $M(\\theta) = \\alpha$.\n\n## Remarks\n\nRobbins and Monro proved this convergence result in 1951.\nAssume that $N(\\theta)$ is uniformly bounded, $M$ is nondecreasing, $M'(\\theta^*)$ exists and is positive, and the step sizes satisfy $\\sum_n a_n = \\infty$ and $\\sum_n a_n^2 \u003c \\infty$.\nThen $\\theta_n \\to \\theta^*$ in $L^2$, and hence [[in probability|0QA1HBD9Z4]].\n\nExample: let $N(\\theta) = \\theta - Z$ with $Z$ uniform on $[0, 2]$, so $M(\\theta) = \\theta - 1$, and let $\\alpha = 0$ and $a_n = 1/n$.\nThe step sizes satisfy both conditions, since $\\sum 1/n = \\infty$ and $\\sum 1/n^2 \u003c \\infty$, and the root is $\\theta^* = 1$.\nWith fresh draws $Z_n$, the recursion is $\\theta_{n+1} = \\theta_n - \\frac1n (\\theta_n - Z_n)$, so $\\theta_{n+1} = (Z_1 + \\cdots + Z_n)/n$, the sample mean, which tends to $1$ by the law of large numbers.\n\nNon-example: constant step sizes $a_n = c \u003e 0$ violate $\\sum a_n^2 \u003c \\infty$; in the example, $\\theta_{n+1} = (1 - c) \\theta_n + c Z_n$ for $0 \u003c c \u003c 1$ keeps fluctuating with conditional variance $c^2 \\operatorname{Var}(Z) \u003e 0$ at each step, so it does not converge.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "CHHD44WDHJ",
    "kind": "definition",
    "msc": [
      "62L20"
    ],
    "name": "Robbins–Monro algorithm",
    "sources": [
      {
        "locator": "Robbins–Monro algorithm",
        "url": "https://en.wikipedia.org/wiki/Stochastic_approximation"
      }
    ],
    "tag": "6V75QVQCX6",
    "uses": [
      "ZPCPW4W1Y9",
      "0DKRR22AEQ",
      "0WQNRCNY3M",
      "0QA1HBD9Z4"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/6V75QVQCX6/",
  "links": [
    {
      "field": "defines",
      "target": "CHHD44WDHJ"
    },
    {
      "field": "uses",
      "target": "ZPCPW4W1Y9"
    },
    {
      "field": "uses",
      "target": "0DKRR22AEQ"
    },
    {
      "field": "uses",
      "target": "0WQNRCNY3M"
    },
    {
      "field": "uses",
      "target": "0QA1HBD9Z4"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/6V75QVQCX6.md",
  "msc": [
    "62L20"
  ],
  "name": "Robbins–Monro algorithm",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/6V7/6V75QVQCX6.md",
  "status": null,
  "tag": "6V75QVQCX6",
  "uri": "m2://6V75QVQCX6",
  "url": "https://tamnd.github.io/math2/wiki/robbins-monro-algorithm-definition/",
  "writing": {
    "tag": "6V75QVQCX6",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      }
    ]
  }
}
