¿Debo memorizar las matemáticas y los algoritmos al aprender el aprendizaje automático y el aprendizaje profundo?

Si.

El caballero cuya respuesta involucró la “triangulación” de Feynman es correcta en cierto sentido, pero solo la mitad.

La “triangulación” requiere memorización. Solo funciona si tiene puntos de referencia para triangular. Cuantos más puntos de referencia tenga, mejor podrá triangular. Entonces: memorizar MÁS hace que la triangulación sea más efectiva.

Además: “triangulación” es sssslooooowwww. Si no puede recordar la ecuación normal cada vez que necesita codificar OLS, y tiene que derivarla desde cero, serán 5 minutos de tiempo para algo que me lleve 1 segundo. Entonces: la velocidad de la memoria destruye absolutamente la velocidad de la triangulación.

Además, memorizar más hace que la triangulación sea más rápida. Cuantos más puntos de referencia, más probable es que tenga uno más cerca de su objetivo.

Conozco personas inteligentes que memorizan cosas pero no pueden triangular; y personas inteligentes que no memorizan nada y tienen que reelaborar todo desde cero constantemente.

Los mejores y más brillantes que conozco hacen ambas cosas.

Triangular Y Memorizar.

No.

Permíteme presentarte una de mis ideas educativas favoritas: la triangulación.

Richard Feynman lo describe mucho mejor que yo en su libro Feynman’s Tips on Physics: Reflections, Advice, Insights, Practice cuando habla sobre la memorización en relación con la física:

Ahora, suponga que algo le sucedió a su mente, que de alguna manera todo el material en alguna región fue borrado, y había un pequeño punto de falta de sustancia pegajosa allí. Las relaciones de la naturaleza son tan agradables que es posible, por lógica, “triangular” de lo que se sabe a lo que hay en el agujero.

Y puede recrear las cosas que ha olvidado perpetuamente, si no olvida demasiado y si sabe lo suficiente. En otras palabras, llega un momento, que aún no ha llegado, en el que sabrá tantas cosas que, a medida que las olvida, puede reconstruirlas a partir de las piezas que aún puede recordar. Por lo tanto, es de primera importancia que usted sepa cómo ” triangular” , es decir, saber cómo resolver algo de lo que ya sabe.

Esta noción de “triangulación” también es aplicable al campo del aprendizaje automático y realmente a cualquier campo de estudio técnico, científico o matemático. Echemos un vistazo a uno de los ejemplos más simples de triangulación que involucra mínimos cuadrados ordinarios.

Imagine que un día se despertó y olvidó por completo cómo resolver el problema de optimización involucrado en los mínimos cuadrados ordinarios, a saber, [math] \ min_ {x} \ lVert \ mathbf {A \ vec x – \ vec b} \ rVert ^ 2 [/ matemáticas].

La solución a este problema de optimización es [matemáticas] x = (A ^ {\ top} A) ^ {- 1} A ^ {\ top} b [/ matemáticas] pero si no lo recordamos, ¿cómo podemos ” triangular “nuestro camino hacia esta solución.

Bueno, lo primero que te das cuenta es que cada vez que quieres minimizar una función, una forma natural de resolver este problema es tomar una derivada y establecerla igual a 0. Pero, ¿cuál es la noción de una derivada en este contexto? ¡gradiente!

Pero, entonces, piensa un poco más cuidadosamente sobre el significado del gradiente y, como alguien que entendió el concepto del gradiente a partir del cálculo multivariable, recuerda que establecer el gradiente es igual a 0 no es suficiente para que sea la solución óptima . Podría ser un mínimo local. O peor aún, podría ser un punto de silla de montar o máximos locales. Pero, ¿hay algo especial en esta función?

Después de pensar un poco más sobre el problema, te das cuenta de que la función que estás tratando de minimizar aquí es convexa, lo que significa que cualquier mínimo local que encuentres al establecer el gradiente en 0 será el mínimo global. Además, los máximos locales y los puntos de silla no tienen sentido para las funciones convexas. Por lo tanto, comenzamos tomando el gradiente de esta función:

[matemáticas] \ nabla_x \ lVert \ mathbf {A \ vec x – \ vec b} \ rVert ^ 2 [/ matemáticas]

[math] = \ nabla_x (A \ vec x – \ vec b) ^ {\ top} (A \ vec x – \ vec b) [/ math]

[matemáticas] = \ nabla_x (\ vec x ^ {\ top} A ^ {\ top} A \ vec x – 2 \ vec x ^ {\ top} A ^ {\ top} \ vec b + \ vec b ^ { \ top} \ vec b) [/ math]

[matemáticas] = 2A ^ {\ top} A \ vec x – 2A ^ {\ top} \ vec b [/ matemáticas]

Establecemos este gradiente igual a 0 y resolviendo para [matemáticas] x [/ matemáticas], obtenemos [matemáticas] x = (A ^ {\ top} A) ^ {- 1} A ^ {\ top} b [/ matemáticas ] Y hemos redirigido con éxito la solución a los mínimos cuadrados ordinarios.

También puede obtener la misma solución al problema si lo mira desde un punto de vista algebraico lineal en lugar de una perspectiva de optimización. Te das cuenta de que la solución [math] \ vec x [/ math] es algo en el espacio de la columna de [math] A [/ math] que está más cerca de [math] b [/ math]. Después de algunas figuras y pensando en el problema desde una perspectiva geométrica, se da cuenta de que esta solución [matemática] \ vec x [/ matemática] es precisamente [matemática] b [/ matemática] proyectada en el espacio de la columna de [matemática] A [/ matemáticas]. Este es un diagrama útil para ver esto:

