Controlling Complexity By Sharing Parameters And Minimizing Variation