Tensor Computations (CS 598 EVS) Fall 2024
What | Where |
---|---|
Instructor | Edgar Solomonik (solomon2@illinois.edu) |
Time/place | Tue/Thu 2:00pm-3:15pm, 1214 Siebel (some lectures later in the semester might be virtual) |
Office Hours | Edgar: Tue 3:30pm-4:30pm, 4229 Siebel Center |
Lecture Recordings | https://mediaspace.illinois.edu/channel/channelid/352963962 |
Discussion / Announcements | https://piazza.com/illinois/fall2024/cs598evs |
Class URL | https://relate.cs.illinois.edu/course/cs598evs-f24/ |
The course will cover theory, algorithms, and applications of tensor decompositions and tensor networks. The key prerequisite for this material is familiarity with numerical linear algebra topics and algorithmic analysis.
The planned syllabus for the course is below. The major learning objectives for the courser are to establish fluency/intuition of understanding for computations involving tensor contractions and decompositions, to provide a general understanding of theoretical foundations of associated nonlinear optimization problems, to develop a methodology for efficient implementation of tensor algorithms, and to provide a view of the application landscape of tensor computations.
-
Review of Topics in Numerical Analysis
- matrix factorizations
- eigenvalues, singular values, and matrix conditioning
- iterative methods and preconditioning
- quadratic and nonlinear optimization methods
- graphs and sparse matrices
-
Tensor Algebra
- characterization of tensors (order, dimensions, symmetry, sparsity)
- tensor contractions (tensor products, Kronecker products, etc.)
- tensor notation (matricization, mode-n products, indexing)
- diagrammatic notation (graphs / Feynman diagrams to represent tensor contractions)
-
Tensor Decompositions
- tensor decompositions and rank (CP, Tucker, tensor train)
- uniqueness and conditioning
- complexity of exact and approximate decompositions
- optimization algorithms for tensor decompositions
- high-performance implementation of sparse tensor kernels
- tensor completion and generalized tensor decomposition
- bilinear algorithms and other applications
-
Tensor Networks
- tensor network states (1D/MPS and 2D/PEPS)
- least-squares and eigenvalue problems with tensor network states
- alternating minimization techniques (DMRG, TT-ALS)
- time evolution techniques (Trotterization)
- canonical forms and environments
- applications in quantum simulation
-
Tensor Eigenvalues
- variational perspective on eigenvalues and singular values
- Perron-Frobenius theorem for tensor eigenvectors and other properties
- algorithms for computing tensor eigenvectors
- application to hypergraph partitioning
Lectures will be supplemented with short in-class web assignments, which can also be completed asynchronously. 3-4 short homework assignments are planned to test understanding, which should be completed individually. Students have the choice of giving a presentation or preparing a report on a research project or review, which can be completed individually or in small groups. In-class assignments, homeworks, and the presentation/report will each be worth 1/3 of the grade.
The homeworks and in-class activities will be posted here on a rolling basis. See the webpage for the 2022 offering to get an idea of the assignments.
Quizzes (in-class activities)
Please complete these within 2 weeks of the lecture in which they are covered. Active sessions will be expired sometime after that unless an extension is requested.
Quiz 2: Computing the Maximum Ritz Value »
Quiz 3: Low Rank Approximation: SVD vs Krylov Subspace Methods »
Quiz 4: Kronecker Product as a Tensor Operation »
Quiz 5: Converting a CP Decomposition to a Tucker Decomposition »
Quiz 7: Alternating Least Squares for CP Decomposition »
Quiz 8: Computing an Exact Low Rank CP Decomposition »
Quiz 9: Sparse Tensor times Matrix using CSF Format »
Quiz 10: Nonnegative Tensor Factorization »
Quiz 11: Imaginary Time Evolution »
Quiz 12: Tensor Network Canonical Forms »
Quiz 13: Density Matrix Renormalization Group (DMRG) »
Quiz 14: Approximating Low-CP-Rank Inverse of Kronecker Systems »
Quiz 15: Leverage Score Sampling for Kronecker-Product Linear Least Squares »
Quiz 16: Implicit Leverage Score Sampling for Khatri-Rao Products »
Quiz 17: Computing Eigenvalues of a Symmetric Tensor »
Homeworks
Homework 1: Preconditioning via Low-Rank Approximation »
Homework 2: Accelerating CP-ALS using Tucker »
Homework 3: Review of Tensor Computations »
Proposal and Project
Course Outline
- Course Overview
- Matrix Computations Background
- Basics of Tensor Computations
- Bilinear Algorithms
- Tensor Decomposition
- Tensor Networks
- Randomized Algorithms for Tensor Optimization
- Tensor Eigenvalues
- Bayesian Methods for Tensor Decomposition
Related Courses
CS 598 EVS: Tensor Computations, Spring '22
CS 598 EVS: Provably Efficient Algorithms for Numerical and Combinatorial Problems, Spring '20
CS 450: Numerical Analysis, Spring '24
Related Texts
- Matrix Computations Gene Golub and Charles Van Loan, 4th Edition, The John's Hopkins University Press, 2013.
- Tensor Decompositions and Applications T.G. Kolda and B.W. Bader, SIAM Review, 2009.
- A Practical Introduction to Tensor Networks: Matrix Product States and Projected Entangled Pair States R. Orus, Annals of Physics, 2014.
- Numerical Linear Algebra N. Trefethen and D. Bau, SIAM 1997.
- Applied Numerical Linear Algebra J. Demmel, SIAM 1997.
- Scientific Computing: An Introductory Survey M.T. Heath, SIAM 1997.
Python Help
We will be using Python with the libraries numpy, scipy and matplotlib for in-class work and assignments.
- Python tutorial
- Facts and myths about Python names and values
- Learn Python the hard way
- Project Euler (Lots of practice problems)
Python Workshop Material
- Video: Located on Echo 360 along with the other class recordings
- Tutorial material
- Scipy lecture notes
- CSE workshop training material
Numpy Help
- Introduction to Python for Science
- The SciPy lectures
- The Numpy MedKit by Stéfan van der Walt
- The Numpy User Guide by Travis Oliphant
- Numpy/Scipy documentation
- More in this reddit thread
- Spyder (a Python IDE, like Matlab) is installed in the virtual machine. (Applications Menu > Development > Spyder)
- An introduction to Numpy and SciPy
Statement and Support Resources on Mental Health
Diminished mental health, including significant stress, mood changes, excessive worry, substance/alcohol abuse, or problems with eating and/or sleeping can interfere with optimal academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings at no additional cost. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do -- for yourself and for those who care about you.
Counseling Center: 217-333-3704, 610 East John Street Champaign, IL 61820
McKinley Health Center:217-333-2700, 1109 South Lincoln Avenue, Urbana, Illinois 61801