Capítulo 1. Introducción Introducción

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

¿Qué es el álgebra lineal y por qué aprenderla?

El álgebra lineal tiene una interesante historia en las matemáticas, que se remonta al siglo XVII en Occidente y mucho antes en China. Las matrices -las hojas de cálculo de números que constituyen el núcleo del álgebra lineal- se utilizaron para proporcionar una notación compacta para almacenar conjuntos de números como coordenadas geométricas (éste fue el uso original de las matrices por Descartes) y sistemas de ecuaciones (cuyo pionero fue Gauss). En el siglo XX, las matrices y los vectores se utilizaron para las matemáticas multivariantes, como el cálculo, las ecuaciones diferenciales, la física y la economía.

Pero la mayoría de la gente no ha necesitado preocuparse por las matrices hasta hace poco. La cuestión es la siguiente: los ordenadores son extremadamente eficientes trabajando con matrices. Y así, la informática moderna dio lugar al álgebra lineal moderna. El álgebra lineal moderna es computacional, mientras que el álgebra lineal tradicional es abstracta. El álgebra lineal moderna se aprende mejor mediante código y aplicaciones en gráficos, estadística, ciencia de datos, IA y simulaciones numéricas, mientras que el álgebra lineal tradicional se aprende mediante pruebas y reflexionando sobre espacios vectoriales de infinitas dimensiones. El álgebra lineal moderna proporciona las vigas estructurales que sustentan casi todos los algoritmos implementados en los ordenadores, mientras que el álgebra lineal tradicional suele ser forraje intelectual para estudiantes universitarios de matemáticas avanzadas.

Bienvenido al álgebra lineal moderna.

¿Deberías aprender álgebra lineal? Eso depende de si quieres entender algoritmos y procedimientos, o simplemente aplicar métodos que otros han desarrollado. No pretendo menospreciar esto último: no hay nada intrínsecamente malo en utilizar herramientas que no entiendes (estoy escribiendo esto en un portátil que sé utilizar pero que no podría construir desde cero). Pero dado que estás leyendo un libro con este título de la colección de libros de O'Reilly, supongo que o bien (1) quieres saber cómo funcionan los algoritmos o bien (2) quieres desarrollar o adaptar métodos computacionales. Así que sí, deberías aprender álgebra lineal, y deberías aprender la versión moderna de la misma.

Acerca de este libro

El objetivo de este libro es enseñarte álgebra lineal moderna. Pero no se trata de memorizar algunas ecuaciones clave y pasar por pruebas abstractas; el propósito es enseñarte a pensar en matrices, vectores y operaciones que actúan sobre ellos. Desarrollarás una intuición geométrica de por qué el álgebra lineal es como es. Y comprenderás cómo implementar los conceptos del álgebra lineal en código Python, con especial atención a las aplicaciones en el aprendizaje automático y la ciencia de datos.

Muchos libros de texto tradicionales de álgebra lineal evitan los ejemplos numéricos en aras de las generalizaciones, esperan que obtengas pruebas difíciles por tu cuenta y enseñan innumerables conceptos que tienen poca o ninguna relevancia para la aplicación o implementación en ordenadores. No escribo esto como una crítica: el álgebra lineal abstracta es bella y elegante. Pero si tu objetivo es utilizar el álgebra lineal (y las matemáticas en general) como herramienta para comprender los datos, la estadística, el aprendizaje profundo, el procesamiento de imágenes, etc., entonces los libros de texto tradicionales de álgebra lineal pueden parecerte una frustrante pérdida de tiempo que te deja confuso y preocupado por tu potencial en un campo técnico.

Este libro está escrito pensando en los estudiantes autodidactas. Tal vez tengas una licenciatura en matemáticas, ingeniería o física, pero necesites aprender a implementar el álgebra lineal en código. O quizá no estudiaste matemáticas en la universidad y ahora te das cuenta de la importancia del álgebra lineal para tus estudios o tu trabajo. En cualquier caso, este libro es un recurso autónomo; no es únicamente un complemento para un curso teórico (aunque podría utilizarse con ese fin).

Si estabas asintiendo con la cabeza mientras leías los tres párrafos anteriores, entonces este libro es definitivamente para ti.

Si quieres profundizar en el álgebra lineal, con más pruebas y exploraciones, hay varios textos excelentes que puedes considerar, incluido el mío Álgebra lineal: Teoría, Intuición, Código (Sincxpress BV).1

Requisitos previos

He intentado escribir este libro para aprendices entusiastas con una formación formal mínima. Dicho esto, nunca se aprende nada realmente desde cero.

Matemáticas

Tienes que sentirte cómodo con las matemáticas de secundaria. Sólo álgebra y geometría básicas; nada del otro mundo.

