Open aayushsinha0706 opened 2 years ago
I think such a course would best fit into an Advanced AI section. We can see the relevant section of the CS2013 here: https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf#page=124
Neural networks are elective topics, and so most appropriate for the advanced section of the curriculum. I'll also note that currently the single Machine Learning course is in Advanced Applications, while there are AI (or IS, Intelligent System) topics that are Tier 2 in CS2013. That would suggest that some resource should be in the core offering.
I think such a course would best fit into an Advanced AI section.
The idea of creating an Advanced AI section is an interesting one. If I understand correctly, learners would choose that path right after finishing Core, so it would become an additional alternative to Advanced Programming/Advanced Theory/Advanced Systems?
I'd be fine with
There is Machine Learning in Core Applications, no?
You are correct, I was mistaken when I said the Machine Learning course was in Advanced Applications. There is in fact no Advanced Applications section and the ML course is in Core Applications.
some semantic distinction between AI and ML?
Yes. As this article points out, Deep Learning is a subfield of Machine Learning, which is a subfield of AI. An example of a field in AI that is not Machine Learning would be minimax, a version of adversarial search that can be used to create game playing agents (e.g. an agent that would compete in checkers). An example of a subfield of Machine Learning that is not Deep Learning would be decision trees.
learners would choose that path right after finishing Core, so it would become an additional alternative to Advanced Programming/Advanced Theory/Advanced Systems?
Exactly. I agree with you, that section should have a Deep Learning course as well as a robotics course. A good NLP (natural language processing) and Computer Vision course would be appropriate. All the top hits from the chart you shared.
For a CV offering, I think this looks the most appropriate: https://www.coursera.org/learn/introduction-computer-vision-watson-opencv
Touches on deep learning, but not every method is deep learning.
Here's another option. My concern is that this doesn't look to get into actual CV methods, focusing instead on background knowledge.
The CV subreddit maintains a list of resources in their wiki.
Exactly. I agree with you, that section should have a Deep Learning course as well as a robotics course. A good NLP (natural language processing) and Computer Vision course would be appropriate. All the top hits from the chart you shared.
Few courses that I would love to recommend for Advanced AI
Stanford CS224n NLP with Deep Learning
Natural language processing (NLP) or computational linguistics is one of the most important technologies of the information age. Applications of NLP are everywhere because people communicate almost everything in language: web search, advertising, emails, customer service, language translation, virtual agents, medical reports, politics, etc. In the last decade, deep learning (or neural network) approaches have obtained very high performance across many different NLP tasks, using single end-to-end neural models that do not require traditional, task-specific feature engineering.
In this course, students will gain a thorough introduction to cutting-edge research in Deep Learning for NLP. Through lectures, assignments and a final project, students will learn the necessary skills to design, implement, and understand their own neural network models, using the Pytorch framework.
Deepmind X UCL Reinforcement Learning
Reinforcement learning is an area of machine learning concerned with how intelligent agents ought to take actions in an environment in order to maximize the notion of cumulative reward. Reinforcement learning is one of three basic machine learning paradigms, alongside supervised learning and unsupervised learning. - Wikipedia
CS 2013 also recommends reinforcement learning for learning of advanced machine learning
• Reinforcement learning o Exploration vs. exploitation trade-off o Markov decision processes o Value and policy iteration
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Introduction to Deep Learning | 12 weeks | 8-12 hours/week | Familiarity with Python ,Linear algebra and calculus |
Natural Language Processing with Deep Learning (video lectures) (course website and assignments) | 10 weeks | 8-12 hours/week | Proficiency in Python (NumPy and PyTorch) , Calculus, Linear Algebra,Probability & Statistics and Machine Learning |
Introduction to Computer Vision and Image Processing | 6 weeks | 4-5 hours/week | Proficiency in Python |
Reinforcement Learning | 12 weeks | 6-8 hours/week | Proficiency in Python (Must be comfortable converting algorithms and pseudocode into Python), Calculus, Linear Algebra, Probability & Statistics and Machine Learning |
Modern Robotics (specialization) | 13 weeks | 5-10 hours/week | Freshman Physics, linear algebra, calculus, linear order differential equations |
EDIT 1: Alternative for robotics specialisation
Mobile Robotics : Methods and Algorithms
About Mobile Robotics Course:
Learn the math and algorithms underneath state-of-the-art robotic systems. The majority of these techniques are heavily based on geometric and probabilistic reasoning---an area with extensive applicability in modern robotics. An intended side-effect of the course is to strengthen your expertise in this area. Class goals :
- Implement, and experiment with these algorithms.
- Be able to understand research papers in the field of robotics.
- Try out some ideas/extensions of your own. Note: the focus of the course is on math and algorithms. We will not study the mechanical or electrical design of robots
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Mobile Robotics : Methods and Algorithms | 12 weeks | 5-10 hours/week | Familiarity with one programming language among (MATLAB, Python, Julia, and C++), Linear Algebra, Probability and Statistics and Calculus. |
OR
Artificial Intelligence for Robotics by Georgia Tech on Udacity
About the course:
Learn how to program all the major systems of a robotic car from the leader of Google and Stanford's autonomous driving teams. This class will teach you basic methods in Artificial Intelligence, including: probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics. Extensive programming examples and assignments will apply these methods in the context of building self-driving cars.
This course is offered as part of the Georgia Tech Masters in Computer Science. The updated course includes a final project, where you must chase a runaway robot that is trying to escape!
I took Artificial Intelligence for Robotics on Udacity years ago. 2012 maybe? Great course! It's one of those unmaintained free Udacity courses. It still uses Python 2. I tried a few assignments and the grader seems to be working, so it should be doable.
In considering an Advanced AI track, we should look to introduce learners at the undergraduate level to the breadth of the topic. The classic textbook on AI is Artificial Intelligence: A Modern Approach. This text is broken into 5 parts:
Solving Problems by Searching Search in Complex Environments Adversarial Search and Games Constraint Satisfaction Problems
Logical Agents First-Order Logic Inference in First-Order Logic Knowledge Representation Automated Planning
Quantifying Uncertainty Probabilistic Reasoning Probabilistic Reasoning over Time Probabilistic Programming Making Simple Decisions Making Complex Decisions Multiagent Decision Making ...
Learning from Examples Learning Probabilistic Models Deep Learning Reinforcement Learning
Natural Language Processing Deep Learning for Natural Language Processing Computer Vision Robotics
The courses listed so far concentrate on two of these areas: Learning and Perception/Action.
I ran across this trio of courses on optimization: Basic Modeling for Discrete Optimization Advanced Modeling for Discrete Optimization Solving Algorithms for Discrete Optimization
Interesting possibilities
Three courses that can be discussed for Advanced Artificial Intelligence
Artificial Intelligence: Search Methods for Problem Solving Artificial Intelligence: Knowledge Representation and Reasoning
Both the courses are offered by Indian Institute of Technology Madras and covers Problem-solving and Knowledge, reasoning, and planning in depth
the third one is from MITx Computational Probability and Inference
the above course is the only course that discuss probabilistic inference in detail.
I am doing Java programming from University of Helsinki and I got amazed how good their course got organized. So I explored their courses and found that they also have AI course. So probably you can try to check if it meets with our needs. Please find below the link. Elements of AI
I happen to enounter a really good course on AI research. Its Harvard CS197 AI research experiences and Harvard has made its lecture notes free. I propose to add this in extra-readings or extra-courses. https://www.cs197.seas.harvard.edu
At the time this RFC was opened it was just about including deep learning course of MIT in extras. It quickly became the RFC for advanced AI. There are numerous high quality resources on AI by universities but unfortunately we cannot include them all. Although I hope some of them can be included in extras.
Now what areas CS2013 recommend for an advanced AI
IS/Advanced Search IS/Advanced Representation and Reasoning IS/Reasoning Under Uncertainty IS/Agents IS/Natural Language Processing IS/Advanced Machine Learning IS/Robotics
Now for advanced search and advanced knowledge representation and reasoning. I again recommend following courses Artificial Intelligence: Search Methods for Problem Solving Artificial Intelligence: Knowledge Representation and Reasoning
while I didn't got any resources for Agents and Reasoning under uncertainty.
For NLP the default recommendation will be Stanford CS224n NLP with Deep Learning
I won't recommend any standalone machine learning course again since many topics for advanced ML is covered in Andrew ng specialisation.
But we can offer in depth study of ml algorithms like Deep learning and Reinforcement learning:
Deepmind X UCL Reinforcement Learning MIT 6.S191 Introduction to Deep Learning
Now with the robotics I am more in favour of U Michigan Mobile robotics or EECS568/ROB 530 Since Georgia tech ones is old and still uses python 2.
https://github.com/UMich-CURLY-teaching/UMich-ROB-530-public
Now being a human I might have my own biases but anyone is free to see if the resources are good enough for advanced ai or if there are better ones out there.
Some courses/readings for honourable mentions:
Assaid there are numerous high quality resources but we cannot include them all and hence many such resources will be good for extras.
What are the conditions for adding a field in advanced topics as opposed to a specialization? Me personally I was planning on doing an AI specialization (https://www.coursera.org/specializations/machine-learning-introduction?#courses) once I was done with advanced section.
What are the conditions for adding a field in advanced topics as opposed to a specialization? Me personally I was planning on doing an AI specialization (https://www.coursera.org/specializations/machine-learning-introduction?#courses) once I was done with advanced section.
Advanced topics are more like graduate level class or courses that are mentioned to taken as an elective in CS2013. Also for Andrew Ng ML Class above we are recommending it to be in core. Check this RFC #1118
Problem: MIT has its course on deep learning MIT 6.S191 that is updated every year and is a high quality resource attented by many students around the globe.
Duration: 26 April 2022
Background: MIT 6.S191 Intro to deep learning is a high qualtiy resource by Alexander Amini sponsored by Google and many other tech giants. The course doesnt require much pre-requisite knowledge. MIT 6.S191 states that "We are expecting very elementary knowledge of linear algebra and calculus. How to multiply matrices, take derivatives and apply the chain rule. Familiarity in Python is a big plus as well. The course will be beginner friendly since we have many registered students from outside of computer science."
Proposal: Not quite sure wether to add this course on curriculum as Advanced Applications or in extra/courses. I will leave it to the OSSU CS team to decide,
Add MIT 6.S191 Introduction to Deep Learning as Advanced Applications or in extra/courses.