In computer science, lower bounds and upper bounds are defined as follow:
$$m \geq g(n) \implies m = \Omega(g(n))$$
$$m \leq g(n) \implies m = \mathcal{O}(g(n))$$
However, in proving lower bounds and upper bounds for learning algorithms, I get confused, From papers\books Hoeffding inequality always gives you upper bounds, but in every book\paper: $ m \geq g(n) \implies m = \mathcal{O}(g(n))$ which contradicts classic definitions.
I know I'm wrong somewhere but I can't find the missing puzzle.
The way I understand finding lower bounds and upper bounds for algorithms:
- Lower bounds allow us to find necessary conditions for the PAC guarantee, that is if $m \leq g(n)$ we lose the PAC guarantee $\mathbb{P}[\mathcal{L}_{\mathcal{D}}(h) \leq \epsilon] \leq \delta$
- On the other hand, upper bound not only gives you sufficient conditions but also an algorithms that satisfies those conditions.
Can someone explains to me where this contradiction comes from and what I don't understand?
Thanks,