Intro¶
Welcome! My name is Trevor Gordon and I have just completed my MS in Electrical Engineering at Columbia University with a focus in machine learning and reinforcement learning (Dec 2022).
Please see my LinkedIn and resume here for information on my experience:
This jupyter notebook was a place for notes on my courses while at Columbia. This includes theory, formulas, code snippets and links to useful resources. These notes are a work in progress as the semester progresses.
Projects
Thesis: Towards real world dynamic spectrum access with deep reinforcement learning. Short blog here
Neural Networks & Deep Learning: Piano music generation using LSTM neural network and TensorFlow. Checkout an explanation and results here
An Exploration of Socially Driven Multi-Agent Reinforcement Learning Models: Literature review and study on open source multi agent reinforcement learning research. Checkout the final report
GPU Programming Project: Developed random forests from scratch using CUDA and NVIDIA GPU. Checkout the final report and code
Courses¶
Research
Reinforcement Learning for wireless communication systems
Advanced Deep Learning
Object Detection classical approaches
Gradient Vector, HOG, and SS
CNN, DPM and Overfeat
R-CNN Family
Fast Detection Models
YOLO: You Only Look Once
SSD: Single Shot MultiBox Detector
YOLOv2 / YOLO9000
YOLOv3
GANs
Sparse Models For High Dimensional Data
Course Introduction, Motivating Examples, Linear Algebra Review
Sparse Solutions, l0, l0 uniqueness, NP-hardness
l1 relaxation, l1 recovery under incoherence
Recovery under RIP, random matrices
Rank minimization: Motivating examples, Nuclear norm relaxation
Rank RIP (briefly), Matrix completion
Robust PCA, General low-complexity models
Optimization I: Review of first order methods, proximal methods, acceleration
Optimization II: Constraints, Augmented Lagrangian, ADMM
Nonconvex Optimization: dictionaries, deconvolution, neural networks
Nonconvex Optimization: geometric theory and intuitions
Low-Dimensional Models and Neural Networks I: optimization phenomena
Low-Dimensional Models and Neural Networks II: dedicated constructions, invariance
Low-Dimensional Models and Neural Networks III: generative models
Student course project presentations (final exam slot)
Robot Learning
Unsupervised learning: clustering and dimensionality reduction
Supervised learning I: linear regression
Supervised learning II: classification, decision trees
Guest lecture: supervised learning for a robotic hand orthosis
Learning for Computer Vision: “traditional” methods
3D Computer Vision
Deep Learning: fundamentals, Part I
Deep Learning: fundamentals, Part II
Deep Learning architectures: CNNs
Deep Learning architectures: AEs, RNNs
Learning dynamics (forward) models
Reinforcement Learning I: fundamentals, Q-Learning
Reinforcement Learning II: non-determinism, policy iteration
Reinforcement Learning III: Deep Q-Networks
Reinforcement Learning IV: Policy Gradient and Actor Critic
Open-source tools and libraries for robot learning
Domain Randomization and Policies with Memory
Reinforcement Learning
Bandit problems and on-line learning
Markov decision processes, returns and value functions
RL solutions: dynamic programming methods
RL solutions: Monte-Carlo methods
RL solutions: temporal difference methods
Eligibility traces.
Value function approximation
Models and planning
Case studies: applications in artificial intelligence
Deep reinforcement learning
Neural Networks and Deep Learning
Introduction
Machine Learning Review
Deep Forward Networks
Backpropagation
Machine Learning
Convolutional Neural Networks
Regularization for Deep Learning
Practical Methodology
RNNs
Autoencoders
GANs, Variational Encoders, DLL trends
Machine Learning for signals, information, data
Introduction, maximum likelihood estimation
Linear regression, least squares, geometric view
Ridge regression, probabilistic views of linear regression
Bias-variance, Bayes rule, maximum a posteriori
Bayesian linear regression
Sparsity, subset selection for linear regression
Nearest neighbor classification, Bayes classifiers
Linear classifiers, perceptron
Logistic regression, Laplace approximation
Kernel methods, Gaussian processes
Maximum margin, support vector machines
Rrees, random forests
Boosting
Clustering, k-means
EM algorithm, missing data
Mixtures of Gaussians
Matrix factorization
Non-negative matrix factorization
Latent factor models, PCA and variations
Markov models
Hidden Markov models
Continuous state-space models
Association analysis
Heterogeneous Computing for Signal and Data Processing
Introduction
GPUs
OpenCL
CUDA
Portability and Scalability in HPC
Data Parallelism and Threads
Memory Hierarchy
Memory Allocation and Data Movement
Kernel-Based Parallel Programming
Memory Bandwidth and Coalescing
Matrix-Matrix Multiplications
Thread, Warps and Wavefronts
Thread Scheduling
Tiled Processing for 1D, 2D
Control Divergence
Convolution and Tiled Convolution
Reduction Kernels
Atomic Operations
Histogram Kernel
Applications: Deep Learning, Imaging, Video, …
Profiling and Debugging