Hacker News new | ask | show | jobs
by SCUSKU 1193 days ago
I just made the transition in the other direction. I did a Masters in computer vision, then worked at a startup doing computer vision and machine learning work for 2 years. I recently transitioned into app dev.

There are 2 levels to ML/AI, being a researcher and being an engineer. The researcher actually creates new models, architectures, etc. You're going to need to be talented at math, as well as pursue a PhD to have enough time to absorb some subset of the material to have a good understanding. (A masters was good but not enough time for me personally).

Then there is engineering which is leveraging the creations of the very smart PhDs. At least in my experience, the shallow level is basically fine-tuning models to your use case, which does require an understanding of some things like loss functions, train/validation/test sets, but it's not too complicated.

Everyone that asks me how to learn machine learning, I advise them to read Hands on Machine Learning by Aurélien Géron cover to cover. When I first started my masters I did this and it helped immensely because it was easy to understand, was broad, and was interested usually from an application perspective.

From there, I would suggest learning PyTorch (starting w/ Keras is ok too, but don't stay there too long, and avoid Tensorflow), as it's much easier to develop with. I always learn best with a personal project, so maybe see if there is a real life "problem" you'd be interested in solving, like classifying different pets from each other or something like that.

It'll take a while to build up your skills, so going to school is of course an option, but with dedication I think you can also accomplish this solely with side projects and learning on your own. Best of luck!

1 comments

Thank you for your post. Two questions for you:

1) Did your Masters cover non-deep-learning vision (classical vision?) in sufficient detail? There is a ton of math in there. Going from being a shallow user of OpenCV to a deep one seems a big jump. I'm not sure a Masters focused solely on classical vision would get someone there (let alone one covering other things like ML, DL, etc.).

2) Did you end up training large models from scratch or is it all just fine-tuning? I am trying to do the former and I realize getting things to scale for from-scratch training is a whole other topic. I suspect getting things ready for inference would be similar.

Thx!

1) I didn't want to be someone who only learned machine learning/deep learning solely because it was the sexy thing at the time (still is). I took a class that covered classical computer vision, as well as signal processing classes. So while I wouldn't say I'm an expert, I'm familiar with traditional approaches (enough to be dangerous). I would agree a Masters is not enough to become a deep expert. Unfortunately, I do think you just have to do a PhD to give yourself enough time to explore and absorb all of the complexities of this space.

2) I did a thesis for my Masters program, using generative adversarial networks (GANs) for image compression. It was by no means novel, or a breakthrough, but what I did learn (and this is so obvious it's painful to write this) is that you should pretty much never train from scratch and that you should always use transfer learning. As far as what I did at my last company, it was basically taking state of the art models from the MMDetection python package, fine tuning them to our use case, and then deploying them. So I wasn't really doing anything from scratch.

Happy to chat more about your specific use case if you're interested! You can email me at zbellay at gmail dot com.