|
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) 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!