All Projects → fastai → Numerical Linear Algebra V2

fastai / Numerical Linear Algebra V2

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

Projects that are alternatives of or similar to Numerical Linear Algebra V2

Bayesian Neural Network Mnist
Bayesian neural network using Pyro and PyTorch on MNIST dataset
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Iclr2021 Openreviewdata
Crawl & visualize ICLR papers and reviews.
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Stat Nlp Book
Interactive Lecture Notes, Slides and Exercises for Statistical NLP
Stars: ✭ 240 (-0.41%)
Mutual labels:  jupyter-notebook
Deeplung
WACV18 paper "DeepLung: Deep 3D Dual Path Nets for Automated Pulmonary Nodule Detection and Classification"
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Kaggle airbus ship detection
Kaggle airbus ship detection challenge 21st solution
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Datascience
Data Science in Julia course for JuliaAcademy.com, taught by Huda Nassar
Stars: ✭ 239 (-0.83%)
Mutual labels:  jupyter-notebook
Pytorch Bert Crf Ner
KoBERT와 CRF로 만든 한국어 개체명인식기 (BERT+CRF based Named Entity Recognition model for Korean)
Stars: ✭ 236 (-2.07%)
Mutual labels:  jupyter-notebook
Hands On Computer Vision With Tensorflow 2
Hands-On Computer Vision with TensorFlow 2, published by Packt
Stars: ✭ 241 (+0%)
Mutual labels:  jupyter-notebook
Aravec
AraVec is a pre-trained distributed word representation (word embedding) open source project which aims to provide the Arabic NLP research community with free to use and powerful word embedding models.
Stars: ✭ 239 (-0.83%)
Mutual labels:  jupyter-notebook
Text Classification
Machine Learning and NLP: Text Classification using python, scikit-learn and NLTK
Stars: ✭ 239 (-0.83%)
Mutual labels:  jupyter-notebook
R C3d
code for R-C3D
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Ida ipython
An IDA Pro Plugin for embedding an IPython Kernel
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Deepreplay
Deep Replay - Generate visualizations as in my "Hyper-parameters in Action!" series!
Stars: ✭ 240 (-0.41%)
Mutual labels:  jupyter-notebook
Learningdl
三个月教你从零入门深度学习Tensorflow版配套代码
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Tacotron2
Tacotron 2 - PyTorch implementation with faster-than-realtime inference
Stars: ✭ 3,300 (+1269.29%)
Mutual labels:  jupyter-notebook
Enet Real Time Semantic Segmentation
ENet - A Neural Net Architecture for real time Semantic Segmentation
Stars: ✭ 238 (-1.24%)
Mutual labels:  jupyter-notebook
Skills
个人的技能树仓库,主要包含个人机器学习以及深度学习的笔记
Stars: ✭ 240 (-0.41%)
Mutual labels:  jupyter-notebook
Udemy derinogrenmeyegiris
Udemy Derin Öğrenmeye Giriş Kursunun Uygulamaları ve Daha Fazlası
Stars: ✭ 239 (-0.83%)
Mutual labels:  jupyter-notebook
Pytorch Sentiment Analysis
Tutorials on getting started with PyTorch and TorchText for sentiment analysis.
Stars: ✭ 3,209 (+1231.54%)
Mutual labels:  jupyter-notebook
Malaya
Natural Language Toolkit for bahasa Malaysia, https://malaya.readthedocs.io/
Stars: ✭ 239 (-0.83%)
Mutual labels:  jupyter-notebook

Computational Linear Algebra for Coders

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

This course is being taught in the University of San Francisco's Masters of Science in Data Science program, summer 2018 (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.

You can find the 2017 version of the course here.

Table of Contents

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

0. Course Logistics

1. Why are we here?

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

2. Background Removal with SVD

Another application of SVD is to identify the people and remove the background of a surveillance video.

3. Topic Modeling with NMF and SVD

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 SVD, and compare the two approaches.

4. Randomized SVD

5. LU Factorization

6. Compressed Sensing of CT Scans with Robust Regression

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.

7. Predicting Health Outcomes with Linear Regressions

  • Linear regression in sklearn
  • Polynomial Features
  • Speeding up with Numba
  • Regularization and Noise

8. How to Implement Linear Regression

  • 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

9. PageRank with Eigen Decompositions

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

10. Implementing QR Factorization

  • Gram-Schmidt
  • Householder
  • Stability Examples

Why is this course taught in such a weird order?

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].