Toward a unified theory of efficient, predictive, and sparse coding | Synapse