Learning Nonlinear Overcomplete Representations for Efficient Coding