Tuesday, November 15, 2016

Machine Learning Project

Hey guys! I have a couple of interesting Machine Learning ideas that I thought of quite a while ago, and I'm happy to say I'm implementing one of those as my ML class project. As you know, Machine Learning involves giving the computer some data which it can use to 'learn' a model. This model can then be used for a variety of applications. The most interesting one I heard of from my professor is texture stitching.

Texture stitching involves taking the same thumbnail and repeating it over and over to form a nice, large texture. You may have seen the abstract wallpapers here and there, like the brick wall. Apparently that's not a picture of a whole wall, but rather a small piece repeated several times. The ML model learns the image and tries to stitch in a way where that fact is not obvious. And we have seen the results, they're quite breathtaking.

Anyway, back to my project ideas. So I have two, one which I call Y U No Reply, and another which I call Spirited.

Y U No Reply: In this one, the user downloads a Chrome extension, which tracks their email activity. This data is uploaded to a server, where a model is trained for every specific user. Now on the user side, say someone I want to email has downloaded the extension. I want to find out when the best time to email them is, to get a quick response. So in addition to the Chrome extension, there will be a web app which can display information about user email patterns. So I enter their email ID into the web app, and it gives me a bunch of statistics, including when the best time to email them is and if I email them right now, how much time they will take to reply.

Spirited: This is one I started developing in a hackathon, and am now refining and improving as my class project. This is a browser/Chrome extension that guesses your mood based on the websites you're browsing and how quickly you're switching/closing/opening tabs. This uses the circumplex mood model, where you can plot the user's mood as a point on the Pleasure-Activity axes. For example, high pleasure and low activity means calm and relaxed. High activity and low pleasure means stress, which might mean the user is under a deadline. So based on the mood, we train a model which predicts the user mood at different times of the day. Based on when they open the browser, the model will make a prediction for, say, the next hour, and create a playlist from the user's library that will supplement the mood.
For example, for a calm mood, the model would play slow songs, while for an under-the-deadline situation it would play an upbeat song (assuming the user wants to be listening to music under pressure), which is proven to increase productivity.

So as you can see, the applications of ML are endless. It is an emerging field and is capturing the attention of researchers everywhere. I find it fascinating because of what all you can do with it.

No comments:

Post a Comment