From 0 to 1: How did I learn from a self-study machine in one year?

Editor's note: Last year, Per Harald Borgen wrote an article entitled "A Week of Machine Learning Study", which described how he had started a machine learning journey through five days of hard work.

What you see next is the follow-up to this article. Per Harald Borgen will share with us how he learned machine learning knowledge within a year and completed the first machine learning project at work, including the use of various The machine learning and natural language processing technologies enable Xeneta's potential customers to meet eligibility criteria.

In Per Harald Borgen's view, he does not believe that only those who have a doctoral or master's degree can be more professional in machine learning. "The study of machine learning does not require you to learn mathematics very well, nor does it require you to obtain a degree."

If you are curious about machine learning and have awe, look at this article.

Getting Started: Hacker News and Udacity

My interest in machine learning began in 2014. At that time I just started reading some articles about it on Hacker News. Then I discovered that teaching the machine to do something by testing the data was an interesting idea. At the time, I didn't even have a professional developer. It was only an amateur coder, but I still wanted to give it a try.

So I began to look at the first few chapters of Udacity's supervised learning course and at the same time began to read all the articles in this area.


Although I didn't have practical skills, I still have a certain understanding of the concept of machine learning. However, because I rarely listen to large-scale online open courses, I did not hear it.

"Success" hangs Coursera machine learning course

In January 2015, I attended the "Founder and Programmer" training camp in London (FAC bootcamp) and wanted to become a programmer. After a few weeks, I wanted to learn how to code machine learning algorithms, so I set up a learning group with several companions. Every Tuesday evening, we will watch machine learning courses on Coursera.

This course is awesome and I have learned a lot. But for a beginner, the course content is too hard, so I have to watch over and over again to master the points.

At the same time, the Octave encoding task is equally challenging, especially if you don't know about Octave. Later, because it was too difficult, the small partners gave up one by one, and later I eventually gave up.

Afterwards, I realized that I should find a course that suits me. Either use a machine learning library to perform coding tasks instead of creating algorithms from scratch, or at least use a programming language I understand.

For beginners, learning a new language and coding machine learning algorithms at the same time is too difficult.

If I find it in time, I will choose Udacity's "Introduction to Machine Learning" course because it is simpler and uses Python and Scikit. In this way, we can get started quickly, gain confidence and be more interesting.

Acquire: Start with simple and practical things, not difficult and theoretical ones.

A week of machine learning

My last effort at the FAC was a weekly machine learning show. My goal is to use machine learning to solve practical problems at the end of this training week. In the end I succeeded.

During this week I did the following things:

Learn more about Scikit learning

Try machine learning on real world data sets

Code a linear regression algorithm from scratch (in Python)

Did a little natural language processing

This is the learning curve of the most tortuous machine learning I have experienced so far. If you want to know more details, please continue reading this article.

Acquire: Use one week to completely immerse yourself in a new project, which is extremely effective.

Neural Networks? I also hung up

After finishing the FAC training camp in London, I returned to Norway. I tried to replicate the success I had in Machine Learning Week before and applied it to a neural network and the result failed.

Because there are too many things to distract my energy, I cannot spend 10 hours a day coding and learning. I discovered the importance of the environment, because before the FAC training camp, I was surrounded by machine learning enthusiasts.

Acquire: When doing this kind of study, let yourself be in a positive environment.

However, at least I started working on neural networks and slowly mastered the essentials. Finally on July 1st, I successfully wrote my first network. It may not be of any value, and in my case there is nothing to show off, but this at least proves that I understand the concept of back propagation and gradient descent.

In the second half of the year, as I found new jobs, the project began to slow down. The most important gain in this period was a significant leap from the non-vectorization of neural networks to the implementation of vectorization, including linear algebra that has been repeated from the university.

At the end of the year, I wrote an article to summarize my study.

Test Kaggle Contest

In the Christmas holiday of 2015, I once again had the courage to decide to experiment with Kaggle. So it took me a while to experiment with various algorithms for testing Kaggle's residential quote conversion, Otto Group product classification, and bike sharing demand contest.

By experimenting with various algorithms and data, the results have been continuously improved, which is my biggest gain in this attempt.

I learned to believe in my own logic when doing machine learning. In addition, if adjusting a parameter or designing a new feature makes it logically feasible, it may also be helpful in practical applications.

Arrange daily learning at work

In January 2016, after the holidays ended, I returned to work and I wanted to continue the study of the Christmas holidays. So I asked my manager if I could spend some time to study during work hours. He readily agreed. After having a basic understanding of neural networks, I want to continue to study in depth.

Deep learning at Udacity

The first thing I tried was Udacity's deep learning course, but I was very disappointed by the results. The content of the course was good, but it was too short for me.

In addition, the results of the IPython Notebook task are also very frustrating. I spent most of my time debugging bugs, and after a few weeks of continuous work, the original enthusiasm gradually retreated. At the end I basically gave up.

For me, when it comes to IPython Notebooks, I am completely new to it. So compared to me, your results may not be as bad as me. Maybe I'm not ready to listen to this course yet.

Stanford's Deep Learning Natural Language Processing

Fortunately, I later discovered Stanford's CS224D and decided to give it a try. This course is great. Although it was difficult, I never gave up debugging when setting up problems.

Second, they do give you the code for the solution. When I encounter difficulties, I often look at these codes so that I can get my work back and figure out the steps needed to reach a solution.

Although I haven't done it yet, it has greatly improved my knowledge of natural language processing and neural networks.

However, this process is really hard. At one point I thought I needed someone who was better than me to help me. So I found a doctor who was studying and gave him $40 an hour. He accepted it with pleasure. He helped me to solve the problem set up and the overall understanding of the problem, and his help was crucial to me because he discovered a lot of my knowledge of the black hole.

Acquisition: At $50 an hour, it is possible to find a good teacher in the field of machine learning. If you can afford it, it is definitely worth it.

Raising Xeneta's sales

After doing all the above work, I feel that I am ready to do a machine learning project at work. The project aims to train a set of algorithms that will allow Xeneta's potential customers to meet eligibility criteria by reading corporate descriptions. This will save a lot of time for employees in the sales department.

It is indeed a long journey to go to this step. But in fact it is fast. When I started the first week of the project, I never thought I could use machine learning proficiently in a year's time.

But this is entirely possible. If I can do it, then others will be able to.

Via medium

Postscript: After watching Per Harald Borgen's year-long learning process, did he feel that machine learning is not so far away from us? However, as important as the method is perseverance, if you are really interested in machine learning, you may wish to start from now.

Recommended reading:

Machine Learning: A Mammoth History of Artificial Intelligence Development

Smartphone + Machine Learning = The Future of Personal Terminals

Posted on