Free online textbook of Jupyter notebooks for fast.ai Computational Linear Algebra course

Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|

Numerical Linear Algebra | 9,325 | 6 months ago | 11 | Jupyter Notebook | ||||||

Free online textbook of Jupyter notebooks for fast.ai Computational Linear Algebra course | ||||||||||

18335 | 418 | 5 months ago | Jupyter Notebook | |||||||

18.335 - Introduction to Numerical Methods course | ||||||||||

Numerical Linear Algebra V2 | 217 | 5 years ago | 2 | Jupyter Notebook | ||||||

Jupyter Notebooks for Computational Linear Algebra course, taught summer 2018 in USF MSDS program | ||||||||||

Physics | 114 | a month ago | 14 | gpl-3.0 | JavaScript | |||||

Explorable Physics is a website with course notes for algebra based physics with explorable explanations. | ||||||||||

Ibl Abstractalgebra | 62 | a month ago | 37 | TeX | ||||||

IBL course materials for an undergraduate first-semester abstract algebra course that emphasizes visualization. | ||||||||||

Aftercsintro | 52 | 3 years ago | ||||||||

Finished with your first programming course and not sure how to go on? The Stanford Code in Place team shares a roadmap with what courses to follow and where to find information about them | ||||||||||

Datascienceresources | 46 | 5 years ago | unlicense | |||||||

数据科学相关的学习资源，例如MOOC课程，OCW课程，电子书等等。 | ||||||||||

Linear Algebra Refresher Udacity | 35 | 2 years ago | Python | |||||||

Linear algebra refresher course for Udacity to complete before the Machine Learning nanodegree | ||||||||||

Deep Learning Resources | 31 | 3 years ago | 1 | |||||||

This is a list of resources curated from the Slack channel for Udacity's first phase of AI Track scholarship challenge | ||||||||||

Gian Applied Nla Course | 31 | a month ago | mit | Julia | ||||||

Materials for the GIAN Course "Modern Applications of Numerical Linear Algebra Methods" |

Alternatives To Numerical Linear AlgebraSelect To Compare

Alternative Project Comparisons

Readme

This course is focused on the question: **How do we do matrix computations with acceptable speed and acceptable accuracy?**

This course was taught in the University of San Francisco's Masters of Science in Analytics program, summer 2017 (for graduate students studying to become data scientists). The course is taught in Python with Jupyter Notebooks, using libraries such as Scikit-Learn and Numpy for most lessons, as well as Numba (a library that compiles Python to C for faster performance) and PyTorch (an alternative to Numpy for the GPU) in a few lessons.

Accompanying the notebooks is a playlist of lecture videos, available on YouTube. If you are ever confused by a lecture or it goes too quickly, check out the beginning of the next video, where I review concepts from the previous lecture, often explaining things from a new perspective or with different illustrations, and answer questions.

You can ask questions or share your thoughts and resources using the **Computational Linear Algebra** category on our fast.ai discussion forums.

The following listing links to the notebooks in this repository, rendered through the nbviewer service. Topics Covered:

- My background
- Teaching Approach
- Importance of Technical Writing
- List of Excellent Technical Blogs
- Linear Algebra Review Resources

We start with a high level overview of some foundational concepts in numerical linear algebra.

- Matrix and Tensor Products
- Matrix Decompositions
- Accuracy
- Memory use
- Speed
- Parallelization & Vectorization

We will use the newsgroups dataset to try to identify the topics of different posts. We use a term-document matrix that represents the frequency of the vocabulary in the documents. We factor it using NMF, and then with SVD.

- Topic Frequency-Inverse Document Frequency (TF-IDF)
- Singular Value Decomposition (SVD)
- Non-negative Matrix Factorization (NMF)
- Stochastic Gradient Descent (SGD)
- Intro to PyTorch
- Truncated SVD

Another application of SVD is to identify the people and remove the background of a surveillance video. We will cover robust PCA, which uses randomized SVD. And Randomized SVD uses the LU factorization.

- Load and View Video Data
- SVD
- Principal Component Analysis (PCA)
- L1 Norm Induces Sparsity
- Robust PCA
- LU factorization
- Stability of LU
- LU factorization with Pivoting
- History of Gaussian Elimination
- Block Matrix Multiplication

Compressed sensing is critical to allowing CT scans with lower radiation-- the image can be reconstructed with less data. Here we will learn the technique and apply it to CT images.

- How did Scikit Learn do it?
- Naive solution
- Normal equations and Cholesky factorization
- QR factorization
- SVD
- Timing Comparison
- Conditioning & Stability
- Full vs Reduced Factorizations
- Matrix Inversion is Unstable

We have applied SVD to topic modeling, background removal, and linear regression. SVD is intimately connected to the eigen decomposition, so we will now learn how to calculate eigenvalues for a large matrix. We will use DBpedia data, a large dataset of Wikipedia links, because here the principal eigenvector gives the relative importance of different Wikipedia pages (this is the basic idea of Google's PageRank algorithm). We will look at 3 different methods for calculating eigenvectors, of increasing complexity (and increasing usefulness!).

- SVD
- DBpedia Dataset
- Power Method
- QR Algorithm
- Two-phase approach to finding eigenvalues
- Arnoldi Iteration

This course is structured with a *top-down* teaching method, which is different from how most math courses operate. Typically, in a *bottom-up* approach, you first learn all the separate components you will be using, and then you gradually build them up into more complex structures. The problems with this are that students often lose motivation, don't have a sense of the "big picture", and don't know what they'll need.

Harvard Professor David Perkins has a book, Making Learning Whole in which he uses baseball as an analogy. We don't require kids to memorize all the rules of baseball and understand all the technical details before we let them play the game. Rather, they start playing with a just general sense of it, and then gradually learn more rules/details as time goes on.

If you took the fast.ai deep learning course, that is what we used. You can hear more about my teaching philosophy in this blog post or this talk I gave at the San Francisco Machine Learning meetup.

All that to say, don't worry if you don't understand everything at first! You're not supposed to. We will start using some "black boxes" or matrix decompositions that haven't yet been explained, and then we'll dig into the lower level details later.

To start, focus on what things DO, not what they ARE.

Popular Course Projects

Popular Algebra Projects

Popular Learning Resources Categories

Related Searches

Get A Weekly Email With Trending Projects For These Categories

No Spam. Unsubscribe easily at any time.

Python

Jupyter Notebook

Machine Learning

Deep Learning

Algorithms

Course

Data Science

Matrix

Numpy

Algebra

Linear Algebra

Svd