Esto significa que el vector de “error” [math] \ vec b – A \ vec x [/ math] es ortogonal al espacio de columna de [math] A [/ math]. Podemos traducir esta observación a las matemáticas de la siguiente manera:

[matemáticas] A ^ {\ top} (\ vec b – A \ vec x) = \ vec 0 [/ matemáticas]

Y resolver esto una vez más produce [matemáticas] x = (A ^ {\ top} A) ^ {- 1} A ^ {\ top} b [/ matemáticas].

Ahora, es importante tener en cuenta que para triangular a esta solución desde el punto de vista de la optimización, debe comprender el cálculo multivariable o haber visto lo suficiente para saber cómo funcionan los gradientes de matrices y vectores. También debe conocer el papel de la convexidad en la resolución de este tipo de problemas. Y para triangular la solución desde la perspectiva algebraica lineal, debe comprender los principios del álgebra lineal, como el espacio de columnas, la ortogonalidad y la proyección.

Y Feynman articula esto en la cita anterior cuando enfatiza que para triangular, todavía necesita saber lo suficiente. En otras palabras, no puedes tener demasiados vacíos en tu comprensión o no tienes dónde establecer realmente una base para la triangulación.

Es por eso que muchas veces, escuchará que para comprender realmente el campo del aprendizaje automático, necesita tener este tipo de formación matemática. ¡Tenga en cuenta que este tipo de fondo es necesario para comprender profundamente uno de los modelos más simples en el campo! Tener la capacidad de triangular en lugar de memorizar es una de las habilidades más importantes que puede aprender para garantizar una comprensión más profunda de los conceptos en todo tipo de campos técnicos.

Mi opinión personal es no. Las matemáticas están disponibles en cualquier papel y el algoritmo en cualquier paquete. El punto de aprender los tapetes es que entiendes cómo funciona la cosa para que puedas usarla de manera efectiva. Simúlelo mentalmente … descubra por qué lo estructuraron de la manera que lo hicieron. ¿Qué compromisos hicieron? Cuando te sientas seguro, serás mucho mejor al usar el código empaquetado.

No es una respuesta correcta aquí, esto realmente depende de sus hábitos personales de aprendizaje / desarrollo y también de lo que pretende hacer dentro de ML / DL. Si solo está buscando aplicar ML a sus problemas, entonces no estoy seguro de que realmente tenga mucho sentido memorizar las matemáticas. Creo que es bastante fácil de usar bibliotecas listas para usar como SKlearn o algo bastante efectivo (ajustar y ajustar realmente no requiere una comprensión de las matemáticas subyacentes).

Sin embargo, si desea desarrollar modelos / algoritmos, o realizar una investigación fundamental en ML, tendrá que adquirir una comprensión muy firme de lo que está sucediendo y por qué. Para mí, lo que funciona mejor es poder derivar las matemáticas y los algoritmos. Hay una serie de principios de conducción en ML, y una vez que tenga una buena comprensión intuitiva de ellos, junto con un control sólido de los campos matemáticos importantes (probabilidad, estadística, cálculo diferencial, álgebra lineal, optimización convexa y tal vez algunas cosas más matizadas , dependiendo de su subárea), las cosas realmente comienzan a tener sentido. Por lo general, las matemáticas / algoritmos tienen mucho sentido en un contexto más amplio, y es “fácil” entenderlos porque siguen lógicamente dada la configuración de la que surgieron.

Personalmente, no intentaría memorizar . En cambio, trato de entender (grok) qué / por qué / cómo aparecen las cosas en las ecuaciones / algoritmos; creo que eso también hace que aprender cosas nuevas sea mucho más fácil en el futuro, por lo que puede ser una mejor inversión de tiempo.

More Interesting

¿Cómo se pueden usar Hadoop y NoSQL para procesar grandes conjuntos de datos en Java?

¿Cuál es la diferencia entre machine learning y IOT?

¿Cuáles son algunos problemas no resueltos en el procesamiento del lenguaje natural?

¿Qué enfoque de aprendizaje automático recomendaría realizar OCR (reconocimiento de caracteres) en un sistema de reconocimiento automático de matrículas?

¿Cómo podemos "entrenar" sistemáticamente los algoritmos de agrupación sobre qué combinaciones de atributos / características generan en última instancia los tipos deseados de agrupaciones?

¿Qué recomendarías, Machine Learning o DevOps?

¿Cómo se relaciona el concepto de simetría con la agrupación?

Tengo una entrevista telefónica técnica para una pasantía la próxima semana con el aprendizaje automático y el equipo de fraude de Uber. ¿Debo esperar DS y algoritmos generales o algo más?

¿Cuál es la forma óptima de almacenar y cargar un gran conjunto de datos de imágenes?

¿Qué hace que un modelo sea interpretable?

Cómo interpretar una capa totalmente conectada como una capa convolucional para hacer predicciones densas de píxeles

¿Cómo funciona el sistema de recomendación de filtrado basado en contenido por word2vec usando etiquetas?

¿Cuáles son las herramientas basadas en redes neuronales disponibles ahora para el consumidor?

¿En qué áreas de la banca / finanzas se utiliza el aprendizaje automático?

¿Cuántas personas en el mundo son expertos en aprendizaje profundo para visión por computadora?