/ai-engineer-roadmap

A Roadmap to Becoming an AI Engineer 👨🏻‍🚀🚀

Primary LanguageTypeScriptMIT LicenseMIT

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

1. Mathematics

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.

Probability & Statistics

Topics include Random variables, expectation, Probability distributions and so on.

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

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

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

Machine Learning

  • Homemade Machine Learning: Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained

Books

Mathematics

Machine Learning

Artificial Intelligence

Natural Language Processing

Deep Learning

AI & Machine Learning Cheat Sheet

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

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

Optimization

Statistics and Probability

Python

Courses (Fee may apply)

Artificial Intelligence Research Labs

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

Articles to crack an AI Engineer & Job Interviews

GitHub Organization to following

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.

[Jobs at Humaan.ai]