Para este libro no se requiere absolutamente nada de cálculo (aunque el cálculo diferencial es importante para las aplicaciones en las que a menudo se utiliza el álgebra lineal, como el aprendizaje profundo y la optimización).

Pero lo más importante es que te sientas cómodo pensando en matemáticas, mirando ecuaciones y gráficos, y aceptando el reto intelectual que supone estudiar matemáticas.

Actitud

El álgebra lineal es una rama de las matemáticas, ergo éste es un libro de matemáticas. Aprender matemáticas, especialmente siendo adulto, requiere algo de paciencia, dedicación y una actitud firme. Coge una taza de café, respira hondo, pon tu teléfono en otra habitación y sumérgete.

Habrá una voz en el fondo de tu cabeza que te dirá que eres demasiado viejo o demasiado estúpido para aprender matemáticas avanzadas. A veces esa voz es más fuerte y a veces más suave, pero siempre está ahí. Y no sólo te ocurre a ti: le ocurre a todo el mundo. No puedes suprimir ni destruir esa voz; ni siquiera te molestes en intentarlo. Acepta que un poco de inseguridad y duda forma parte del ser humano. Cada vez que esa voz habla es un reto para que demuestres que se equivoca.

Codificación

Este libro se centra en aplicaciones de algbera lineal en código. Escribí este libro para Python, porque Python es actualmente el lenguaje más utilizado en ciencia de datos, aprendizaje automático y campos relacionados. Si prefieres otros lenguajes como MATLAB, R, C o Julia, espero que te resulte sencillo traducir el código Python.

He intentado que el código Python sea lo más sencillo posible, sin dejar de ser relevante para las aplicaciones. El capítulo 16 ofrece una introducción básica a la programación en Python. ¿Deberías leer ese capítulo? Eso depende de tu nivel de conocimientos de Python:

Intermedio/avanzado (>1 año de experiencia en codificación)

Sáltate por completo el Capítulo 16, o quizás hojéalo para hacerte una idea del tipo de código que aparecerá en el resto del libro.

Algunos conocimientos (<1 año de experiencia)

Por favor, repasa el capítulo en caso de que haya material nuevo o que necesites refrescar. Pero deberías poder repasarlo con bastante rapidez.

Principiante total

Repasa el capítulo en detalle. Ten en cuenta que este libro no es un tutorial completo de Python, por lo que si te encuentras con dificultades con el código de los capítulos de contenido, es posible que desees dejar este libro, trabajar en un curso o libro dedicado a Python y luego volver a este libro.

Pruebas matemáticas frente a la intuición de la codificación

El propósito de estudiar matemáticas es, bueno, comprender las matemáticas. ¿Cómo se entienden las matemáticas? Contemos las maneras:

Pruebas rigurosas

Una demostración en matemáticas es una secuencia de afirmaciones que muestran que un conjunto de supuestos conduce a una conclusión lógica. Las pruebas tienen una importancia incuestionable en las matemáticas puras.

Visualizaciones y ejemplos

Las explicaciones escritas con claridad, los diagramas y los ejemplos numéricos te ayudan a intuir los conceptos y operaciones del álgebra lineal. La mayoría de los ejemplos se realizan en 2D o 3D para facilitar la visualización, pero los principios también se aplican adimensiones superiores.

La diferencia entre ambos es que las demostraciones matemáticas formales aportan rigor, pero rara vez intuición, mientras que las visualizaciones y los ejemplos proporcionan una intuición duradera a través de la experiencia práctica, pero pueden arriesgarse a inexactitudes basadas en ejemplos concretos que no se generalizan.

Se incluyen pruebas de afirmaciones importantes, pero me centro más en construir la intuición mediante explicaciones, visualizaciones y ejemplos de código.

Y esto me lleva a la intuición matemática a partir de la codificación (lo que a veces llamo "pruebas suaves"). Ésta es la idea: supones que Python (y bibliotecas como NumPy y SciPy) implementa correctamente el cálculo numérico de bajo nivel, mientras tú te centras en los principios explorando muchos ejemplos numéricos en código.

Un ejemplo rápido: vamos a "probar suavemente" el principio de conmutatividad de la multiplicación, que establece que a × b = b × a :

a = np.random.randn()
b = np.random.randn()
a*b - b*a

Este código genera dos números aleatorios y prueba la hipótesis de que intercambiar el orden de la multiplicación no influye en el resultado. La tercera línea de imprimiría 0.0 si el principio de conmutatividad es cierto. Si ejecutas este código varias veces y siempre obtienes 0.0, entonces has ganado intuición sobre la conmutatividad al ver el mismo resultado en muchos ejemplos numéricos diferentes.

Para que quede claro: la intuición a partir del código no sustituye a una demostración matemática rigurosa. La cuestión es que las "pruebas suaves" te permiten comprender conceptos matemáticos sin tener que preocuparte por los detalles de la sintaxis y los argumentos matemáticos abstractos. Esto es especialmente ventajoso para los programadores que carecen de una formación matemática avanzada.

