A heuristic is a bundle of manually specified, hard-coded rules. It uses human-designed judgments to guide a decision or search instead of rules learned from data or derived from a formal theory. section 12.1.1
Selective search in R-CNN
Early R-CNN detectors used selective search as a heuristic first stage. Its spatial-consistency rules proposed object-like image regions; a convolutional network then classified those regions and refined their bounding boxes. Later Faster R-CNN systems replaced this hand-built proposal stage with a learned region proposal network. section 12.1.1
Heuristics can serve different roles:
- They provide a practical baseline when a problem can be addressed with explicit rules. section 12.1.1
- They can guide program synthesis by steering search toward promising program structures. section 19.4.5
- They differ from learned models: learned models derive rules from data, while heuristics depend on rules made by people. section 12.1.1
Figure 19.15 A learned program relying on both geometric primitives (pattern recognition, intuition) and algorithmic primitives (reasoning, search, memory)
A learned program can combine pattern-recognition intuition with algorithmic search and memory, illustrating how learned heuristics may guide program synthesis. section 19.4.5








