Sunday, August 6, 2017

Progress with machine learning

Half a year has passed since my last post. I have accomplished a lot of things:

  • Completed Machine learning specialization by Yandex and MFTI on Coursera and cs231n course;
  • Got a job in a bank;
  • Finished my first stand-alone project on machine learning;
Machine learning specialization
This specialization covered all main topics in machine learning - classification, regression, clustering, nlp, recommender systemsand so on. I think that this is one of the best courses for beginners. As a final project I made a little site with sentimental analysis functionality - I have gathered ~25k customer reviews on mobile phones, trained a model and created a little site, where user can input a review and receive the result of analysis - whether the review is positive or negative.
cs231n is Stanford's course on deep learning. It was amazing and extremely useful.

Job in a bank
Finding a job, when you radically change a career if difficult, but after some time I was able to find a job in a bank. Now I work in a department, which works on cross-selling - trying to sell bank products to people, who already have some product of this bank.
I'm building a model which predicts probability with which customers will activate the card, which bank sends to them. And I'm doing it alone! So it is challenging and interesting.
Analysis and prototype are done in Python, but the solution in production will use SAS. So I have a lot of things to learn and explore.

Stand-alone project
In my spare time I try to learn as many new things as I can. There are many ways of doing it, one of them is building pet projects. I have spent several weeks on it, but the result was worth it.
Here is the link. The site looks like this:

This is a little site (also working on mobile), where a user can draw a digit and machine learning models will try to recognize it. There are two models: FNN written on numpy and CNN on Tensorflow. Both were inspired by cs231n. But models don't simply recognize the images, they are also trained on new images to improve their accuracy.

I collected the data by myself - I drew 1000 images, ~100 of each digit. Then I created the models and trained them on this data. This was my first experience in:

* Collecting, processing and storing the data by myself;
* Building a site and using Flask;
* Building models, which can be trained on additional data;
* Working with Amazon cloud;
* Augmenting images;
* Building new good TF structure for my purpose;

I have described the models and the project workflow on site, you can find the links in the navigation bar at the top.

No comments:

Post a Comment