So, in supervides machine learning it is common to say that we learn a function of the form $y=g(x) + \epsilon$. Generally, $\epsilon$ is used to denote noise or more precise any influence by latent variables such as measurement inaccuaries - right?

Is it therefore correct to say that we use $\epsilon$ do denote the model's imperfection to the real world (caused by anything unkown)?

Thanks!