Artificial Intelligence Engineer Roadmap
Overview
This is resources for going from software engineer/non-software engineer to profressional in AI engineer.
About Me
I'm a Thai Software Engineer who is really passionate to become entrepreneur, investor, and AI engineer. Was found Humaan.ai to bringing the AI to everyone to do incredible ways.
I graduated with a master's degree in Business Analytics and Data Sciences, where majoring in Artificial Intelligence and Machine Learning at National Institute of Development Administration (NIDA), Thailand.
Connect with me at Linkedin · Twitter · Facebook · GitHub
Table of Contents
- What Exactly Does an AI Engineer Do
- Part I: Artificial Intelligence
- Chapter 1: Intro to Artificial Intelligence
- What is Artificial Intelligence?
- The History of Artificial Intelligence
- Chapter 1: Intro to Artificial Intelligence
- Part II: Problem-solving
- Part III: Knowledge, reasoning, and planning
- Part IV: Uncertain knowledge and reasoning
- Part V: Learning
- Part VI: Communicating, perceiving, and acting
- Appendix A: Rockstars of the AI Research and AI Engineering World
- Appendix B: Resources
- Appendix C: Online Courses
1. Mathematics
- Linear Algebra
- Scalars
- Vectors
- Matrices
- Tensors
- Probability and Information Theory
- Numerical Computation
- Hidden Markov Models
2. Statistics
3. Computer Science
Python Fundamentals
- Python Basics
- Flow Control
- Data Structures
- Functions
- Files and the Operating System
Python for Data Analysis (Pandas, NumPy)
Bonus
Exploratiory Data Analysis and Data Visualization
Online courses
Computer Science and Data Science
- Introduction to Computer Science and Programming in Python: Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
- Introduction to Computational Thinking and Data Science: The continuation of "Introduction to Computer Science and Programming in Python" and is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.
- Introduction to Algorithms: This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
- Mathematics for Computer Science: An interactive introduction to discrete mathematics oriented toward computer science and engineering.
Mathematics
Linear Algebra
Topics include Vector spaces, Matrix vector operations, Rank of a matrix, Norms, Eigenvectors and values and a bit of Matrix calculus too.
- Linear algebra explained in four pages (PDF)
- Linear Algebra Review and Reference (PDF)
- Linear Algebra: This is a basic subject on matrix theory and linear algebra. Emphasis is given to topics that will be useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, similarity, and positive definite matrices.
- Matrix Algebra for Engineers: This course is all about matrices, and concisely covers the linear algebra that an engineer should know.
Probability & Statistics
Topics include Random variables, expectation, Probability distributions and so on.
- CME 106 - Introduction to Probability and Statistics for Engineers
- Review of Probability Theory (PDF)
- Introduction to Probability and Statistics: This course provides an elementary introduction to probability and statistics with applications. Topics include: basic combinatorics, random variables, probability distributions, Bayesian inference, hypothesis testing, confidence intervals, and linear regression.
- Statistics 110: Probability: Statistics 110 (Probability) has been taught at Harvard University by Joe Blitzstein (Professor of the Practice in Statistics, Harvard University) each year since 2006.
Calculus
Topics include Limits, Derivatives, Implicit differentiation, Finding extrema, MVT, Newton's method and Integral calc stuff. The advanced materials are about Matrix calculus - Gradients, Directional derivatives etc.
Optimization
- Convex Optimization: his course concentrates on recognizing and solving convex optimization problems that arise in applications. The syllabus includes: convex sets, functions, and optimization problems; basics of convex analysis; least-squares, linear and quadratic programs, semidefinite programming, minimax, extremal volume, and other problems; optimality conditions, duality theory, theorems of alternative, and applications; interior-point methods; applications to signal processing, statistics and machine learning, control and mechanical engineering, digital and analog circuit design, and finance.
Mathematics for Machine Learning
- Mathematics of Machine Learning : Broadly speaking, Machine Learning refers to the automated identification of patterns in data. As such it has been a fertile ground for new statistical and algorithmic developments. The purpose of this course is to provide a mathematically rigorous introduction to these developments with emphasis on methods and their analysis.
Aritificial Intelligence
- Intro to AI : Lecture and course materials for UC Berkeley CS188 Intro to AI
- Artificial Intelligence - MIT : This course introduces students to the basic knowledge representation, problem solving, and learning methods of artificial intelligence.
- Techniques in Artificial Intelligence (SMA 5504) : Topics covered include: representation and inference in first-order logic, modern deterministic and decision-theoretic planning techniques, basic supervised learning methods, and Bayesian network inference and learning.
Natural Language Processing
- Natural Language Processing — Stanford University by Dan Jurafsky
- Natural Language Processing Specialization : Break into the NLP space. Master cutting-edge NLP techniques through four hands-on courses!
- Stanford's Natural Language Processing with Deep Learning (CS224n) : Natural language processing (NLP) is a crucial part of artificial intelligence (AI), modeling how people share information. In recent years, deep learning approaches have obtained very high performance on many NLP tasks. In this course, students gain a thorough introduction to cutting-edge neural networks for NLP.
- CS324 - Large Language Models : The fundamentals about the modeling, theory, ethics, and systems aspects of large language models
- CS25: Transformers United V2 : Learn how transformers work and deepp drive into the different kinds of transformers and how they're applied in deifferent fields.
- Neural Networks: Zero to Hero : A course by Andrej Karpathy on building neural networks, from scratch, in code.
Machine Learning
- Machine Learning by Andrew Ng: This course provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI). The course will also draw from numerous case studies and applications, so that you'll also learn how to apply learning algorithms to building smart robots (perception, control), text understanding (web search, anti-spam), computer vision, medical informatics, audio, database mining, and other areas.
- Machine Learning - MIT: an introductory course on machine learning which gives an overview of many concepts, techniques, and algorithms in machine learning, beginning with topics such as classification and linear regression and ending up with more recent topics such as boosting, support vector machines, hidden Markov models, and Bayesian networks.
- Machine Learning for Healthcare: This course introduces students to machine learning in healthcare, including the nature of clinical data and the use of machine learning for risk stratification, disease progression modeling, precision medicine, diagnosis, subtype discovery, and improving clinical workflows.
- CS 329S: Machine Learning Systems Design: This course aims to provide an iterative framework for designing real-world machine learning systems. The goal of this framework is to build a system that is deployable, reliable, and scalable.
- Applied Machine Learning (Cornell Tech CS 5787, Fall 2020): Lecture videos and materials from the Applied Machine Learning course at Cornell Tech, taught in Fall 2020.
- Machine Learning with Kernel Methods, Spring 2021 | Julien Mairal and Jean-Philippe Vert Google Brian & INRIA: The goal of this course is to present the mathematical foundations of kernel methods, as well as the main approaches that have emerged so far in kernel design.
- Machine Learning with Graphs Complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling social, technological, and biological systems. This course focuses on the computational, algorithmic, and modeling challenges specific to the analysis of massive graphs. By means of studying the underlying graph structure and its features, students are introduced to machine learning techniques and data mining tools apt to reveal insights on a variety of networks.
Deep Learning
- Practical Deep Learning for Coders: Deep Learning for Coders with fastai and PyTorch: AI Applications Without a PhD - the book and the course
- Introduction to Deep Learning: This is MIT's introductory course on deep learning methods with applications to computer vision, natural language processing, biology, and more! Students will gain foundational knowledge of deep learning algorithms and get practical experience in building neural networks in TensorFlow.
- Deep Learning Specialization by Andrew Ng: Become a Deep Learning experts. Master Deep Learning and Break into AI
- Deep Reinforcement Learning: Lectures for UC Berkeley CS 285: Deep Reinforcement Learning.
- Deep Learning for Computer Vision: Lecture for Michigan University EECS 498-007/598-005 Deep Learning for Computer Vision
- Introduction to Deep Learning-Spring 2021, Carnegie Mellon University : This course we will learn about the basics of deep neural networks, and their applications to various AI tasks.
- Full Stack Deep Learning-Spring 2021, UC Berkeley: Full Stack Deep Learning helps you bridge the gap from training machine learning models to deploying AI systems in the real world.
- NYU’s Deep Learning: This course concerns the latest techniques in deep learning and representation learning, focusing on supervised and unsupervised deep learning, embedding methods, metric learning, convolutional and recurrent nets, with applications to computer vision, natural language understanding, and speech recognition.
- The Deep Learning Lecture Series 2020 (DeepMind x UCL): In this series, DeepMind Research Scientists and Research Engineers deliver 12 lectures on a range of topics in Deep Learning.
- The Deep Learning Lecture Series 2021 (DeepMind x UCL) - The Deep Learning Lecture Series is a collaboration between DeepMind and the UCL Centre for Artificial Intelligence.
- Deep Learning in the Life Sciences-Spring 2021, MIT: This courses introduces foundations and state-of-the-art machine learning challenges in genomics and the life sciences more broadly
- NYU Deep Learning Spring 2021 (NYU-DLSP21), NYU Center For Data Science: This course includes history, backpropagation, and gradient descent, parameter sharing: recurrent and convolutional networks, latent variable (LV) energy based models (EBMs)
- Deep Learning Systems—Algorithms and Implementation : An understanding and overview of the “full stack” of deep learning systems, ranging from the high-level modeling design of modern deep learning systems, to the basic implementation of automatic differentiation tools, to the underlying device-level implementation of efficient algorithms.
Pytorch
- Intro to Machine Learning with PyTorch - Learn foundational machine learning techniques -- from data manipulation to unsupervised and supervised algorithms.
- Deep Learning with PyTorch - DataCamp - You will use PyTorch to first learn about the basic concepts of neural networks before building your first neural network to predict digits from an MNIST dataset. You you will learn about convolutional neural networks and how to use CNN to build more powerful models that give more accurate results.
- Deep Neural Networks with PyTorch - Coursera - The course will teach you how to develop deep learning models using Pytorch. The course will start with Pytorch's tensors and Automatic differentiation package. Then each section will cover different models starting off with fundamentals such as Linear Regression, and logistic/softmax regression. Followed by Feedforward deep neural networks, the role of different activation functions, normalization and dropout layers. Then Convolutional Neural Networks and Transfer learning will be covered. Finally, several other Deep learning methods will be covered.
- PyTorch: Deep Learning and Artificial Intelligence– Udemy - the best beginner-level course and starts with machine learning basics and then moves to the deep learning concepts such as Deep Neural Networks, Convolutional Neural Networks (image processing), and Recurrent Neural Networks.
- PyTorch for Deep Learning with Python– Udemy - Learn how to create state of the art neural networks for deep learning with Facebook's PyTorch Deep Learning library!
- PyTorch Basics for Machine Learning-edX - This course is the first part in a two part course and will teach you the fundamentals of PyTorch. In this course you will implement classic machine learning algorithms, focusing on how PyTorch creates and optimizes models. You will quickly iterate through different aspects of PyTorch giving you strong foundations and all the prerequisites you need before you build deep learning models.
- Deep Learning with Python and PyTorch - This course is the second part of a two-part course on how to develop Deep Learning models using Pytorch.
- Intro to Deep Learning with PyTorch - In this course, you’ll learn the basics of deep learning, and build your own deep neural networks using PyTorch. You’ll get practical experience with PyTorch through coding exercises and projects implementing state-of-the-art AI applications such as style transfer and text generation.
- PyTorch Tutorials– pytorch.org - The official PyTorch website that provides a variety of PyTorch tutorials to clear the PyTorch basics such as Writing Custom Datasets, Transfer Learning for Computer Vision Tutorial, and Deep Learning, etc.
Computer Vision
- Convolutional Neural Networks: In the fourth course of the Deep Learning Specialization, you will understand how computer vision has evolved and become familiar with its exciting applications such as autonomous driving, face recognition, reading radiology images, and more.
- Become a Computer Vision Expert: Master the computer vision skills behind advances in robotics and automation. Write programs to analyze images, implement feature extraction, and recognize objects using deep learning models.
- Self-Driving Cars Specialization– University of Toronto: Launch Your Career in Self-Driving Cars. Be at the forefront of the autonomous driving industry.
- Introduction to Computer Vision with Watson and OpenCV– IBM: This course you will utilize Python, Pillow, and OpenCV for basic image processing and perform image classification and object detection.
- AWS Computer Vision: Getting Started with GluonCV– AWS: This course provides an overview of Computer Vision (CV), Machine Learning (ML) with Amazon Web Services (AWS), and how to build and train a CV model using the Apache MXNet and GluonCV toolkit. The course discusses artificial neural networks and other deep learning concepts, then walks through how to combine neural network building blocks into complete computer vision models and train them efficiently.
- Python for Computer Vision with OpenCV and Deep Learning– Udemy: Learn the latest techniques in computer vision with Python , OpenCV , and Deep Learning
- Deep Learning and Computer Vision A-Z™: OpenCV, SSD & GANs– Udemy: Become a Wizard of all the latest Computer Vision tools that exist out there. Detect anything and create powerful apps.
- Image Understanding with TensorFlow on GCP– Google Cloud Training: This is the third course of the Advanced Machine Learning on GCP specialization. In this course, We will take a look at different strategies for building an image classifier using convolutional neural networks. We'll improve the model's accuracy with augmentation, feature extraction, and fine-tuning hyperparameters while trying to avoid overfitting our data. We will also look at practical issues that arise, for example, when you don’t have enough data and how to incorporate the latest research findings into our models.
- 3D Computer Vision - National University of Singapore - 2021: an introductory course on 3D Computer Vision which was recorded for online learning at NUS due to COVID-19.
- CV3DST - Computer Vision 3: Detection, Segmentation and Tracking
- ADL4CV - Advanced Deep Learning for Computer Vision
Software Engineering & Data Engineering
- CS839 Modern Data Management and Machine Learning Systems Modern Data Analytics and Machine learning (ML) are enjoying rapidly increasing adoption. However, designing and implementing the systems that support modern data analytics and machine learning in real-world deployments presents a significant challenge, in large part due to the radically different development and deployment profile of modern data analysis methods, and the range of practical concerns that come with broader adoption.
Open Source Learning Projects
Computer Vision
- Motion Heatmap Using OpenCV in Python: This sample application is useful to see movement patterns over time. For example, it could be used to see the usage of entrances to a factory floor over time, or patterns of shoppers in a store.
- Few-Shot vid2vid by NVIDIA: Pytorch implementation for few-shot photorealistic video-to-video translation. It can be used for generating human motions from poses, synthesizing people talking from edge maps, or turning semantic label maps into photo-realistic videos. The core of video-to-video translation is image-to-image translation. Some of our work in that space can be found in pix2pixHD and SPADE.
- Gaussian YOLOv3: An Accurate and Fast Object Detector for Autonomous Driving : Gaussian YOLOv3: An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving (ICCV, 2019)
- OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
Natural Language Processing
- T5: Text-To-Text Transfer Transformer : Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
Machine Learning
- Homemade Machine Learning: Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained
Books
Mathematics
- Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares by Stephen Boyd and Lieven Vandenberghe
- Convex Optimization by Boyd and Vandenberghe
- Mathematics for Computer Science (eBook)
- Mathematics for Machine Learning
- Machine Learning: A Probabilistic Perspective (2012)
- Probabilistic Machine Learning: An Introduction (2022)
- Probabilistic Machine Learning: Advanced Topics (2023)
- The Mathematical Engineering of Deep Learning
Machine Learning
- Machine Learning Refined: Foundations, Algorithms, and Applications
- Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
Artificial Intelligence
Natural Language Processing
Deep Learning
- Deep Learning (Adaptive Computation and Machine Learning series)
- Deep Learning Illustrated
- Deep Learning for Coders with Fastai and PyTorch
- Dive into Deep Learning [PDF][Free]
AI & Machine Learning Cheat Sheet
- Machine Learning Algorithms Python and R Codes Cheatsheet by Analytics Vidhya
- The mostly complete chart of Neural Networks, explained
Software, Framework & Tools for AI research
- PyTorch: An open source machine learning framework that accelerates the path from research prototyping to production deployment.
- CARLA: An Open Urban Driving Simulator: An open-source simulator for autonomous driving research.
- Open3D: An open-source library that supports rapid development of software that deals with 3D data.
- VISTA: A data-driven simulation engine for autonomous driving perception and control. The VISTA API provides an interface for transforming real-world datasets into virtual environments with dynamic agents, sensor suites, and task objectives.
Certifications
Other Resources
- AI Expert Roadmap: Roadmap to becoming an Artificial Intelligence Expert in 2021
BONUS: Stanford Artificial Intelligence Graduate Certificate Course Planning
The courses below are required and/or recommended for completing the Artificial Intelligence Graduate Certificate Program
Preparing
Mathematics
- Mathematics for Machine Learning series from Imperial College London [Coursera]
- Stanford CS229 Linear Algebra Review and Reference [eBook]
- Single Variable Calculus [MIT OpenCourseWare]
- Multivariable Calculus [MIT OpenCourseWare]
- MIT Linear Algebra course [MIT OpenCourseWare]
- Mathematics of Machine Learning [MIT OpenCourseWare]
- The Matrix calculus for Deep Learning [PDF]
Optimization
- Machine Learning Refined: Foundations, Algorithms, and Applications (Book)
- Linear Algebra and Optimization for Machine Learning: A Textbook (Book)
- Convex Optimization (Book)
- Numerical Optimization (Book)
Statistics and Probability
- Stanford CS229 Review of Probability Theory [PDF]
- Stanford CS229 Statistics and Probability Refresher
Python
- Introduction to Computer Science and Programming Using Python [edX]
- https://www.coursera.org/specializations/data-science-python
- Stanford CS231n Python/Numpy Tutorial
Courses (Fee may apply)
- CS221: Artificial Intelligence: Principles and Techniques
- AA228: Decision Making Under Uncertainty
- AA274A: Principles of Robot Autonomy I
- CS157: Computational Logic
- CS223A: Introduction to Robotics
- CS224N: Natural Language Processing w/ Deep Learning
- CS224U: Natural Language Understanding
- CS228: Probabilistic Graphical Models: Principles and Techniques
- CS229: Machine Learning
- CS230: Deep Learning
- CS231A: Computer Vision: From 3D Reconstruction to Recognition
- CS231N: Convolutional Neural Networks for Visual Recognition
- CS234: Reinforcement Learning
- CS236: Deep Generative Models
- CS237B: Principles of Robot Autonomy II
- CS330: Deep Multi-task and Meta Learning
- STATS214: Machine Learning Theory
Artificial Intelligence Research Labs
- Alan Turing institute
- J.P. Morgan A.I. research lab
- Oxford Machine Learning research Group
- LIVIA(Laboratory of Imaging, Vision and Artificial Intelligence)
- Microsoft research lab-AI
- Berkeley AI Research Lab
- MIT computer science and artificial intelligence laboratory
- Stanford AI Lab
- Stanford HAL
- MIT HAN Lab
International Conferences in Artificial Intelligence, Machine Learning, Computer Vision, Data Mining, Natural Language Processing and Robotics
- CVPR: IEEE Conference on Computer Vision and Pattern Recognition
- NeurIPS: Neural Information Processing Systems
- ICML: International Conference on Machine Learning
- ICCV: International Conference on Computer Vision
- AAAI: Association for the Advancement of Artificial Intelligence
Researchers
Computer Vision
- Sanja Fidler: Associate Professor at University of Toronto, and a Director of AI at NVIDIA, leading a research lab in Toronto.
Machine Learning Toolkit
- Machine Learning Toolkit: A curated list of the best machine learning tools - with simple explanations.
Articles to crack an AI Engineer & Job Interviews
- Zoox Careers — Dissecting Zoox's 1,426 Self Driving Car Jobs
- How Do You Crack an AI Engineer’s Interview at Companies Like Google and Amazon?
GitHub Organization to following
- CompVis - Machine Vision and Learning LMU Munich : Machine Vision and Learning research group at Ludwig Maximilian University of Munich (formerly Computer Vision Group at Heidelberg University)
Contributing
See CONTRIBUTING.
Working at Humaan.ai
Our mission is to "solve intelligence" and enable AI technologies to unleash everyone capabilites and to address humanity's grand challenges.