La conclusión es que puedes aprender muchas matemáticas con un poco de programación.

Código, impreso en el libro y descargable en línea

Puedes leer este libro sin mirar código ni resolver ejercicios de código. Eso está bien, y sin duda aprenderás algo. Pero no te decepciones si tus conocimientos son superficiales y fugaces. Si realmente quieres entender el álgebra lineal, necesitas resolver problemas. Por eso este libro viene con demostraciones de código y ejercicios para cada concepto matemático.

El código importante está impreso directamente en el libro. Quiero que leas el texto y las ecuaciones, mires los gráficos y veas el código al mismo tiempo. Eso te permitirá relacionar los conceptos y las ecuaciones con el código.

Pero imprimir el código en un libro puede ocupar mucho espacio, y copiarlo a mano en tu ordenador es tedioso. Por tanto, en las páginas del libro sólo se imprimen las líneas de código clave; el código en línea contiene código adicional, comentarios, adornos gráficos, etc. El código en línea también contiene soluciones a los ejercicios de codificación (¡todos, no sólo los problemas impares!). Definitivamente, deberías descargarte el código y repasarlo mientras trabajas con el libro.

Puedes obtener todo el código en el sitio GitHub https://github.com/mikexcohen/LinAlg4DataScience. Puedes clonar este repositorio o simplemente descargar todo el repositorio como archivo ZIP (no necesitas registrarte, iniciar sesión ni pagar para descargar el código).

Escribí el código utilizando el cuaderno Jupyter en el entorno Colab de Google. Elegí utilizar Jupyter porque es un entorno amigable y fácil de usar. Dicho esto, te animo a que utilices el IDE de Python que prefieras. El código en línea también se proporciona como archivos .py sin procesar para mayor comodidad.

Ejercicios de codificación

Las matemáticas no son un deporte para espectadores. La mayoría de los libros de matemáticas tienen innumerables problemas de papel y lápiz en los que trabajar (y seamos sinceros: nadie los hace todos). Pero este libro trata de álgebra lineal aplicada, ¡y nadie aplica el álgebra lineal en papel! En lugar de eso, aplicas el álgebra lineal en código. Por tanto, en lugar de problemas trabajados a mano y tediosas demostraciones "dejadas como ejercicio al lector" (como les encanta escribir a los autores de libros de texto de matemáticas), este libro tiene montones de ejercicios de código.

Los ejercicios de código varían en dificultad. Si eres nuevo en Python y en álgebra lineal, puede que algunos ejercicios te resulten realmente difíciles. Si te quedas atascado, aquí tienes una sugerencia: echa un vistazo rápido a mi solución para inspirarte, luego guárdala para que no puedas ver mi código, y sigue trabajando en tu propio código.

Cuando compares tu solución con la mía, ten en cuenta que hay muchas formas de resolver problemas en Python. Llegar a la respuesta correcta es importante; los pasos que das para llegar a ella son a menudo una cuestión de estilo personal de codificación.

Cómo utilizar este libro (para profesores y autodidactas)

Hay tres entornos en los que este libro es útil:

Autodidacta

He intentado que este libro sea accesible para los lectores que quieran aprender álgebra lineal por su cuenta, fuera de un entorno formal de clase. No son necesarios recursos adicionales ni clases en línea, aunque, por supuesto, hay infinidad de otros libros, sitios web, vídeos de YouTube y cursos en línea que los estudiantes pueden encontrar útiles.

Libro de texto principal en una clase de ciencia de datos

Este libro puede utilizarse como libro de texto principal en un curso sobre las matemáticas subyacentes a la ciencia de datos, el aprendizaje automático, la IA y temas relacionados. Hay 14 capítulos de contenido (excluyendo esta introducción y el apéndice de Python), y se podría esperar que los estudiantes trabajaran con uno o dos capítulos por semana. Dado que los estudiantes tienen acceso a las soluciones de todos los ejercicios, los instructores pueden complementar los ejercicios del libro con conjuntos de problemas adicionales.

Libro de texto secundario en un curso de álgebra lineal centrado en las matemáticas

Este libro también podría utilizarse como complemento en un curso de matemáticas centrado en las pruebas. En este caso, las clases se centrarían en la teoría y las pruebas rigurosas, mientras que este libro podría servir de referencia para traducir los conceptos a código, con la vista puesta en las aplicaciones en la ciencia de datos y el aprendizaje automático. Como escribí anteriormente, los profesores pueden proporcionar ejercicios complementarios, ya que las soluciones a todos los ejercicios del libro están disponibles en Internet.

1 Pido disculpas por la descarada autopromoción; prometo que es la única vez en este libro que te someteré a tal indulgencia.

Get Álgebra lineal práctica para la ciencia de datos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.