gradient descent more efficient

avoids calculating non-changing hypothesis function for every column