Damn that learning curve. I used to build my project using Keras since it is very easy to learn, thus my thesis was also build using that one to save the time. Now I feel that Keras is not that easy to debug and to be honest, I don't feel like I am learning anything because everything is wrapped so nicely (which is actually I appreciate). But then I came to one realization that I haven't learn the ugly details. Why the ugly details is important? Because in my opinion it is necessary to understand the mechanism of the magic. Machine learning should not be a seen as a black-box of magic. I used to have this mindset: "Just build a simple model and train the data" Voila, you will go nowhere and thus you will not be able to explain why your chosen architecture is suitable for a certain task.
Here's the catch. I can train signal input for classification, regression, or whatever using convolution layer, recurrent layer, or maybe even a simple MLP (multi-layer perceptron). But then you can see that when you see the result, maybe one of those type (or combination of those) works better than the other. Why? I cannot answer that. Thus I have to read the articles and seek what is the underlying idea behind those architectures or layers. How it works, and at what task.
In academic research I was told that I should do my work systematically. For example, assume that I have this one paper I want to use as the baseline:
- Reproduce the baseline (if it is possible, use the same data, preprocessing, features, model, and task). This does not necessarily mean that you have to use the same framework, but (sometimes) there will be slight differences in used algorithm between matlab's partial least square and python library (scikit-learn), but usually it is not too significant.
- Change one by one. This means that you cannot do multiple modification from the baseline simultaneously. For instance, you cannot change the model and task at the same time.
- Logging! Note everything down. Every experiment iteration, write down what you did and the outcome. I used to lie to myself that I will
- Discuss. You shall never use your own understanding and you will go further by talking to people with similar interest. (unless your environment is toxic and unsupportive)
- Write a publication.
- Enjoy a little break. While waiting for the reviews ;)
Okay, this is my flawed thoughts and opinion for the time being for this blog is basically my life-note. My thoughts of what I'm going throughout this life.
###