Have you ever wondered how computers are able to recognize images? For example, when you see an image like this, you immediately know that it is a cat. But how does the computer know?
From your life experience, you know that a cat typically has sharp ears, round eyes, a triangular nose, and facial hair. The machine wants to figure out important information like that too! At a very high level, the way that image recognition works is that the computer will analyze the image in multiple steps. First, it tries to identify very simple aspects of the images: lines, edges, corners, blobs, etc. Using that information, we build up into slightly, just slightly more complex shapes: squares, circles, triangles. After a few iterations, it starts to recognize high-level features such as eyes, nose, mouth, etc. Finally, by putting all the pieces together, it computes a probability score for this image for each class of objects it could belong to (e.g., cat, dog, bird, etc). As we’ll see later, a layer of connected neurons is responsible for each of those steps and all those layers combine to form a convolutional neural network. A visualization looks something like:
In May – July, 2017, I kicked off a solo trip to Asia. It was a huge planning project, and I would like to share my planning process for this trip in this blog post.
Choosing a Destination
For me, I did not even know where I wanted to go. I had a ton of destinations on my to-go list, but I had no idea which ones to pick, where to start, and how to arrange the route. The only thing I knew was that, I finally graduated, I needed to do a grad trip.
First, the most important question to ask is what is your purpose of this trip. Is this for exploring new cultures & local experiences, relaxation, or food? Do you like big cities, small towns, beaches, or mountains? Do you like to walk? Do you drive? How many hours would you feel comfortable to be outside? Usually, if you end up in a big city, then you’ll likely be taking the public transitions, so be prepared to know how to read their map and subway schedules, etc. If you end up in outdoors (e.g., national park), then you’ll likely be driving around, so make sure that you get your international driver’s license if necessary. Also, there’s a big difference between travel and vacation. Generally speaking, traveling is much more energy consuming and tiring, and requires long day walkings, while vacation typically involves relaxation, sitting by the beach reading a book, doing water sports, etc. Think about these questions and do some research online, and you’ll find that your endless list of destinations will shrink quite a bit!
This is my collection of transportation cards from 6 countries and regions. Some of the memories are starting to fade away. It feels as if beautiful bubbles that appeared in another world in my dreams. I know not if many years later, I’ll still have the guts to grab a backpack and start a journey on my own. But at least I can proudly say that, when I was young, I did something that I think is really cool.
This is my last day of University life 😱. My 5 years spent in University of Waterloo in the Computer Science program has been a pretty amazing experience overall. Today, I’m just going to share and reflect on my undergrad experiences in this blog post.
As many of you may have already known, I spent two internships at Pinterest (Winter 2016 and Fall 2016), and I’m returning soon to be a full time. Pinterest has stopped recruiting for winter and fall interns, and I was very lucky that I was just in time for the last batch. The two internships I had there were the most influential ones I had during my undergrad studies, and in this blog post I would like to share what I learned there, as well as the fun I had there!
The reason why I said that my Pinterest internship experience was the most influential one is because they really trust their interns, give them big and cool projects, and encourage them to innovate. For my first internship there, I had the full responsibility to write a distributed data pipeline to generate training data for our object detection model from raw user data. Something like this:
(The bounding boxes on the left are generated by users, and the bounding boxes on the right are the predictions on object locations)
This is a brief overview of my experience in internship-hunting for an SE position in Silicon Valley during my junior year. I had two co-op terms during my junior year, and I ended up going to Google for the first one, and Pinterest for my second one. However, I’m not sharing interview questions due to NDA in this article, but I would like to share the recruitment processes and my feelings towards each company.
In the summer of 2015, I was fortunate enough to have an internship at Google. I worked under the YouTube team and wrote the YouTube Gaming’s live chat. This chat was later incorporated into YouTube as well. My office was located at San Bruno (YouTube HQ). My chat looks like this: