Smoothing Score Algorithm for Generalized Additive Models