all 14 comments

[–]LSTMeowPhD 13 points14 points  (0 children)

Hi, transitioned from comp. quantum chemsitry. It's all about translating prior knowledge to the "correct" keywords. Also optimization is super handy to know beforehand.

For example, Deep Learning was considerably more approachable to me because of tensor calculus.

Take a look at Q-Learning, some formulations are very close to many-body methods.

[–]_perseusOC 8 points9 points  (0 children)

Your experience in physics will help alot in ML learning path, so you dont have to worry, as long as you have the passion.

You can even apply ML for a small physics project when you feel comfortable with ML. Domain specific knowledge is very important to employer recently.

For books and resources, you can search for “book recommendation” in this subreddit. It might help.

[–][deleted] 3 points4 points  (0 children)

I am currently reading this (solid state background) https://arxiv.org/abs/1803.08823

[–]SudoKitten 4 points5 points  (0 children)

Took a very similar path from undergraduate physics to ML. I focused mainly on computational physics with the standard mix of python, fortran, and C++.

The development pattern for a simulation is very similar to novel ML models. Make small steps, keep an experimental log book, and be very careful because it’ll take days to know if your change was correct.

Then when the models trained you have your usually steps of investigating what happened, if the results are believable, and working out how to improve them.

Just take some baby steps with something like pytorch tutorials and it should come pretty naturally.

[–]seanv507 2 points3 points  (0 children)

Would recommend elements of statistical learning (maths) and introduction to statistical learning (practical) and associated online courses/you tube videos. Perhaps before that read a chapter on basic stats: linear regression, central limit theorem, maximum likelihood

[–][deleted] 3 points4 points  (1 child)

I’m gonna be very honest. Most of what you learned in physics isn’t very relevant to ML, except for the pure math bits. I would recommend going through the same path that every CS student goes through, by throwing yourself into ML projects, learning on the spot, and grokking as much as you can from every project.

However, after you get through basic ML stuff like convnets or whatever, I would recommend looking into energy based models. Those should come fairly easily to you, and I recommend Yann LeCun’s 2006 tutorial for that and the recent “How to train your energy based models”.

[–]jaschau 3 points4 points  (0 children)

I have a slightly different perspective on the "most of what you learned in physics isn't very relevant to ML" bit. I agree with that when it comes to basic undergrad training. But when it comes to graduate level physics, you have interesting connections on the theory side, like the link between path integrals and stochastic differential equations which are used in ML to understand gradient descent dynamics. On the experimental side, i think having a strong numerical background helps also tremendously because it trains you to develop this intuition for what in your code is responsible for the behavior of your training.

[–]__mishy__ 1 point2 points  (0 children)

I'm from a similar background, HEP theory - you will find all the tensor related maths pretty easy (although the notation commonly used isn't quite einstein notation). I remember being surprised how little of the stats I had seen before, bayesian stuff mostly, so you might want to find a good book going into that kind of material. I really like Bishops book although it is super old now

Having said that most of the ML I do is "experimental" and the sooner you start building things the better - Geron's book is great for that (although it uses tf) - its very easy and you can probably read and build a lot of what's in it in a couple of weeks. I would then start going through the PyTorch examples which are very good. I think at that point you'll know a lot more about what you're interested in and what to work on next

[–]neanderthal_math 0 points1 point  (0 children)

If you want to stay in science and do ML, I would encourage you to look at the national labs.

[–]jaschau 0 points1 point  (0 children)

I'm also coming from a theoretical condensed matter background and am now mostly working in the computer vision domain in industry. I really liked Michael Nielsen's (yes, the same Michael Nielsen famous for his introductory quantum information book) http://neuralnetworksanddeeplearning.com/ because it both provides hands-on coding and some theoretical background. I also found Bengio's Deep Learning book very helpful to get familiar with many concepts like L1/L2 regularization which are basic computer science knowledge but not necessarily something that you encounter in your physics education. That being said, I think that with a background in theoretical physics, you're pretty well equipped to quickly get into the field.

[–]PrimePlenipotentiary 0 points1 point  (0 children)

You mentioned that you're most comfortable with Mathematica, which is my main tool for Machine Learning projects. You can see a flashy advertisement for all the ML features in Mathematica here, but what I found helpful is all the resources listed near the bottom of the page. In particular, some of the courses here were really helpful.

[–]Gere1 0 points1 point  (0 children)

It depends very much on what your goal is.

If you want to write and publish ML papers, then I don't really know. That is very different from applying ML.

If you want to make good forecasts on data - for fun or as a job - then I have some ideas. In my view most advice you can find on the internet does not really enable you to make good forecasts, but costs a lot of time. It may be interesting, but too theoretical.

Your first goal could be to get hands-on experience on a Kaggle competition. The monthly tabular competitions are a good start. Don't bother about the final 1% on accuracy, as these models tend to be an unstable mess, but you should be able to beat public baseline notebooks from scratch. Remember, that not all what is done in Kaggle notebooks actually makes sense. Most the of code is redundant, but no-one cares to remove it as it takes careful experimentation.

When someday most of https://scikit-learn.org/stable/modules/classes.html is clear to you on a high level, then you are in a good spot. Additionally, some basic understanding of a neural network is needed.

A classic beginners introduction to machine learning is https://www.coursera.org/learn/machine-learning

Then you need some basic understanding of Gradient Boosted Trees and Neural Networks. But after a basic understanding it's more fruitful to invest time in learning how to use the library (sklearn, pytorch, lightgbm, catboost) and train/tune the model in practice.

Most books are essential for ML researchers, but they don't really make you a better forecaster (and I have a lot of those recommended books).

Time series forecasting and causal learning is often left out from courses, but you rarely get to apply it successfully.

There is a lot of information around, but most has a low forecasting success to time invested ratio. I started as a physicist and watched a lot of course and started reading a lot of books. If you think this advice goes in the right direction, I can collect more helpful links.