This semester I’m taking three courses and two of them surprisingly take up much more time than I thought, and I wondered why I spent so much time of them. The courses are nlp and big data with machine learning systems.
Here are the reasons:
- Too many sources of study material. For nlp, I consulted Andrew Ng’s course material deep learning, Stanford nlp course notes, NYU nlp course notes, the book by Goldberg, for deep learning I also read Elements of statistical learning and Deep learning. Much of them are covering the same concepts but from different perspectives and using different notations. Thus I repeated read many things, and not following a coherent logic flow.
- Unclear learning objectives. The course notes at NLP are not well written, in my opinion, in that the learning objectives for each section is not clear enough so that reader will grasp what s/he is doing and why she is doing this. In learning word embeddings, it was not until I come into this post (http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/) that I understand that classification task here is not the purpose but a “fake task” to learn word embeddings. This takes me days and multiple consultations with the TA!
- Lack of background information. My bad in being too ambitious. The biggest problem is I’m not familiar with programming, especially Python OOP. Thus, even though theoretically I understand the algorithms I do not understand them in the codes. Worse, since I’m so unfamiliar I didn’t realize that I didn’t understand the codes. e.g. in Pytorch a class called nn.embedding… I don’t understand what exactly is the object and why it can be called, and what is returned. This hindered my ability in understanding what exactly is the model building. I also didn’t follow the course industrially and thus missed a few lectures, making it hard to catch up later.
- Low productivity. 1) When stuck, the best strategy is to go away for a while to search for fill in the background information, or to ask people to figure out what to learn. But, sometimes I stay idle and waste time. Because even if I think about it, I won’t understand if pieces of information is missing. 2) without clear objectives in given time period. Solved this by buying a stop watch and time myself in doing tasks.
Oct 26, 2017 update
Today is not very productive. The problem is some textbooks are so detailed that going through it requires lots of time (e.g. deep learning book).
Again it’s a problem of priority.
- If I don’t use something, I forget.
- If I don’t have a complete understanding of something, I spent more time later because missing crucial information.
- But if I start too early, I don’t understand.
Today, I spent time on representive learning, but most of them I don’t remember now because I don’t have background information.
Thus, if I go too deep in the first time with the deep learning book without a research topic:
- I will spend lots of time and possibly cannot understand it all.
- I cannot memorize every theorem I read in the book, this is not high school.
- Since I don’t use, I will forget.
The approach is learning by doing.
- Set a deliverable!!! not just read books. Always read book with a goal!!!
Nov 8 2017 update
with blog post, I wanted to write one but after two months I haven’t done.
In fact, if I limit each post to 1.5 hour, then each morning I can already get it done. The trick is to do them in pieces, also drafts.
Each draft takes 10 minutes or so so I can use idle time to edit. Just write whatever I have on the blog.
After accumulating enough drafts I can then publish.