Complex systems become manageable when amorphous complexity is divided into modules, arranged hierarchically, and reused instead of reimplemented. Reuse is abstraction: one design can serve multiple places. section 9.1
A ConvNet example
Deep learning applies the formula to optimization with gradient descent: layers act as modules, a stack forms a hierarchy, and reusable operations such as convolutions process different spatial locations. ConvNet architectures extend this pattern with repeated blocks or modules. Xception, for example, repeats SeparableConv–SeparableConv–MaxPooling blocks while feature maps become smaller and deeper, progressing from 299 × 299 × 3 to 19 × 19 × 728. section 9.1
Use the formula as a practical architecture checklist:
- Separate a complex system into meaningful modules rather than leaving it as an undifferentiated whole. section 9.1
- Organize modules into a hierarchy; in ConvNets, this is often a layer stack or a pyramid-like feature hierarchy. section 9.1
- Reuse modules wherever appropriate instead of implementing the same behavior twice. section 9.1
