Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Addition of Advanced AI #1013

Open
aayushsinha0706 opened this issue Mar 26, 2022 · 16 comments
Open

RFC: Addition of Advanced AI #1013

aayushsinha0706 opened this issue Mar 26, 2022 · 16 comments

Comments

@aayushsinha0706
Copy link
Member

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.

@waciumawanjohi
Copy link
Member

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.

@spamegg1
Copy link
Contributor

(Click to expand) @waciumawanjohi without detracting too much from the current issue...

I'll also note that currently the single Machine Learning course is in Advanced Applications...

There is Machine Learning in Core Applications, no? Is that considered a different topic by the guidelines? Excuse me if I'm ignorant.

Neural networks are elective topics, and so most appropriate for the advanced section of the curriculum.

The ML course in Core Apps touches upon Neural Networks for two Lectures, with one Programming Assignment for implementing it. Hah! The world cares not for our nice neat distinctions.

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.

Ah, I guess there is some semantic distinction between AI and ML? Looking over the relevant section (IS) in the guidelines, everything is listed: AI, Robotics, ML. Only Basic ML is under Tier 2, with the other two under electives. I suppose Deep Learning would fall under "Advanced ML" although it's not mentioned explicitly.

Screenshot from 2022-05-15 23-05-56

To complicate things even further, Deep Learning has sections on self-driving, which is considered (probabilistic) Robotics... and both DL and ML courses have sections on Computer Vision (another elective). What a nice big semantic mess. I don't think we can disentangle it and neatly separate things.

However IS/Fundamental Issues is not covered in Core. Only a very small part of IS/Basic Search Strategies is covered in Core Theory. (IS/Basic Knowledge Representation and Reasoning is covered by Math for CS.) So I see your point there.

Let me attempt to formulate an opinion. I think Core is fine as it is. The little bits that fall through the cracks will have to be covered in Advanced, until some better alternative comes along.

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

  • adding MIT Deep L to Advanced Apps, or
  • offering a choice "pick one of..." between it and Robotics, or
  • creating a new Advanced AI section with both courses under it. (This is probably the best one.)

@waciumawanjohi
Copy link
Member

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.

@waciumawanjohi
Copy link
Member

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.

@waciumawanjohi
Copy link
Member

@aayushsinha0706
Copy link
Member Author

aayushsinha0706 commented May 16, 2022

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

Advanced AI

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!

@aayushsinha0706 aayushsinha0706 changed the title RFC: Addition of MIT 6.S191 RFC: Addition of Advanced AI May 16, 2022
@spamegg1
Copy link
Contributor

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.

@waciumawanjohi
Copy link
Member

waciumawanjohi commented Jul 4, 2022

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:

Problem-solving    

Solving Problems by Searching    
Search in Complex Environments    
Adversarial Search and Games    
Constraint Satisfaction Problems

Knowledge, reasoning, and planning    

Logical Agents    
First-Order Logic    
Inference in First-Order Logic    
Knowledge Representation    
Automated Planning

Uncertain knowledge and reasoning    

Quantifying Uncertainty    
Probabilistic Reasoning    
Probabilistic Reasoning over Time    
Probabilistic Programming    
Making Simple Decisions    
Making Complex Decisions    
Multiagent Decision Making ...

Machine Learning    

Learning from Examples    
Learning Probabilistic Models    
Deep Learning    
Reinforcement Learning

Communicating, perceiving, and acting    

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.

@waciumawanjohi
Copy link
Member

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

@aayushsinha0706
Copy link
Member Author

aayushsinha0706 commented Jul 6, 2022

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.

@nicol4us
Copy link

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

@aayushsinha0706
Copy link
Member Author

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

@aayushsinha0706
Copy link
Member Author

aayushsinha0706 commented Sep 26, 2022

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:

  1. Neural Networks Zero to Hero by Andrew Karpathy
  2. Harvard CS197 AI Research experiences
  3. fast.ai computational linear algebra

Assaid there are numerous high quality resources but we cannot include them all and hence many such resources will be good for extras.

@Choubs01
Copy link
Contributor

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.

@aayushsinha0706
Copy link
Member Author

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

@Dan-Kot
Copy link
Contributor

Dan-Kot commented Dec 21, 2024

The advanced AI sequence posted in this outline looks good

Advanced AI

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants