I’m currently sitting in the airport in Philadelphia, having just taken the 10:30 red-eye from Seattle. I had the entire row to myself, which enabled me to sleep rather decently, all things considered! (even better than I’m sleeping at 95 Lippincott in all honesty!)
My onsites were earlier that day in Redmond, Washington (Microsoft Main Campus). It was quite a process interviewing with them!
Here’s a breakdown of the entire day:
[Read More]
Learning to Program
This week, we covered a wide variety of approaches to neural methods to program synthesis and program induction.
The first batch of presentations: Romila, Eric and Henri Romila: we have synthesis; the most naive way is indeed one way that CAN be used to form programs: get the input space, the program space, the action space, and then try all possible combinations. Her paper talked about some sort of Monte Carlo tree search based method; alpha zero but applied to program synthesis, and she was critical as they don’t update the policy network every time.
[Read More]
Reinforcement Learning
Today marks my first foray into reinforcement learning territory!
Although I have studied the topic extensively academically (well, kind of) I have not had a chance to actually sit down and play around with some implementations. So without further ado, here goes!
Observation #1: past classifications affect future performance.
A regular ol’ CNN classifier is one-shot: it makes the prediction and then that’s it. Same with a RNN, sequential though it may be.
[Read More]
Lyft_final_interview
Wow! That was quite an intense and exhausting 3 hours!
I just finished my (virtual) final round interviews for Lyft.
I had 3 back-to-back interviews; the first one on coding, the second on experience and team fit (with manager) and then the third on ML domain knowledge. What did not help was the huge time difference: I started my interviews at 5:30 PM, and it went all the way to 8:30 PM Toronto time.
[Read More]
Hugo vs Jekyll
Seems like Jekyll wins! https://github.blog/2016-05-10-better-discoverability-for-github-pages-sites/
Cross Aligned Autoencoders
How does Shen’s paper work? Well it tries to fit a cross-aligned autoencoder. This is simply an autoencoder that is also guided adversarially by a discriminator. In terms of the basics/nitty gritty technical details, we have the following:
We have a sequential autoencoder. This is “simply” a recurrent autoencoder: i.e. an autoencoder where the encoder accepts a sequence of states, and the decoder also generates a sequence of states. This sequential autoencoder is aligned by an adversary.
[Read More]
Ordered Dict
An OrderedDict is a dictionary that remembers insertion order. Sweet and simple! when comparing OrderedDicts, Python will check the order of the elements, as the name suggests!
from collections import OrderedDict
od = OrderedDict()
od["a"] = 99
od["b"] = 100
od.pop() #pops the most recently entered entry!
...
It also has some minor methods relating to this order:
od.move_to_end('b', last=True) # moves key b to end of ordering
od.move_to_end('b', last=False) # moves key b to beginning of ordering
Data Science and Machine Learning Review
As I prepare for my final Machine Learning interview with Lyft, I look back on my Data Science career and projects. I also want to give a brief overview of the subjects that are useful for machine learning and data science.
Data science type positions: 1. Basic statistics 2. Basic probability 3. Linear Regression 4. Normal equation
It is difficult to draw the line precisely between machine learning and data science.
[Read More]
Deque
A deque
(pronounced “deck”) is a doubly-ended queue data structure in Python. It is just like your regular array, but it has faster append/pop operations!
from collections import deque
d = deque()
d.appendleft(2)
d.popleft()
d.pop()
d.append()
It can also support rotation, and other nice features!
Interview Tips
As a follow-up to my recent interview-recap on G-Research, I’ve come to some realizations on some general tips for doing well on technical interviews:
Don’t procrastinate! Scheduling a coding challenge might feel like scheduling a dentist appointment: why are you willingly scheduling pain for yourself?! But like scheduling a dentist appointment, it is a necessary fact of life. Schedule it soon as you have a relatively free day (I know, I know everyone is always busy!
[Read More]