Let’s first see how primitive covers were inadequate. Recall that a function class G is a primitive cover for a function class F at scale > 0 over some set S if: • G ⊆ F , • |G| <∞, and • for every f ∈ F there exists g ∈ G with supx∈S |g(x)− f(x)| ≤ . Last class, we gave a generalization bound for classes with primitive covers (basically, primitive covers give discretizations, and then we apply...