In this post I don’t want to discuss any technical issues in deep learning. After studying in this field for nearly a year, I think it is time to look back and remind myself why did I chose to step in this river.

At first, deep learning just came to me as a mythical subject, aligned with college calculus and rocket science. I was interested in deep learning then because I was curious about how to make computers learn and complete tasks that previously assumed only humans can accomplish! I once tackled calculus by taking the Khan Academy course and it turned out to be kind of successful. It was not enough to make me an expert, but I was going to learn that in school anyway, and seeing me calculate derivatives just blew my friends’ minds. Rocket science was a bit harder, and this time it wasn’t my will of showing off kept me learning, but a computer game called Kerbal Space Program. There was no easy course around on the internet, and I found that this subject is one that I have to tackle by myself. The aspiration soon failed me because the book is also too hard!

And when it came to deep learning, as a enthusiastic programmer, it came naturally that I can simply learn it as a new programming language. The standard procedure was buying a beginners tutorial kind of book and persist reading. Grokking Deep Learning was the book I chose. In that book I first learned that neural nets are not as complex as I thought, being just nodes consisting numbers and a lot of matrix multiplications during training. But what the book didn’t do well was that important concepts like Stochastic Gradient Descent and back propagation was not explained properly, and convolutional neural network just came as a blur and left me thoroughly with no ideas. Also I found that learning a bunch of knowledge in the book provided no help for me to solve problems in the real world, like classifying an image with multiple labels and stuff.

That’s when I collided with fastai. There course and ideas of teaching seemed fantastic to me! I downloaded their book, watched their course and realized with hopes surging that maybe this is the right course for me. Practical, with some theory, but practical nonetheless. But as I went deeper into the course, the sense became more and more evident that something was missing. My final goal is to use the fastai library to solve real world issues, on real world datasets. It was like learning to walk or to ride a bicycle. Of course you need others’ assistance at first, and then you need to handle all kinds of difficult situations, some probably never been taught, in the real world by yourself. But when doing things that are not taught in fastai, even as trivial as changing a dataset for a particular kind of problem, I just became sort of incapacitated. The walking stick is now taken away and I have to go back to the age of crawling. After assuming I had learned enough on the image classification or regression problem, I went to find a kaggle competition that should boost my confidence. However, the effects were just the contrary. The code I had written when taking the course just seemed to deflate before me. All the fastai library’s basic classes started to pop up weird errors that I had never seen before. I left the competition not so graciously, like being trampled on.

What’s wrong with my method of deep learning then? It was a question that I have been thinking for more than a month now. First, I have the ability for deep learning and the curiosity still remains. I just don’t know how to use my tools correctly, that’s all. Maybe I am feeling stumped only because I had learned so little and tried to push too hard on myself. Then what should I do? Still to follow the fastai course seems to be the best choice for me. This time I am going to focus and learn. Course first, then the book. Hope this journey can continue longer.