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 : )

 

Continue Reading

I’ll Try Really Hard Not to Drop Out of this MOOC

Is this Angelina Jolie?
No, I don’t think it is. (Photo Credit: Bart Everson via Flickr)

I’m taking a MOOC! A MOOC is a Massively Open Online Course; this one is on a platform called Coursera, and it’s about machine learning. ML allows computers to learn in a meaningful way without being programmed. Google uses machine learning to improve its search results, Apple and Facebook use it for their photo recognition software, Tesla (and many others) use it in their self-driving cars, Google used it to beat the best humans at Go, a famously complex game, and IBM’s Watson is helping people tackle cancer. Not that I intend to compete with any that, but suffice it to say, I’m interested.

There are lots of people in our “class”– last we checked, around 750 had introduced themselves on the forum! Of course, studies show that completion rates for these types of classes are low– a little below 7%. I am definitely concerned that I might be part of the 93% who drop out for whatever reason, so I’ll promise in advance to be reflective and write a post about why I quit if I in fact do. I read through some of the posts my classmates have made introducing themselves, and they truly are from everywhere– France, India, China, Rwanda, Kentucky– and have all different levels of education. I’m not the only doctoral student, and there’s at least one middle school student enrolled!

For this class, there’s some recommended content knowledge, but no formal pre-requisites. It doesn’t cost money to take the course, but if you’d like a certificate, you can pay about $50. B and I aren’t taking it for a certificate, we’re just curious!

It’s not part of my degree program, so I don’t need to take it for any kind of credit– I think the understanding of the technology and the social experience of taking an online computer science course will be useful for my research. Machine learning could be an interesting data analysis method for me. It will certainly require its designers to make interesting ethical choices, and if I get the chance to study such a design team in the future, it will be helpful for me to understand the technology they are using.

So far, the class is interesting. This week, we are learning about the algorithms that statistical programs like R use to find coefficients for univariate regressions. It’s a fun counterpart to the linear modeling class I took first term which used that kind of software. It promises to tough, and an excellent opportunity for me to practice what I’ve been learning about growth mindset and grit!
We completed our first week today. I’ve passed all my assignments and have only cried once!

More info (& crying) to come on this, I’m sure.

Continue Reading