Vectors and Matrices: Understanding the concepts of vectors and matrices is fundamental. This includes operations such as addition, subtraction, scalar multiplication, dot product, cross product, matrix multiplication, and inverse.
Vector Spaces: Study the properties and characteristics of vector spaces, including linear independence, basis and dimension, subspaces, span, and linear transformations.
Eigenvalues and Eigenvectors: Eigenvalues and eigenvectors play a crucial role in many machine learning algorithms, such as dimensionality reduction techniques like Principal Component Analysis (PCA) and spectral clustering. Learn how to compute eigenvalues and eigenvectors, and their applications.
Orthogonality and Inner Products: Understand the concept of orthogonality, orthogonal bases, and orthogonal projections. Inner product spaces are essential in AI for techniques like support vector machines (SVMs) and kernel methods.
Singular Value Decomposition (SVD): SVD is a powerful matrix factorization technique used in various AI applications, including dimensionality reduction, image compression, collaborative filtering, and recommender systems.
Matrix Factorizations: Besides SVD, be familiar with other matrix factorizations, such as LU decomposition, QR decomposition, and Cholesky decomposition. These factorizations are used for solving systems of linear equations and optimizing matrix operations.
Matrix Calculus: Develop a working knowledge of matrix calculus, including differentiation and optimization of functions involving matrices. This is important for understanding and implementing various machine learning algorithms.
Linear Systems and Solutions: Study techniques for solving linear systems of equations, including Gaussian elimination, LU decomposition, and solving least squares problems.
Convex Optimization: Understand the basics of convex optimization, including convex sets, convex functions, and optimization algorithms like gradient descent. Convex optimization is fundamental in training machine learning models and solving optimization problems.
Applications to AI: Finally, explore how linear algebra concepts and techniques are applied in specific areas of AI, such as deep learning, computer vision, natural language processing, and recommendation systems. Understanding the linear algebra foundations behind these applications will help you develop a deeper intuition and enable you to design and implement more advanced algorithms.
Homeworks in LinAl: https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/pages/assignments/ (Do first and last from every section, download the PDF here)
Homeworks from here: https://ocw.mit.edu/courses/6-801-machine-vision-fall-2020/pages/calendar/
Computer Graphics:
Bare metal MLOps (I will give you a server, you will deploy)
https://www.coursera.org/specializations/machine-learning-engineering-for-production-mlops#courses
Neural Networks
Introduction:
Neural Networks Basics:
Learning and Empirical Risk Minimization:
Empirical Risk Minimization and Gradient Descent:
Backpropagation:
Convergence Issues:
Optimization:
Optimizers and Regularizers:
Shift Invariance and Convolutional Neural Networks:
Models of Vision and Convolutional Neural Networks
Learning in Convolutional Neural Networks:
Learning in CNNs:
Time Series and Recurrent Networks:
Stability and Memory, LSTMs:
Sequence Prediction:
Sequence Prediction:
Language Models and Sequence to Sequence Prediction:
Sequence to Sequence Methods and Attention:
Transformers and GNNs:
Learning Representations and Autoencoders:
Variational Autoencoders:
Variational Autoencoders II:
Generative Adversarial Networks:
Generative Adversarial Networks:
Hopfield Nets and Autoassociators:
Hopfield Nets and Boltzmann Machines:
*=(Optional - you already know)
Project ideas
Write articles on these
Getting better at coding
You want to implement deep learning functionalities from scratch without using external libraries like PyTorch or TensorFlow, it would require a significant amount of work, as these libraries provide optimized implementations and abstract away many low-level details. However, it's still possible to implement some basic functionalities. Here are a few key steps to get started:
Tensor Operations:
Tensor
class: Implement a class that represents a tensor and includes methods for basic tensor operations like element-wise addition, subtraction, multiplication, and division.Neural Network Components:
Linear
layer: Create a class that represents a linear layer and includes methods for initializing weights, performing the forward pass, and updating weights during backpropagation.AutoGrad and Optimization:
Training and Evaluation:
Data Handling:
Keep in mind that implementing all these functionalities from scratch can be a complex and time-consuming task. Additionally, it may not be as efficient or optimized as using established deep learning libraries. However, it can be a valuable learning experience to gain a deeper understanding of the inner workings of deep learning algorithms.
https://arxiv.org/abs/2209.04836
Git re-basin
this is an extremely good paper
https://arxiv.org/pdf/2212.04089.pdf
editing models with task arithmetic
https://math.mit.edu/~dspivak/informatics/olog.pdf
GLaM: https://arxiv.org/pdf/2112.06905.pdf
DEMix Layers: https://arxiv.org/pdf/2108.05036.pdf
Branch-Train-Merge: https://arxiv.org/pdf/2208.03306.pdf
Cluster-BTM: https://arxiv.org/abs/2303.14177
SMEAR: https://arxiv.org/pdf/2306.03745.pdf
TIES-Merging: https://arxiv.org/abs/2306.01708
AdapterFusion: https://arxiv.org/pdf/2005.00247.pdf
KNN Zero-Shot Inference: https://suchin.io/assets/knnprompt.pdf
Cross-Task Skills with Task-Level Mixture-of-Experts: https://arxiv.org/abs/2205.12701
Mixture-of-Supernets: https://arxiv.org/pdf/2306.04845.pdf
Sparse Upcycling: https://arxiv.org/abs/2212.05055
AdaMix: https://www.microsoft.com/en-us/research/uploads/prod/2022/05/Mixture_of_Adaptations_EMNLP_2022-2.pdf
(Thanks Yaccine for the list above!)