Non-asymptotic numerical differentiation: a kernel-based approach