First experiments with ML using Keras

I'm still exploring the new world of machine learning.

Recently I discovered few interesting things about it:

  • It's not only for math nerds. A lot of tools are on market, you just have to understand how to use them
  • There are a lot of application of ML, it might be hard to see that from the first sight but it because it's a completely new way of solving problems you probably never thought about
  • Investors LOVE it, any project which has AI/ML in the description make it more attractive for investments
  • It's the next Big Thing as you might see already
  • A lot of human's mechanic work can be replaced with AI
  • In terms of scientific researches I see two kind of them: 1) Very deep math used for building ML tools 2) Adaptation of existing tools, model configurations, best practices for new applications

Hence, I started experimenting with it. First of them was Prisma-like chat bot for Facebook which uses open source implementation of neural style transfer algorithm. Then I made AI-powered visa sponsored job search engine which discovers companies' websites and walk over job listings to extract vacancies. It uses CNN for binary classification to recognise job listings.

Unfortunately all these experiments didn't give me sense of how it works. If you even can tune hyperparameters for existing model it won't help you to build your own NN. Hence, I decided to start from the beginning

I started with very simple model which learns how to predict points on simple line built using y = x * 10. It's quite simple problem for you, isn't it? :) But the goal was to get sense how is it working

screenshot-from-2016-11-15-15-21-33

Did I get it? No. But it works :) You can find ipython notebook of my first experiment on github

Later on I made task more difficult_(seriously try to find right activation function!)_ using polynomial function of degree 3:
screenshot-from-2016-11-15-15-24-11

It looks dumb simple but not for one who never touched that area before in his late 27 :)

screenshot-from-2016-11-15-15-29-51

Other examples like gradient descent for unit circle and binary classifier for salary you can find on github's repo ruXlab/keras-experiments

Tools used:

  • python3, ipython notebook
  • keras, scikit-learn, numpy, pandas