I'm a bit concerned that this will be too superficial and not really cover ML or the mathematical foundations well. ML and 'AI' are very multifaceted fields that require a strong foundation in mathematics. As such, the lack of information theory, signal processing, fourier analysis, abstract algebra (from a mathematical standpoint) not to mention CS courses is disheartening. This seems like a major tailored to the strong need for ML talent / skyrocketing job prospects/salaries as opposed to fundamental understanding- basically trying to attract students. For example the whole concept of Tensorflow is the combination of high dimensional tensors with the ideas of abstract algebra -- hence the name.
ML/AI imho should be broached at the Masters level for those who are interested as they have strong foundational knowledge.
There's quite a bit of misinformation in this comment.
- Tensorflow has very little use for the mathematical concept of a "Tensor", apart from the fact that it is a multidimensional array as a way of organizing data.
- Again, most of what is covered in an Information theory class is coding theory, which is not directly applicable to ML. There are a few superficial connections, however, nothing enough to justify a whole class.
- A class on Harmonic analysis, again, though a beautiful subject, does not have any significant overlap with ML, apart from a few superficial similarities to do with convolution.
- Most ML Ph.d.s don't take these classes, and go on to have very successful careers.
This comment is very typical of a kind of snobbery in ML observers that goes along the lines of "you need to understand all these deep and hard concepts before you start to touch ML". Actually, you don;t. ML is, right now, still quite a young field as far as its branching off from statistics goes. We are still building the groundwork of this skyscraper.
We welcome everyone with any background, and hey, even those with none.
Signal processing can be useful in a few ML domains (eg speech recognition), it would be useful as an elective at least. The best ML researcher I know had a leg up on the whole GPU DNN thing (way back in 2010!) because of his very strong signal processing background (he has an EE degree).
But even a degree specifically on ML isn’t going to cover all of its use cases, I guess (CV, speech recognition, ...).
I do not believe "you need to understand all these deep and hard concepts before you start to touch ML." That is a contortion of what I said.
First point: ML is not a young field- term was coined in 1959. Not to mention the ideas are much older. *
Second Point: ML/'AI' relies on a slew of various concepts in maths. Take any 1st year textbook -- i personally like Peter Norvig's. I find the breadth of the field quite astounding.
Third Point: Most PhDs are specialists-- aka, if I am getting a PhD in ML, i specialize in a concrete problem domain/subfield, so I can specialize in all subfields. For example, I work on event detection and action recognition in video models. Before being accepted into a PhD you must pass a Qual, which ensures you understand the foundations of the field. So comparing to this is a straw man argument.
If your definition of ML is taking a TF model and running it, then I believe we have diverging assumptions of what the point of a course in ML is. Imo the point of an undergraduate major is to become acquainted with the field and be able to perform reasonably well in it professionally.
The reason why so many companies (Google,FB,MS etc) are paying for this talent, is that it is not easy to learn and takes time to master. Most people who just touch ML have a surface level understanding.
I have seen people who excel at TF (applied to deep learning) without having an ML background, but even they have issues when it comes to understanding concepts in optimization, convergence, model capacity that have huge bearings on how their models perform.
The problem with this discussion is that people take field and discuss it as a one single thing.
Imagine B.S degree in medicine and people mixing up the concept of surgeon, medical physicist, ER nurse, practical nurse and hygienist as the same. It would make no sense to put people with different levels of education and specialties into same program.
My worry is that this type B.S degree misleads people. It's not preparing people to continue into ML R&D but at the same time it's not providing solid background for numeric programming or data science programmers.
It would be more beneficial to have B.S degrees with emphasis in numeric programming and data science to prepare programmers for ML, data science, scientific computing, or game development. Then have different pipeline for people who need to study more statistics, math and computer science for ML R&D.
It's like every second post on AI/ML tries to convince everyone how difficult it is and how you need 16 years and 3 PhD's to even approach the level of mastery that they have of this subject.
While may or may not be true - definitely not helpful for a student aspiring to learn this stuff.
ML and 'AI' are very multifaceted fields that require a strong foundation in mathematics.
As a mathematician with a strong foundation in all those things you mention (and more) I don't think it's really necessary. I've never found my knowledge of algebra tensors in any way useful or relevant when working with tensorflow for example. On rare occasions I might get some insight like that working with the Fourier transform of the data source might be easier than working directly with the data source, but even then all that really requires is knowing what a Fourier transform is/does and not so much about theory and analysis behind it.
A large part of ML today is very much an applied practical field. Collecting and cleaning data, selecting and normalizing features, understanding the pros and cons of the available algorithms for the problem at hand, knowing how to tune parameters, understanding the practical computational limitations of working with data that doesn't fit in RAM and so on. These are the skills most ML practitioners need.
If someone is interested and wants to contribute new knowledge to the field then they'll probably need to learn the math, but for solving most types of ML related problems that most companies have I've never needed any math taught after my first year at university. If you really understand everything taught in your first couple of linear algebra courses and in your intro statistics course you'll do fine.
> A large part of ML today is very much an applied practical field.
Agreed. Once you understand the difference between bias, variance, training, test and development sets, cross-validation, feature selection, normalization, precision, recall, F-score, Matthews correlation coefficient, regularization, imputation techniques for missing values, overfitting, etc. I.e. you know how to build and test models in a rigorous fashion, you're 90% of the way there. Knowing what these terms mean, and why you need to understand them is waaaay more important than understanding the math behind SVM. It almost becomes boring at that point, because it's the same crap over and over. Doing actual AI research, that's something completely different.
I mean just look at how very simple these Keras examples are, and these are really quite advanced and powerful deep learning models: https://github.com/keras-team/keras/tree/master/examples. You definitely do _not_ need a PhD or even a Masters, to understand, re-implement or tweak on any of these models if you understand how to rigorously test the resulting model.
I think expertise is assessed not by just using, but building or fixing things that are broken. If a toy model/example are good enough for you then sure, use your LSTM / keras implementation. But if you're faced with your model not working in your usecase -- what do you do? To answer that question and create a plan to tackle that problem requires knowledge and experience
What I'm actually getting at is that AI/ML is now at the point where if one says "You need a Master's/PhD to do this sort of stuff" then it's like saying "You need a Computer Science degree to develop and debug software". The libraries, frameworks and operationalising of ML models is mature enough at this point that it's accessible to a wider audience than just people with research-level academic backgrounds.
I'm not saying that your average web developer with no formal training can or even should be putting this kind of stuff in production. But someone with an undergraduate degree in Computer Science that's had a year or two of calculus and linear algebra and first year mathematical statistics should have no problem whatsoever in practice doing ML/AI. I mean look at this:
> I don't think it's really necessary. I've never found my knowledge of algebra tensors in any way useful or relevant when working with tensorflow for example.
If you're working towards such a specialised degree, the target shouldn't be "I can use Tensorflow", it should be "I can write a simpler version of Tensorflow".
At the time I went to university I was of the opinion that compulsory courses were a terrible idea, and nothing in the intervening 10+ years has convinced me I was wrong, so seeing a program with this many courses laid out for students already makes me think this is a bad choice.
Occasionally the input data you want to learn from might be a signal of some kind the might need cleaning/filtering/transforming before you can get the best possible result.
ML/AI imho should be broached at the Masters level for those who are interested as they have strong foundational knowledge.