ML/AI imho should be broached at the Masters level for those who are interested as they have strong foundational knowledge.
ML/AI imho should be broached at the Masters level for those who are interested as they have strong foundational knowledge.
- 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.
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.
https://en.wikipedia.org/wiki/Machine_learning *https://www.amazon.com/Artificial-Intelligence-Modern-Approa...
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.
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.
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.
Research: https://www.researchgate.net/publication/13853244_Long_Short...
Practice:
model = Sequential()
model.add(Embedding(max_features, 128, input_length=maxlen))
model.add(Bidirectional(LSTM(64)))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))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:
from sklearn.model_selection import KFold
# Define 10 fold cross-validation
cv = KFold(n_splits=10)
from sklearn.model_selection import GridSearchCV
svm_model = GridSearchCV(svc_pipeline, param_grid=svc_parameters, scoring='f1_micro', cv=cv)
svm_model.fit(X_train, y_train)
A few lines and you're doing hyperparameter optimization on an SVM model with cross-validation. What a time to be alive.Sure, but you don't necessarily need knowledge about tensor fields and Fourier analysis.
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".