B.S. In Artificial Intelligence – Curriculum
cs.cmu.edu
cs.cmu.edu
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.
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.
But even a degree specifically on ML isn’t going to cover all of its use cases, I guess (CV, speech recognition, ...).
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.
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...
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'))Sure, but you don't necessarily need knowledge about tensor fields and Fourier analysis.
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.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".
I disagree. How can we even begin to design or improve a system that emulates intelligence if we do not even know what it means to be intelligent?
That CogSci special requirement seems to be more reasonable one aimed to guide thinking about past AI and philosophical struggles than a generic philosophy class for an undergraduate student.
Of course, there does seem to be room for a few philosophy electives here should the student enjoy it.
Here is an example of Cognitive Science's preferred way of thinking about AI: https://www.theatlantic.com/technology/archive/2012/11/noam-...
That said, a huge omission seems to be some form of "Is this a data/ML problem?" class. Call it product management, product development or something else, but I constantly see clients asking for ML solutions when they don't even have data that would inform an ML solution. Often it's a people or process problem, or poorly defined requirements.
So I think to be effective in ML you need to understand how successful products that USE ML are built and when ML/DNNs are appropriate.
Such is its proper place, unless and until CS becomes a profession.
In this situation, ethics is management's job, and value-creation and loss-avoidance (with appropriate documentation to list-out during pay-review) are our jobs. Sum ergo mihi prosum.
It’s funny. Several times in my life I’ve seen the resumes of older people (70/80s) and they’ll have some generic degree that doesn’t exist today. I wonder if 50 years from now kids will look at our CS degrees like that.
seems like someone would be limiting their options for little gains.
The Bachelor part was a 90% standard Computer science bachelor. This had a far heavier load of especially mathematics, a bit more CS and about the same Science and Engineering parts as the CMU diagram, and an 'Economy' class.
The AI was mostly reserved to the Masters level. We also had one 'ethics' class in the masters, and some, but far, far less emphasis on Humanities and Arts (only the Cognitive Science class)
Joshua Rust, Eric Schwitzgebel. Ethicists’ and Nonethicists’ Responsiveness to Student E-mails: Relationships Among Expressed Normative Attitude, Self-Described Behavior, and Empirically Observed Behavior. Metaphilosophy, 2013; 44 (3): 350 DOI:
https://talkingethics.com/2013/11/25/why-arent-ethicists-mor...
• U.S.-based ethicist professors are more likely than other philosophy professors (60% vs. 45%) to say it’s morally wrong to eat the meat of mammals, yet the ethicists are no less likely than the others to eat mammal meat. • Ethics professors are also no more likely than other groups of professors to donate money to charity, donate blood to hospitals or the Red Cross, pay professional conference fees on the honor system, or respond regularly to student e-mails, though they tend to believe that these behaviors are more ethical. • And in one of the most quoted findings of Schwitzgebel and Rust, ethicists seem more likely to steal library books. They found that relatively obscure ethics books of the sort likely to be borrowed mainly by professors and advanced students are about 50% more likely to be missing, presumably stolen, than non-ethics philosophy books.
AI is a generic terms covering a whole spectrum of things, from 'model based philosophy' to 'advanced engineering'.
You have practitioners coming to it because they want to experimentally probe computational models to gain insights into complex systems in biology/sociology/psychology etc.
Then you have a whole different batch that flocks to it because they want to engineer better practical algorithms for heuristic search, adaptive control systems, high dimensional optimization etc
In most universities it sprang from and is embedded in the Computer Science department, which in turn was often birthed in the science&mathematics faculty (I have heard but could not verify that this was not always the case and that in some places CS was part of the theology faculty because they happened to have the first electronic computer).
Personally, being of the former type (AI for understanding systems), I'd say it fits more in the science department than computer science ever did, but the latter form (AI as advanced algorithms in CS) would certainly fit better in the engineering faculty together with the bulk of computer 'science'.
Really, I'd love to have a look at a good bu..s..t in AI reading list :)