Description
In this programming assignment, you will implement techniques to learn a linear regressor that takes an input vector x of 10 dimensions and outputs a scalar y. Specifically, this assignment involves learning the regression parameters Θ=(w,w0)t, where w is a 10×1 vector and w0 is a scalar, given the training data D={x[m], y[m]}, m=1,2, …, 10,000. D is stored in a Mx11 matrix (data.txt), where the first 10 columns represent input x and the last column represent y. You will implement the following methods to learn the regression parameters Θ based on the mean squared loss function.
a. Implement in Tensorflow the closed form gradient-based solution to solve Θ analytically. Write down the equation used as well as the computed values for Θ.
b. Implement in Tensorflow the gradient descent method to solve for Θ iteratively using all data in D. Initialize Θ to 0.01 for all elements of Θ. Try different learning rates between 0.001 an 0.005. Write down the estimated values for Θ as well as plot the loss function value change as a function of iteration number t.
c. For graduate students taking this class at 6000 level, implement in Tensorflow the Stochastic Gradient Descent method with a batch size set between to 20 and 10. Give the estimated values for Θ, the selected batch size, and plot the loss function value as a function of iteration number t.
Do not use Tensorflow’s existing gradient descent and stochastic gradient descent functions for tasks b and c. Submit your Tensorflow code via LMS, along with the required outputs as specified above.