Dieser Kurs konzentriert sich auf die Frage: Wie führen wir Matrixberechnungen mit akzeptabler Geschwindigkeit und akzeptabler Genauigkeit durch?
Dieser Kurs wurde im Sommer 2017 im Rahmen des Masters of Science in Analytics-Programms der University of San Francisco angeboten (für Doktoranden, die Datenwissenschaftler werden möchten). Der Kurs wird in Python mit Jupyter Notebooks unterrichtet, wobei für die meisten Lektionen Bibliotheken wie Scikit-Learn und Numpy sowie Numba (eine Bibliothek, die Python für eine schnellere Leistung in C kompiliert) und PyTorch (eine Alternative zu Numpy für die GPU) verwendet werden. in ein paar Lektionen.
Den Notizbüchern liegt eine Playlist mit Vorlesungsvideos bei, die auf YouTube verfügbar ist. Wenn Sie eine Vorlesung jemals verwirrt oder zu schnell geht, schauen Sie sich den Anfang des nächsten Videos an, in dem ich Konzepte aus der vorherigen Vorlesung noch einmal durchführe, Dinge oft aus einer neuen Perspektive oder mit anderen Illustrationen erkläre und Fragen beantworte.
Sie können in unseren fast.ai-Diskussionsforen in der Kategorie „Computational Linear Algebra“ Fragen stellen oder Ihre Gedanken und Ressourcen teilen.
Die folgende Auflistung enthält Links zu den Notebooks in diesem Repository, die über den nbviewer-Dienst gerendert werden. Behandelte Themen:
Wir beginnen mit einem umfassenden Überblick über einige grundlegende Konzepte der numerischen linearen Algebra.
Wir werden den Newsgroup-Datensatz verwenden, um zu versuchen, die Themen verschiedener Beiträge zu identifizieren. Wir verwenden eine Term-Dokument-Matrix, die die Häufigkeit des Vokabulars in den Dokumenten darstellt. Wir faktorisieren es mit NMF und dann mit SVD.
Eine weitere Anwendung von SVD besteht darin, Personen zu identifizieren und den Hintergrund eines Überwachungsvideos zu entfernen. Wir werden robuste PCA behandeln, die randomisierte SVD verwendet. Und Randomized SVD verwendet die LU-Faktorisierung.
Compressed Sensing ist entscheidend, um CT-Scans mit geringerer Strahlung zu ermöglichen – das Bild kann mit weniger Daten rekonstruiert werden. Hier lernen wir die Technik und wenden sie auf CT-Bilder an.
Wir haben SVD auf Themenmodellierung, Hintergrundentfernung und lineare Regression angewendet. SVD ist eng mit der Eigenzerlegung verbunden, daher lernen wir nun, wie man Eigenwerte für eine große Matrix berechnet. Wir werden DBpedia-Daten verwenden, einen großen Datensatz von Wikipedia-Links, da hier der Haupteigenvektor die relative Bedeutung verschiedener Wikipedia-Seiten angibt (dies ist die Grundidee des PageRank-Algorithmus von Google). Wir werden uns drei verschiedene Methoden zur Berechnung von Eigenvektoren ansehen, die zunehmend komplexer (und nützlicher!) werden.
Dieser Kurs ist nach einer Top-Down -Lehrmethode aufgebaut, die sich von der Funktionsweise der meisten Mathematikkurse unterscheidet. Typischerweise lernen Sie bei einem Bottom-up -Ansatz zunächst alle einzelnen Komponenten kennen, die Sie verwenden werden, und bauen sie dann nach und nach zu komplexeren Strukturen auf. Das Problem dabei ist, dass Studierende oft die Motivation verlieren, keinen Blick für das „große Ganze“ haben und nicht wissen, was sie brauchen.
Harvard-Professor David Perkins hat ein Buch mit dem Titel „Making Learning Whole“, in dem er Baseball als Analogie verwendet. Wir verlangen nicht, dass Kinder sich alle Baseballregeln merken und alle technischen Details verstehen, bevor wir sie das Spiel spielen lassen. Vielmehr beginnen sie mit einem allgemeinen Gespür für das Spiel und lernen dann im Laufe der Zeit nach und nach mehr Regeln/Details.
Wenn Sie den Fast.ai-Deep-Learning-Kurs besucht haben, haben wir diesen genutzt. Weitere Informationen zu meiner Lehrphilosophie finden Sie in diesem Blogbeitrag oder in diesem Vortrag, den ich beim San Francisco Machine Learning-Treffen gehalten habe.
Abgesehen davon: Machen Sie sich keine Sorgen, wenn Sie zunächst nicht alles verstehen! Das solltest du nicht. Wir beginnen mit der Verwendung einiger „Black Boxes“ oder Matrixzerlegungen, die noch nicht erklärt wurden, und gehen dann später auf die Details der unteren Ebenen ein.
Konzentrieren Sie sich zunächst auf das, was die Dinge tun, und nicht darauf, was sie SIND.