{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "RD3K5HADYG"
    }
  ],
  "body": "\n## Summary\n\nMatching pursuit is a greedy algorithm that builds an approximation of a vector from a dictionary of unit vectors, one element at a time.\nAt each step it picks the dictionary element most correlated with the current residual and removes the projection of the residual on that element.\nIt gives a cheap way to compute [[n-term approximations|GEK0NP5WQM]] and [[sparse approximations|WC8P971XGW]] when the exact problem is too hard.\nA variant, orthogonal matching pursuit, re-projects onto all chosen elements at each step.\n\n## Explanations\n\n### L1 human\n\nImagine explaining a sound with a few notes from a large catalogue.\nMatching pursuit first picks the note that matches the sound best, subtracts it, and then repeats with what is left.\nEach step makes the leftover part shorter, because a component of it is removed.\nIn $\\R^2$ with the dictionary $e_1$, $e_2$ and $u = (e_1 + e_2)/\\sqrt{2}$, the vector $f = (2, 1)$ first picks $u$, since $\\ip{f}{u} = 3/\\sqrt{2}$ is the largest correlation.\nThe leftover $(1/2, -1/2)$ then needs both $e_1$ and $e_2$, so the greedy method uses three elements, while $f = 2e_1 + e_2$ needs only two.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "41A46",
      "94A12",
      "41A65"
    ],
    "name": "Matching pursuit",
    "same_as": {
      "wikidata": "Q6786281",
      "wikipedia": "Matching pursuit"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Matching_pursuit"
      }
    ],
    "tag": "8KJ9P9KQ5H"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/8KJ9P9KQ5H/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/8KJ9P9KQ5H.md",
  "msc": [
    "41A46",
    "94A12",
    "41A65"
  ],
  "name": "Matching pursuit",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/8KJ/8KJ9P9KQ5H.md",
  "status": null,
  "tag": "8KJ9P9KQ5H",
  "uri": "m2://8KJ9P9KQ5H",
  "url": "https://tamnd.github.io/math2/wiki/matching-pursuit/",
  "writing": {
    "tag": "8KJ9P9KQ5H",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
