I really do not like this move. AI and Machine Learning require graduate-level mathematical and computational skills. I don't think it's productive to pretend that we can train someone to be even remotely useful in these fields in four years of an undergraduate education. It sounds like an attempt to get around the fundamentals of csci to "skip to the interesting bits," which will produce graduates with a cursory knowledge of computers, programming, math, and data science, which is honestly worse than no knowledge at all.
I'm not fundamentally opposed, but I think this is akin to creating a "Condensed Matter and Nanophysics" undergraduate degree alongside "Physics."
Changing the name of a factory will not change the output. The only solution to creating more and better AI research is to invest in better fundamentals in computer science and mathematics, then create pipelines for specialization. Slow and low.
This is a lie that I hear a lot from AI/ML experts. To me it reeks of gatekeeping. Yes the foundations of the field and many of the breakthroughs require this knowledge, but one can be a very effective practicioner of AI/ML techniques with a few years of undergraduate level instruction. And given how many industries are kicking the tires of AI/ML, we're going to need hordes of practicioners.
I don't see why you would need a graduate degree to create a new PL that compiles to machine code. In fact, many successful PL designers lack PhDs.
Most work in CS feeds more on experience than education. A PhD is simply a way of getting deep experience (and advice) in areas that a job probably wouldn't allow for. Since ML is hot, you can get hands on experience with it these days, its not like 10 years ago when the only people looking at deep learning were pretty much researchers, PhDs, and PhD students.
That is also taught to a useful level in undergraduate coursework. You can do useful ML using only first year undergraduate statistics, linear algebra, and multivariate calculus.
I don’t think it is actually gatekeeping because no one is saying that you CAN’T do AI/ML with this degree just that there is going to be a tradeoff in any curriculum focusing on a subset of CS.
A consequence of this degree is that it makes CS degrees worth less. Because AI/ML is by definition a subset of CS, this degree implies that you have CS + more. It doesn’t fairly show that there is a tradeoff in a specialized curriculum (less exposure to other areas of CS).
I would say that if you are at CMU or another school offering this degree, you would be a fool not to do it. Even if you are not interested in AI/ML, it will be more hirable than CS because the name implies it is “better” than a CS degree. It’s a similar situation with the new “cybersecurity” degrees being offered. Ideally the accreditation group would bring some sense into this but so far they have greenlit both degrees.
That's exactly the opposite of what happens to most graduates with specialized degrees.
They end up having to explain their degrees, which is generally not a good thing. It happens all the time with engineering. In the job market a degree in mechanical engineering is in general worth more than one in robotics.
You also run the risk of graduating into another AI winter, or just deciding you hate AI, and then you really have to try hard to explain that your degree is really just a CS degree.
Imagine graduating now with an undergrad in big data--that sounded like a good idea 5 years ago.
I think you are confusing between specialization, and a degree in sub-branch. A degree in CS is always valued more than a degree in say IT.
On the other hand, a degree in CS with specialization in Networking, would be more valued than a plain degree in CS.
I'd say if you want to specialize, do a master's. A degree such as above would put the holder in really bad position if that field goes into ice age. In case that happens to master's degree, you always have your bachelor's degree to fall back to.
I took an open CMU grad course on the basics of AI from a year ago and generally I can understand papers in journals at an intuitive level and hack around with some existing libraries no problem. I won't be solving research problems or hired by Tesla or anything but writing amateur trade bots, and feeding predictive bids inside an app I wrote is possible with just an AI crash course. Rest of CMUs standard undergrad is pretty solid I imagine these will be good advanced undergrad courses.
If you can teach a kid frequentist (regular) statistics, then you can certainly teach them things like Bayesian statistics.
Add things like decision trees (which you need to build something like a chatbot). In fact, a friend of mine from my freshman year (way back before everyone had computers in college) wrote a chatbot. I had never seen anything like it, and he let it loose on IRC. Was pretty cool back when things like rn and ftp were all there were on the net.
Regression isn't that hard. Heck, most advanced Calculus and further maths are way harder.
Neural networks aren't even that complicated, although tuning and understanding the output sure is. But that comes with time.
Markov Chains are basically advanced flowcharting. If they can teach PERT analysis to Business majors, then Markov should be easily understood.
Sure, there are some hardcore things, but the foundation is based on stuff many smart people should be able to learn in undergrad. Twenty years from now, when we are surrounded by "AI"-everything, we'll wish more schools did this. And I guarantee you'll wish your kids learned this in high school.
Yes, I am serious about that last comment. I have an 8 year old son, and I'm already working on teaching him Markov Chains using sports. Yes, it's super simple, but easy enough to teach him consequences of actions, without getting into nested probabilities.
You are describing those models as they are being applied (and as many introduction present them) not how they can be trained. To understand whether those models converge, how to calculate the solution to even a basic linear regression, you need graduate math: matrix algebra, differential calculus, topology.
To me, your statement is like saying an airline mechanic needs to have a pilot's license because he needs to know how the rudder affects the flight.
There are three different roles that I think you are conflating: Designing, Building (and maintaining), and using.
Each has a different skillset. But to think that you need to determine the convergence of models makes no sense to me. Why can't an undergrad build a simple classifier?
And in finance, CAPM uses regression. Every single finance undergrad in the country learns it. Are you implying that they can't because they don't know how the model will converge with something else?
Seriously, it really frustrates me when people look down on undergrads and say "Oh, they can't do it". Baloney. I've met tons of really smart, focused undergrads. And some pretty f-ing stupid grad students (at a PhD level to boot!).
Two decades ago, you needed some pretty heavy CS to build a web page. Today, my mom can do it. With your line of thinking, that wouldn't be possible.
I like the metaphor, but I think it would be more appropriate to flip the roles: it’s more akin to asking the person using the models (or the airplane in your simile, the pilot) to understand how their work (i.e. have basic mechanical understanding). As it happens, that’s precisely what we ask pilot: they need to have enough mechanical engineering talent to inspect the plane in detail before take of as well as understand, diagnose and fix a problem in the air.
To come back to modelling: I see daily people with a cursory understanding of models misusing their tools and not noticing blatant problems. Just today:
- someone using random forest to predict a quantity (which you can do, it’s often nicknamed “random tree regression”) so the first thing their did was to turn quantities to predict to as many categorical variables;
- someone else, on the same problem didn’t see why having a massively higher mean square error on the out-of-bag sample compared to the test sample was suspicious.
I’m not saying that five years of university will solve that, but I’m noticed that taking the time to dig into the model, vs. assuming it’s like a car -- you only need to turn the key and go with it -- is strongly correlated with making those mistakes.
I don’t see how building a web page is any different now than it was in 1998, if anything it seems like everyone has made it harder to build correct pages.
If you stick to the basics of static html content + styling it's actually a lot easier because there are far fewer browser 'quirks' to work around nowadays (you rarely need browser specific code), and things like flexbox are a lot more intuitive than hacking around with floats.
I'm a front-end dev (amonst other things), so I'm pretty comfortable with React, Angular, etc. And therr are definitely cases where they make sense. But simple static or server side rendered sites are much simpler now.
To be honest most of those are covered at a good-enough level in the sophomore and junior years of a math undergrad. You don't need measures, differential geometry, or even epsilon-delta analysis to do ML which pins the calculus requirements pretty much to whatever proper multivariable calc class one takes in their sophomore year
Edit: if my school wasn't so obsessed with teaching CS majors diffeq (probably just as a gpa filter...), they could already fit in the requisite math for a solid ML understanding
I would argue that you need measure and differential geometry to understand Support Vector Machine and the kernel trick properly.
I think my contention is less things like being formally introduced to ‘epsilon-delta analysis’ (not sure what that is) but more that people trying to cut corners by skipping a semester of differential calculus tend to also skip a big part of the explanation around how models really work. They tend to not grasp what is convergence, get very confused in higher dimensions, and assume ‘harmless’ short-hands like: ”you should aways normalise your data, in some cases, you need to, but why actually remember why, just do it”; “as long as it’s not overfitting, the model is fine” -- without really much recourse when things are not acting as expected.
You need differential calculus in R^n, but there's no need for the full force of differential geometry. Also, I don't think that measure gains much in terms of understanding, but it certainly is needed to do some proofs the proper way.
I agree that cutting corners is something I would be super skeptical of in this degree. It should really be an offshoot of a mathematics program, not a CS program with the bare minimal mathematics included. It's end goal is probably PR, money grab, and pumping out students that are really attractive for doing analytics grunt work.
Yeah, well those are not graduate courses, maybe the exception of topology (for a non math major). Those are 1st and 2nd year undergrad engineering/CS courses.
I had courses in each of those topics as part of my undergraduate math degree. There’s no reason an AI degree couldn’t include those as standard curriculum for undergraduates.
This is completely untrue - machine learning is largely undergraduate mathematics - in fact a lot of the linear algebra is commonly taught in high school.
Definitely agree it's potentially narrow, but there's absolutely nothing wrong with that.
One of things that we should do as science progresses is open it up to more generalists as we learn its rules and how to teach it more effectively. Quantum Mechanics used to require expert knowledge to learn and use, but today, it is a standard part of undergraduate physics education, and all advanced knowledge in any field will eventually.
One of the signs of how developed a subfield of a science is is how easily it can be taught to non-experts.
I agree. Many of the statistical concepts can be extended from advanced undergraduate stats too. I can see how the high salaries paid in these jobs would lead to some serious gatekeeping though.
My concern is that these courses will likely be taught without any deference to the ethics involved in the work done, and I think that will play an increasingly important role in years to come.
Most undergrad engineering worth its salt will require an ethics course and humanities classes broaching the topic.
The main issue is that a lot of people do not take away the intent, or can fully answer questions correctly about the intent but not actually care. You can lead a horse to water but you can't make it drink.
Ha I actually think the complete opposite will be true - Here in New Zealand I got a degree in neuroscience without doing any papers outside of core science, whereas in the US I would probably have to do humanities based courses etc (which I think is a fairly good thing) - and it's not unlikely that these will come to include topics in ethics.
Also ethical review boards for other areas of science are very well established, and it's not unrealistic to imagine that extending towards machine learning as well.
> AI and Machine Learning require graduate-level mathematical and computational skills
Yeah, not really. A lot of day-to-day work in ML requires rudimentary math, at most. I know PhDs who quickly get discouraged with ML because they're suddenly spending 95% of their time doing the grunt work. It would be a boon if we could hire non-PhDs who are competent in the fundamentals of signals, algorithms, statistics, and experiment design.
If you're aspiring to work in ML, what major do you choose now? Statistics? EE? CS? Math?
None of these are ideal. If you're doing CS, you're probably too busy with compilers or DB courses to get a proper education in signal processing, information theory, stochastic processes, etc. If you're in EE, you're too busy soldering circuits and to learn about data structures, algorithms, or software engineering courses. There's a lot of room for improvement here.
Even at the graduate level, most of our EE interns and new hires can't solve FizzBuzz, while the CS majors can't properly design a scientific experiment to save their lives.
So essentially what we need is an "academic CSEE" degree, where you replace courses on industrial topics like application design and databases / circuits and electromagnetics with these theory-based classes from both departments.
I'd also suggest adding some systems neuroscience courses in there too.
I think you could get away with swapping out upper level algorithms and systems courses and swapping in statistics and ML. I've used my OS class 0 times in my career. The class I've used the most was the second level statistics class I took for my econ minor.
definitely, and your algorithms class was probably industry-driven and an exposure to what you should be doing to write code in the workforce, not teaching you to come up with novel algorithms.
I agree that AI/ML is kind of narrow for BS degree.
I think there is room for specialist field called numerical programming or scientific programming. Someone who knows basics of numerical programming, math, statistics, data science, computational modeling and simulation, DSP etc. and can apply the skills to multiple different fields, including machine learning.
The skill level needed to work independently usually requires at least masters level, but there could be BS level degree as well. Today the problem is that you have research PhD's doing basic grunt work because you can't just hire a coder. All they know is web stacks, android and SQL.
The narrowness of a niche is wholly dependent on how much demand there is for the thing in the grander scheme of things. Programming used to be incredibly narrow, and I would bet ya there were people complaining along similar lines back when engineering meant just mathematics and physics. Clearly the AI and ML rift has been growing, partially evidenced by this program; enough for it to no longer be considered "too narrow for a BS".
> I'm not fundamentally opposed, but I think this is akin to creating a "Condensed Matter and Nanophysics" undergraduate degree alongside "Physics."
Isn't this what Material Science is? A truncated version of physics for those with a greater interest in application than theory. Arguably most engineering derives from hard science that is converted into a form that is more easily applied.
Absolutely false, I can't believe this comment is up voted. Undergrad Linear Algebra & Statistics is definitely enough for ML. In fact, they taught introductory ML at my old high school in AP CS, years ago.
Maybe for an intro course, but a degree usually means you are ready to work in that field. I’m not sure what ‘field’ that is but I assume they are looking at it for AI research.
They did a good job on this syllabus. Something had to give, and it is math and engineering depth. No 300 or 400 level courses, like networking or OS. Skipping some close to the metal stuff is probably fine, but I am surprised not to see at least some distributed computing or systems engineering skills. I'd be concerned that a grad could work well within an ideal data env but would get blocked by not being able to engineer processing pipelines.
Absolutely. It just requires an environment where other folks are building, maintaining, and adapting data infrastructure to new needs -- e.g. a large company with a decent data engineering investment.
Also, in those specialized roles, a statistian with an advanced degree is likely to get more leverage. So I think it's smart for undergrads to work on being "unblockable" In a variety of environments so they can build experience - which is the spirit of the standard CS undergrad there.
There's a big difference between being able to calculate the gradient of an activation function you just invented and apply it to a backpropagation algorithm or analyze it for convergence, and simply understanding what a gradient is and how it is used when training the model.
I find that the understanding and ability to visualize the mathematical concepts is the important part, for everyday practitioners. It is not necessary to be able to derive a gradient in order to understand the differences between sigmoid and hyperbolic tangent. Being able to do the calculation on paper is not a prerequisite for understanding the process.
The rigorous mathematics come into play if you wish to advance the field as a whole, but is not necessary to successfully design and train efficient models.
No expert here, but I lived through times when calculus was deemed beyond the capabilities of high school students. This was clearly incorrect.
As I said, no expert in AI & ML, but I don't see anything that differentiates them from other domains earlier (and wrongly) regarded as beyond undergraduate work.
Would you consider an undergraduate degree in Physics the same as a graduate degree in physics?
No, I would not expect a person with an undergrad degree in physics to have nearly the same capabilities and understanding of a PhD holder in general.
Similarly, it would be silly to assume the alums from this program are going to be considered to be of the same caliber. Instead, they will fill roles in which having a richer math, cs, and stats background matters a bit less, as is the case for a large fraction of data scientist jobs. And yes, they would be remotely useful with just 4 decent cs classes, 2 stats classes, and 2 math classes.
Isn’t most AI work in research though? I think the problem most are having with this is we generally consider AI to be more prestigious than something like data science (which seems like it would be a better name for a degree in its own right).
AI is a broad field. Much of it is applied these days.
Even setting a very high bar for what constitutes "AI", I would concede that Google Assistant, Siri, Alexa, and Cortana are AI systems. How many jobs are there supporting those products today? How many will there be 5 years from now when these kids graduate?
But there are many other AI products out there, and moreso, machine learning is now widespread as a supporting tool in very many places. The data science field of today/tomorrow is ML and AI, and we definitely will need more practitioners.
I think I agree with you that the degree might be more aptly named "data science", but that's a relatively minor detail in the scheme of things.
I don't think I would claim most AI work is research, but regardless, I think there is a still quite a lot of work that is quite applied nowadays. For example, there are a huge number of special-use-case neural networks you can think of to make very specific decisions based on image data. Or, nearly every online retailer would love someone to be able to come up with a good recommendation engine for products on their site. While a PhD might build a slightly-better one, I'm fairly confident that an undergrad trained properly (no pun intended) could pull off something usable.
The major sounds similar in intent to the Data Science major we introduced into our Bachelor of Computer Science at UNE (in Australia) last year. These days there is something of a branch in computing routes -- to express it in a very muddy way, designing and building the systems themselves (Software Development) versus applying machine learning algorithms, AI, and statistics across the data systems produce (Data Science). And of course there's other branches and specialisms too, but for our particular market those are what we have at the moment.
The level is still clear -- it's an undergraduate degree, and they are coming out with a good undergraduate's knowledge of the area. So that's entirely appropriate. There's no need to shy away from stating what they've been focusing on (offering a named major). And we do find they are useful and in demand.
CMU's CS program is very rigorous and tough. A lot of CMU's undergraduate courses are actually graduate courses in other universities' CS program e.g. CMU's 15-213 course (sophomore level) is a graduate requirement in Stanford's MSCS course as well as CMU's MSCS curriculum. Looking at CMU's curriculum for this degree, it seems that they did a good job at not "skipping to the interesting bits."
Most CS programs have a lot of filler from the Math department and various other places. Your third semester of Calculus for example. So, I think their is plenty of room for 6-8+ AI focused classes which would get you reasonably far. Especially if it's a comprehensive major that covers both Major and Minor requirements.
Going from 1 variable to 2 or 20 never seemed like a big jump to me. I can see taking 1-2 weeks to go over it quickly, but you don't need a lot of problem set's to get it.
It's like learning a new computer language, it takes about as long to do that on it's own as to have a class in something else that happens to use your that new language.
Not a big jump, if you conceptually stick to the 'area under curve' definition.
Analytically computing surface/volume integrals, yes, that is a big jump. But I don't understand why students need to memorize N algorithms and M substitution rules for that.
Okay. I am used to this being called a path integral, and the phrase line integral being reserved for the integral of a vector field over a curve. This does not, as far as I know, admit a straightforward definition as an area under a curve.
The same might have been said of a "Computer Science" degree when it split out of mathematics departments. I don't know, the jury's out, but there is a case for teaching what is an expanding area of knowledge with different emphasis than what came before.
An undergraduate degree obviously will be more cursory than a graduate program but even then it might help produce a crop of better thinkers for graduate programs with already solid background. There's nothing inherently preventing an 18-year-old from learning this kind of stuff.
I did not study computer science, but on my many years of self-studying I've realised that Mathematics, especially Discrete Mathematics and theoretical Computer Science essentially pursue the same objective using very similar tools.
I'm currently reading Turing's famous paper "Can Machines Think?" and the way Turing explains computers, state machines and Laplace's idea of a deterministic universe made me think about the current state of CS. It seems to me that CS faculties change their curricula to teach students more and more about practical programming and less about its history and theoretical foundations. I think that is not right.
Many of my friends are studying CS as their major, but it seems to me that they don't grasp the deeper meaning of the field. For them CS is about programming, about building apps. For me computer science is not about programming and computers, it is about creating an abstract world of computation that is independent from us.
Maybe it would've been a good decision to keep theoretical computer science inside mathematics departments and offer a computer engineering degree for practical applications such as programming.
Computer Science courses omit essential electrical engineering and transistor physics.
The issue is whether a field can be understood at a higher level, atop blackboxes. All abstractions leak, but some are good enough.
DL NNs are no where near being a science yet - it's empirical let's try this architecture. But... you could have a trade-school technician degree in present techniques that can be applied. Like an electrician.
You could also have a degree aimed at preparing you for graduate AI - which would include a lot of mathematics.
I majored in AI before the current fad. It’s basically a concentration and depends on the University. It goes a little deeper on the AI side using electives.
Of course it was. Accredited by the British Computer Society and the UK system. It is a Computer Science degree with an AI concentration. AI is a big enough subject for that. Why would it not be?
In my opinion, seeing that nobody actually understands the fundamentals of why the techniques used in ML/AI seem to work, it matters less that a researcher is not armed in the practice of complex mathematics.
I suppose there is a use for precisely describing things that we do not actually understand, but I don't think it is a pre-requisite, at this early infant stage in ML/AI.
>even remotely useful in these fields in four years
...Condensed Matter
I just looked up the Cambridge physics tripos and you do condensed matter in years 3 and 4. You can learn a lot in 4 years. Admittedly it's a specialisation in a general science degree.
Density functional theory, for example, is taught at undergraduate level as part of both chemistry and physics triposes. Probably materials science too, and it certainly used to be an option within earth sciences (as part of the mineral physics path).
There are plenty of engineering undergraduate programs. What's the difference here? Civil, mechanical, computer, electrical engineering are all very math-heavy. Sometimes an engineering degree can take 5 years instead of 4. So be it.
You definitely do not need csci fundamentals to learn AI/ML. It’s more of a math discipline. Knowing what big endian means or the fundamentals of programming languages aren’t really needed when learning AI.
While you are right, that deep understanding of machine learning require graduate level mathematics, however I see the trend where big companies (Google, Facebook, Microsoft) are trying to democratize AI and machine learning. Soon you will have people using machine learning tools and algorithms without understanding the underlying math.
Given the nature of machine learning, even if you understand the mathematics behind it, you cannot "reason" with a trained-model. I think now academia is catching up in this democratization effort, by producing engineers that can use those machine learning tools (even if they cannot design such tools/frameworks)
Both are well-known for their expertise, and followed by a large amount of people in the deep learning community.
You can def become an great machine learning engineer who used deep learning technique, without going to any university.
---
Ian Goodfellow:
"One of my biggest heroes is Geoffrey Hinton. His PhD was in experimental psychology ( . Biographical Sketch ).
In mechanical engineering, I think you learn quite a lot of the mathematical tools that are used in machine learning, so you won’t be starting from scratch.
In general, we often find that revolutions in one field happen when someone from another field arrives with fresh ideas that developed elsewhere."
How can someone with almost no technical knowledge learn ML?
Ian Goodfellow::"It’s important to master some of the basics, like linear algebra, probability, and python programming.
But you don’t need to know all of linear algebra (I don’t think I’ve ever used a QR decomposition outside the classroom), all of probability (we don’t usually do much involving combinatorics / re-ordering of sequences in deep learning), or all of python programming (a lot of the more obscure language features are actually forbidden at some companies).
I’d say maybe start by learning enough linear algebra, probability, and python programming that you can implement logistic regression yourself, using only python and numpy..."
As a college sophomore, how can I prepare myself for artificial intelligence?
Ian Goodfellow:
"Take classes on linear algebra and probability
Take classes on how to write fast code that is friendly to the hardware you’re working with.
Take classes on how to write good high performance, realtime multithreaded code.
Read Deep Learning.
Pick a simple machine learning project that interests you.
Work through this project, and when you have questions about the material you read about machine learning, trying to answer your own questions by running experiments in your project codebase.
If your university has them, take classes on machine learning, computer vision, natural language processing, robotics, etc."
At CMU plenty of undergraduates took grad machine learning (10-601 or 701), high achievers sometimes in sophomore year. CMUs ML grad program is a top grad program and be sure not to move the goal posts to PhDs defined as contributing new knowledge
I'm not fundamentally opposed, but I think this is akin to creating a "Condensed Matter and Nanophysics" undergraduate degree alongside "Physics."
Changing the name of a factory will not change the output. The only solution to creating more and better AI research is to invest in better fundamentals in computer science and mathematics, then create pipelines for specialization. Slow and low.