Let $G$ be a family of functions mapping from $Z$ to $[a, b]$ and $S=\left(z_{1}, \ldots, z_{m}\right)$ a fixed sample of size $m$ with elements in $Z$ . Then, the empirical Rademacher complexity of $G$ with respect to the sample $S$ is defined as : $$ \widehat{\Re}_{S}(G)=\underset{\boldsymbol{\sigma}}{\mathrm{E}}\left[\sup _{g \in G} \frac{1}{m} \sum_{i=1}^{m} \sigma_{i} g\left(z_{i}\right)\right] \text { . } $$ where $\boldsymbol{\sigma}=\left(\sigma_{1}, \ldots, \sigma_{m}\right)^{\top},$ with $\sigma_{i} s$ independent uniform random variables taking values in ${-1,+1}.

Empirical Rademacher complexity is commonly used in bounding the generalization error. From definition of empirical Rademacher complexity I found that it is data-dependent and irrelevant to the training algorithm - it depends on the complexity of hypotheses set.

My concern is that: we will usually get a fixed function by a training algorithm on a training set, and we can give the generalization error regarding this function directly by Hoeffding's inequality. Why we need to calculate Rademacher complexity for a generalization error bound which involves a hypotheses set?