MOOC Week 2: In Which I Cry More than Once

This week in our Machine Learning Coursera class, we had an assignment! So far, we’ve just had formative and evaluative assessments, but today we had to actually program something. I am, let’s say, “under-experienced” with programming. Up until yesterday, my programming accomplishments have been: messing with existing HTML/CSS to make my website pretty, a couple codeacademy courses more than a year ago, and a statistics class, in which I wrestled with R every week to find the correct freaking working directory. Once, with lots of help, I made a button in Javascript. It counted how many times it was pressed. It took hours to make and I cried, but eventually, it worked.

the bowl-shaped plot of a cost function
A cost function, J(θ), for a univariate regression model. Here, θ is a matrix of two values, which are represented on the lower axes: a coefficient for one variable x and a y intercept.

Our assignment yesterday involved programming a Cost Function (in ML, a function mapping the sums of squared errors resulting from potential regression coefficients applied to the same data, which are serving here as training data) and the meaty part of a gradient descent algorithm– a program that will grope around on that cost function (hopefully in an orderly way) to find its minimum. The goal of this exercise is to find the point where the error between the model’s predictions and the actual values are the lowest: the best model to predict future data.

Well. As you can imagine, this was somewhat harder than my hard-won Javascript button. It also involved a lot of matrix algebra, which I had happily forgotten existed up until a week ago.

I made my life significantly more difficult by leaving this assignment to the last day– a day on which I had a brunch to go to and a class to teach. I think you can see where this is going?

Fortunately for me, Brandon took the time while I was teaching to do the assignment first. I would have flunked out last night if it weren’t for him. OK, let’s be honest, I would have flunked out in week 1 if it weren’t for him.

What he discovered, through much annoyance on his part and much to my relief, is that the assignment as written looked very long and complicated (15 pages of instructions!) but really consisted of editing 3 files. It took me a while to believe him and stop reading the assignment instructions, but– let it be known across the Internet (and especially among future Coursera students)– he was right! Saved me hours I did not have to spend parsing the assignment doc.

Of course, it was still difficult. Not only was I having to re-google matrix algebra repeatedly, I had never used Matlab before and had forgotten nearly everything I learned about writing code. The assignment took almost all the time I had available (even with a generous amount of help from B). Repeatedly running code and getting “inner dimensions must agree” was abundantly frustrating. I didn’t have time to take a break and recoup or calm down or be grateful for my progress– I had to get the assignment in by midnight. This is all complicated by my false and self-fulfilling belief that I am inherently bad at math and my long-running battle with a paralyzing fear of failure. By the time I submitted the assignment, I didn’t feel much relief or accomplishment– I felt I was about 11 years old, crying at the dinner table with my dad, trying to get through my algebra homework.

Obviously, we can’t have this happening every weekend for the rest of the summer. So here’s the new plan:

When I feel frustrated, I will take a break. I’ll get a glass of water, take a walk, or lay down for a bit and encourage myself. Remind myself of all the benefits of not getting something right the first time.

We aim to get the assignments done by Tuesday. They are due Sunday night, so we will have plenty of time to be kind to ourselves.

We will keep evaluating the plan so we can make it better if need be.

From this week forward, I’ll be trying to see this class as an opportunity to learn to use failure as a tool for learning (in addition to its curricular topics and Matlab benefits : )


You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *