Meeting machine learning in CS3216 assignments
Disclaim: I am not a machine learning expert and technologies mentioned below may not be correct. Feel free to correct me :P
After taking my internship in Google this summer, I kind of became a fan of machine learning.
In our first week in Google, we took an orientation talk about how Google works, and the Googler who gave the talk keep mentioning “machine Learning”. That’s the first time I learnt about machine learning from Google, and starting from that, I realized machine learning is everywhere. Just in the company, I have intern friend whose project is to implement a machine learning algorithm so Google could hire less labors in India to do those repetitive manual works. I heard about how machine learning is used in Google Map to automate the process of creating street view. I heard about how machine learning is used in Google Photos to make sure it recognize your friends’ face. I even learnt that Google is experimenting with data center controlling by machine learning.
(Does this sound familiar?)
So I think it’s time for me to take my steps and learn some machine learning. I don’t really want to learn it as a module in NUS because I think machine learning is quite useful but I don’t really want to screw up my CAP :P (seriously sometimes learning it yourself as an interest is better than letting your test results disappoint you) That’s why I am self-learning in on Coursera now. Coursera has a very famous machine learning course taught by Stanford’s famous Prof. Andrew Ng. So far I found it is a very good course. Let’s see how my learning goes.
Let’s come back to CS3216.
In our first assignment, we are creating a web app that allow you to view all you and your friends’ past checkin locations on a map. We thought this is a very interesting ideas because visualize your checkins can easily see many many places you have been on the Earth, and you could easily compare your travels with your friends by looking at how many points you have on the map.
We also want to add some interesting statistic information such as what’s the most interesting places you and your friends have been to, or what’s the most visited places among your friends.
Then machine learning suddenly took place. when I was discussing with my teammates about what information should we put on the map, I suddenly thought about machine learning: since we have all your past travel history and destination, we can actually come up with a simple model to find the similarity between you and your friends, and recommend travel buddy from your friends. In additional, if we want to be more aggressive, we could even design your travel model and recommend next place to travel for you (and then found a start up and sell it to Grab or Uber).
I brought my crazy idea to the team, and we agree it’s an overkill for the assignment. But it is really fun and surprising to realize how useful machine learning is and how you could even use it in the assignment.
Looking at other teams’ idea, and I felt they could all apply machine learning! NUS CCA can use machine learning to recommend students to CCA groups or vice versa (given that you know what kind of CCA the students participant). Give For Free can recommend free items for their users (by knowing what kind of item you are interested, recording browsing history maybe?) Although it may not be so realistic, but I think the power of machine learning can help the web app be more closer to the users and fit their needs.
How about our assignment 2?
Well, for me, assignment 2 is all about machine learning and deep learning! Our application is Prisma, which can transform your photo into master pieace. Prisma uses a technology called Convolutional Neural Network (CNN) which is initially used for pattern recognition. By reading the paper, it could be summarize that in CNN, the style and content could be isolated, which makes it possible to use the content of a photo, and apply the style from a master piece and create a new picture. That’s the core technology that makes Prisma “Prisma”. Theoretically, this technology could also be applied on video, voices, VR, special effects… Imagine you could see the world that is in “The Starry Night” through VR headset! How cool is that?
That’s the reason why Prisma is so popular and unique after its first release. It is the first app that packs up the deep learning in your pocket, and it is a milestone showing the successful commercial usage of machine learning and deep learning running in your mobile phone. It now even supports offline filters on iPhone, which means in the future, neural network may be easily run on your phone just as your Facebook or Whatsapp.
I think this is just a beginning. In the future, we are expected to see more similar apps coming up and surprise us. Just like how Pokemon Go makes Augmented reality (AR) a new trend in gaming industry.