Este curso se centra en la pregunta: ¿Cómo hacemos cálculos matriciales con una velocidad y precisión aceptables?
Este curso se impartió en el programa de Maestría en Ciencias en Análisis de la Universidad de San Francisco, verano de 2017 (para estudiantes de posgrado que estudian para convertirse en científicos de datos). El curso se imparte en Python con Jupyter Notebooks, utilizando bibliotecas como Scikit-Learn y Numpy para la mayoría de las lecciones, así como Numba (una biblioteca que compila Python en C para un rendimiento más rápido) y PyTorch (una alternativa a Numpy para la GPU). en unas pocas lecciones.
Acompañando a los cuadernos hay una lista de reproducción de videos de conferencias, disponible en YouTube. Si alguna vez te confunde una conferencia o va demasiado rápido, mira el comienzo del siguiente video, donde reviso conceptos de la conferencia anterior, a menudo explicando las cosas desde una nueva perspectiva o con diferentes ilustraciones, y respondo preguntas.
Puede hacer preguntas o compartir sus pensamientos y recursos utilizando la categoría Álgebra lineal computacional en nuestros foros de discusión fast.ai.
La siguiente lista enlaza a los cuadernos de este repositorio, renderizados a través del servicio nbviewer. Temas cubiertos:
Comenzamos con una descripción general de alto nivel de algunos conceptos fundamentales del álgebra lineal numérica.
Usaremos el conjunto de datos de grupos de noticias para intentar identificar los temas de diferentes publicaciones. Usamos una matriz término-documento que representa la frecuencia del vocabulario en los documentos. Lo factorizamos usando NMF y luego con SVD.
Otra aplicación de SVD es identificar personas y eliminar el fondo de un vídeo de vigilancia. Cubriremos PCA robusta, que utiliza SVD aleatoria. Y la SVD aleatoria utiliza la factorización LU.
La detección comprimida es fundamental para permitir tomografías computarizadas con menor radiación: la imagen se puede reconstruir con menos datos. Aquí aprenderemos la técnica y la aplicaremos a imágenes de TC.
Hemos aplicado SVD al modelado de temas, eliminación de fondo y regresión lineal. SVD está íntimamente relacionado con la descomposición propia, por lo que ahora aprenderemos cómo calcular valores propios para una matriz grande. Usaremos datos de DBpedia, un gran conjunto de datos de enlaces de Wikipedia, porque aquí el vector propio principal da la importancia relativa de diferentes páginas de Wikipedia (esta es la idea básica del algoritmo PageRank de Google). Veremos 3 métodos diferentes para calcular vectores propios, de complejidad creciente (¡y utilidad cada vez mayor!).
Este curso está estructurado con un método de enseñanza de arriba hacia abajo , que es diferente de cómo funcionan la mayoría de los cursos de matemáticas. Por lo general, en un enfoque ascendente , primero aprende todos los componentes separados que utilizará y luego los construye gradualmente hasta formar estructuras más complejas. El problema con esto es que los estudiantes a menudo pierden la motivación, no tienen una idea del "panorama general" y no saben lo que necesitarán.
El profesor de Harvard David Perkins tiene un libro, Making Learning Whole, en el que utiliza el béisbol como analogía. No exigimos que los niños memoricen todas las reglas del béisbol y entiendan todos los detalles técnicos antes de dejarles jugar. Más bien, comienzan a jugar con una idea general y luego aprenden gradualmente más reglas y detalles a medida que pasa el tiempo.
Si tomó el curso de aprendizaje profundo fast.ai, eso es lo que usamos. Puede escuchar más sobre mi filosofía de enseñanza en esta publicación de blog o en esta charla que di en la reunión de Machine Learning de San Francisco.
Dicho todo esto, ¡no te preocupes si no entiendes todo al principio! Se supone que no debes hacerlo. Comenzaremos a usar algunas "cajas negras" o descomposiciones matriciales que aún no se han explicado, y luego profundizaremos en los detalles de nivel inferior.
Para empezar, concéntrate en lo que HACEN las cosas, no en lo que SON.