En el aprendizaje automático, ¿debería concentrarme más en las matemáticas o está bien entender cómo funcionan los algoritmos y omitir algunas matemáticas complicadas?

Al igual que con muchas de estas preguntas, la respuesta es que depende de para qué desea aprender el aprendizaje automático. Si desea simplemente usar el aprendizaje automático en alguna tarea posterior, principalmente como una caja negra, entonces omitir las matemáticas no es un problema. El otro extremo del espectro es que desea trabajar en la investigación de aprendizaje automático, donde es esencial conocer los algoritmos de entrada y salida, y luego necesita saber las matemáticas. Si se encuentra en un punto intermedio, es importante tener una idea básica de las matemáticas, aunque los detalles pueden no ser demasiado importantes. Si cae en esta categoría (que supongo que incluye a la mayoría de las personas interesadas en el aprendizaje automático), debe comprender la configuración en la que se utiliza un algoritmo particular, qué sabe todo el algoritmo, qué se debe predecir, qué son los supuestos, cuáles son los hiperparámetros, cuáles son las ventajas y desventajas de usar el algoritmo, y lo más importante, la intuición del algoritmo. Ahora, resulta que conocer las matemáticas detrás del algoritmo ayuda a comprender mejor estas características del algoritmo.

En segundo lugar, en su mayor parte, dentro de un subcampo específico de aprendizaje automático, la mayoría de las matemáticas se basa en relativamente pocas ideas. Por ejemplo, en SVM, básicamente necesita saber sobre álgebra matricial, cálculo matricial y sobre el lagrangiano. Del mismo modo, en PGM, necesita conocer los conceptos básicos de probabilidad y estadística. Entonces, si bien puede parecer desalentador al principio, solo necesita pasar un tiempo aprendiendo esos conceptos particulares en matemáticas para sentirse cómodo con ese tema.

Finalmente, puede usar los consejos aquí para comprender mejor el algoritmo: la idea básica es hacer múltiples pases, donde comienza con una imagen de alto nivel y completa los detalles de nivel inferior en cada pase posterior.

La respuesta corta es que la comprensión del algoritmo siempre llega a las matemáticas en algún momento.

Es cierto que si no eres un investigador de aprendizaje automático, sino más bien un profesional, realmente no lidias con las matemáticas o la lógica interna del algoritmo a diario.

Sin embargo-

Realmente no puedes entender un algoritmo sin entender toda su lógica. Obviamente, puede ejecutarlo o incluso obtener resultados decentes, pero la precisión o el tiempo de ejecución pueden verse afectados por el hecho de que no hizo coincidir completamente su problema comercial con el algoritmo específico que está ejecutando, y no pudo ajustar el algoritmo para tus necesidades.

Soy un científico de datos, pero las matemáticas detrás de ML no son realmente mi zona de confort. Aún así, reconozco lo importante que es e intento profundizar en él cada vez que puedo y especialmente cuando estoy a punto de aplicar un nuevo modelo de aprendizaje automático.

También es bueno conocer las matemáticas y la lógica de los algoritmos simplemente porque eso es lo que les gusta preguntar a los entrevistadores en las entrevistas de trabajo de ciencia de datos.

Para empezar, puede omitir algunas de las matemáticas complicadas. Porque tu mente no pudo absorber tanta información de una sola pasada.

Aquí hay algunos pasos:
Paso 1 – aprende sobre el flujo del algoritmo
Paso 2 : aprenda las matemáticas detrás de esto, lo que hace que los datos derramen el resultado deseado.
Paso 3 : haga una lluvia de ideas sobre cómo se resuelve la solución usando esas matemáticas.
Paso 4 : intente formular sus ideas y soluciones utilizando otros conceptos matemáticos.

Lea todo el algoritmo desde cero, teniendo en cuenta el Paso 1.
Lea nuevamente el algoritmo completo desde cero, esta vez tenga en cuenta el Paso 2.
y así.

Cada vez que necesita estudiar un algoritmo completo desde cero, solo cambia su objetivo.
Nota : –
No es necesario ir más allá si el objetivo anterior no se ha resuelto.
Intenta resolver las matemáticas usando un pequeño conjunto de datos de muestra en copia y bolígrafo.
Intente visualizar el flujo del algoritmo, vea las conferencias en video si es posible.

¿Qué quieres hacer?
Si solo necesita usar modelos existentes en su tarea, entonces está bien entender solo el proceso general (es decir, qué hace, qué datos toma, qué produce como salida, etc.) y qué hace su conjunto de parámetros relacionados . Puede tratarlos como herramientas, cada uno con sus propias ventajas y desventajas y trabajar a partir de eso.

Sin embargo, si desea mejorar un modelo existente, o hacer uno nuevo por su cuenta, o entender por qué algunas partes se comportan de una manera determinada, entonces no hay otra manera. Lo mejor que puede hacer sin las matemáticas es diseñar modelos existentes, si tiene suerte, su modelo modificado puede tener una mayor precisión que el prototipo. Pero no creo que nadie pueda llegar lejos con ese enfoque.

Si quieres jugar con ML durante mucho tiempo, independientemente de tratarlos como herramientas o no, aún te recomiendo que obtengas una sólida formación en matemáticas porque es esencial. Con una mejor comprensión matemática, puede leer el documento más rápido y eso le ahorraría mucho tiempo.

Debe centrarse en su propia comprensión del algoritmo y su modelo interno de cuáles son los puntos más importantes.

Existe una enorme cantidad de complejidad innecesaria en campos como la ciencia y la tecnología, así como en las finanzas. En finanzas, gran parte es intencional, para confundir a los desprevenidos y vender algo. Y la ciencia y la tecnología son muy inmunes a tales casos, aunque es cierto que hay científicos, incluso brillantes, que tienen dificultades para expresar sus trabajos con claridad, y hay otros que son maestros en explicar su trabajo de maneras (increíblemente) simples.

Solo recuerda el famoso dicho de Einstein de que “las cosas deberían ser lo más simples posible, pero no más simple que eso”. No se deje intimidar por la complejidad superficial y la notación innecesariamente compleja, en su lugar, elabore su propio modelo interno y comprenda de qué trata el tema y cuáles son los puntos más importantes.

Esta capacidad de descubrir por sí mismo lo que es importante es absolutamente esencial en la construcción de conocimiento, en lugar de solo recibir flujos interminables de información. Por lo tanto, nunca piense en términos de “perderse en las matemáticas”, en lugar de eso piense en crear su propia abstracción y jerarquía de importancia, ya que de eso se trata el verdadero aprendizaje.

Sus modelos internos a veces estarán equivocados, y eso está bien. El proceso de descubrir qué abstracciones, modelos y comprensión eran simplificaciones excesivas, o tal vez simplemente erróneas, también es parte del aprendizaje y la creación de conocimiento.

En resumen, concéntrese en lo que cree que es importante e intente comprenderlo, en detalle, y no se preocupe por perderse el resto. Si te quedas con él, lo confirmarás y lo resolverás más tarde de todos modos.

Si te pierdes en matemáticas, no entiendes el algoritmo. No hay diferencia entre algoritmos y matemáticas: son exactamente lo mismo. Las “ideas” tampoco son un sustituto.

Comprensión del algoritmo = capacidad de implementarlo sin memorizar ningún código y explicar qué sucede exactamente y por qué. No tiene que conocer todas las pruebas de corrección y garantía de convergencia, pero no confunda el algoritmo y el código.

Comprender ML en profundidad es muy importante porque muy a menudo no hay garantía de que su solución funcione. Para elegir el que probablemente sea mejor que los demás, necesita ver la conexión entre el problema en sí, formulado en una notación matemática estricta (que no es una tarea simple en sí misma) y el método que se propone como solución.

Además, explicar el algoritmo más adelante como “tomamos esto y lo multiplicamos por eso y calculamos ese material desde la biblioteca” no es lo que esperarían sus asesores o colegas.

Comprender los algoritmos sin las matemáticas es básicamente como decir: “Sé cómo construir un rascacielos si alguien me dio los planos, pero no sé por qué esta viga va aquí o por qué este tipo de concreto se usa aquí en comparación con otro en otro lugar. “Si desea modificar los problemas de diseño o depuración que probablemente surjan, necesitará una comprensión más profunda.

Es similar con ML. Si desea modificar el algoritmo o entender por qué no funciona para un problema dado, ayuda mucho si comprende las matemáticas.

Dicho esto, muchas personas usan el aprendizaje automático antes de entenderlo profundamente. No hay vergüenza tampoco. Muchas herramientas de ML son lo suficientemente comunes como para que pueda usarlas sin una comprensión matemática profunda.

El enfoque que adoptes depende de tu objetivo final. Si desea construir cosas rápidamente, no es necesario comprender las matemáticas, pero existe una buena posibilidad de que las construya mejor y pueda solucionar los problemas más rápidamente si comprende las matemáticas.

Creo que encontrará diferentes escuelas de pensamiento alrededor de esto dependiendo de la preferencia y su enfoque de elección.

Personalmente, nunca deja de molestarme a menos que entienda lo que estoy usando por completo (al menos en algún momento). Lo hago porque necesito rascarme una picazón. Cuando estaba en la universidad, recuerdo haber implementado varios algos de ML desde cero para saciar este deseo.

Pero cuestionaría la utilidad real de un conocimiento tan profundo para la mayoría de las personas que desean utilizar ML. No digo que no sea útil, pero posiblemente no sea proporcionalmente útil en comparación con el tiempo / esfuerzo requerido para comprender las cosas.

Si lo está estudiando con el objetivo de comprenderlo, lo desglosaría y lo revisaría y vería una conferencia o leería un trabajo o haría una presentación hasta que lo entienda. Si cava, generalmente puede encontrar algún buen material en casi cualquier concepto importante.

Pero también creo que el LD se está convirtiendo rápidamente en una herramienta común muy común y cercana para las personas que no codifican para ganarse la vida para obtener respuestas y probar ideas, y dudo que la mayoría de esas personas alcancen este nivel más profundo de comprensión.

Creo que es probable que algún tipo de alfabetización sobre cuándo usar qué algoritmos y sus limitaciones y beneficios clave se eleve a la conciencia general en un nivel más alto / cualitativo para beneficio práctico, y pronto será aceptado como una norma / comprensión suficiente para un amplio gama de tareas y aplicaciones.

La comprensión de los principios de funcionamiento de los algoritmos es muy importante en ML, al igual que en cualquier campo de CS, y actúa como el primer paso para comprender las matemáticas detrás de dichos algoritmos. Lo bueno de comprender las matemáticas es que puedes hacer tus propios algoritmos de ML o hacer modificaciones a los existentes.

Por lo tanto, si la idea es desarrollar nuevos enfoques novedosos, se necesita una gran experiencia matemática, pero normalmente si se trata de implementar las cosas, las personas que construyen los algoritmos normalmente escriben pseudocódigo para que cualquiera pueda implementarlos sin la necesidad de comprender el teorías enteras detrás.

Por lo tanto, la idea es tratar de trabajar con el pseudocódigo al principio e implementar el algoritmo, luego usar procedimientos de depuración, como puntos de interrupción, para comprender el algoritmo más al menos qué está haciendo y qué cálculos está llevando a cabo, la idea es usted verá rápidamente el algoritmo en acción antes de dedicar más tiempo a la formulación matemática.

Una vez que esté impresionado por las capacidades de dicho algoritmo, debe ir más allá para comprender las teorías detrás de él.

De esta manera, solo conocerá algoritmos útiles con más detalle, mientras que conocerá los menos útiles. Por lo tanto, para un algoritmo súper útil, es mejor comprender las matemáticas y los principios de funcionamiento, mientras que para los menos útiles es suficiente entender los algoritmos.

Espero que esto ayude.

¡Necesitas ambos! A menos que pueda hacer ambas cosas bien, no puede considerarse experto en el aprendizaje automático.

El aprendizaje automático es más o menos la intersección de estadísticas, álgebra lineal, estructuras de datos y algoritmos.

Si te concentras demasiado en las matemáticas, entonces solo eres un matemático que programa un poco.

Si te concentras demasiado en las estructuras de datos y los algoritmos, entonces solo eres un programador que sabe un poco de matemática.

Para hacer algo útil, debes hacer ambas cosas muy bien. Esto no importa si está haciendo una investigación de aprendizaje automático o si es un profesional en el campo.

También existe el peligro de conocer demasiado las estructuras de datos y los algoritmos sin las suficientes matemáticas subyacentes. Es muy fácil automatizar lo incorrecto con el aprendizaje automático. También puede obtener resultados bastante buenos simplemente aplicando modelos de aprendizaje automático a ciegas.

Simplemente ver que algo funciona hace que algunas personas piensen que realmente entienden lo que están haciendo. Sin embargo, en realidad, simplemente se están abriendo camino a través del aprendizaje automático.

Esto puede parecer bastante duro, pero el costo de un mal “experto” en aprendizaje automático es la pérdida de vidas y la pérdida de millones de dólares (es decir, Knight Capital, el automóvil autónomo Teslas).

Entonces, si tiene que errar por un lado, le recomendaría que se concentre en las matemáticas. Saber demasiadas matemáticas sin habilidades de programación fuertes probablemente no matará a las personas. Ser un buen programador y pensar que sabes matemática.

Creo que definitivamente es posible usar muchos modelos de aprendizaje automático sin comprender todas las matemáticas. Los productos basados ​​en la nube de Google y Amazon son un gran ejemplo de eso. Y muchas aplicaciones innovadoras usan productos ML solo por diversión. Pero entonces realmente los estás usando como una caja negra …

En mi opinión, si desea analizar / clasificar / segmentar datos, es importante al menos comprender lo que está sucediendo con sus datos. ¿Está siendo escalado, sesgado, girado …? La única forma de hacerlo es mirar las matemáticas debajo del capó y determinar cómo funciona el algoritmo. Esto lo ayudará a decidir cuándo cambiar funciones específicas, normalizar datos, etc.

Sin embargo, antes de hacer esto, averigüe si un algoritmo de ML es adecuado para sus datos. ¿Cuáles son las propiedades asociadas con sus datos? ¿Los datos son grandes / pequeños? ¿Es la rotación invariante? ¿Es altamente variable? Algunos algoritmos solo funcionan para ciertos tipos de datos.

Por lo general, cuando comienza a usar un modelo ML, no comprenderá todas las matemáticas con gran detalle, probablemente solo una descripción general de cómo funciona. Aprenderá a descubrir cómo funciona el algoritmo cuando comience a ajustar los parámetros y realmente comience a usarlo.

El aprendizaje automático, como campo, no es una tecnología resuelta. Todavía es un campo muy orientado a la investigación y, por lo tanto, no se pueden omitir las complejidades matemáticas que caracterizan a los algoritmos, porque de lo contrario cuando aplique estos algoritmos para resolver problemas, simplemente no tendrá la * experiencia * técnica para decir con confianza que un Algoritmo particular es el más adecuado para resolver un tipo particular de problema que enfrenta. Y en el mundo real, los problemas que enfrenta serán variados y, en la mayoría de los casos, invisibles, por lo tanto, no tendrá ningún método para resolverlos. Ahora, si hubiera omitido las matemáticas que hacen que un algoritmo sea útil, o más importante * no * * útil *, estaría perdido.

En pocas palabras, sin sofisticación matemática y comprensión, sus soluciones son, en el mejor de los casos, poco confiables.

Estoy completamente de acuerdo con Roman, Borislav y todos los demás que te están dando consejos similares, si lo que buscas es convertirte en un desarrollador de ML. La comprensión de un nivel superior, la capacidad de utilizar una arquitectura existente o ajustar un marco establecido, etc., puede ser suficiente si lo que está haciendo implica investigación ayudada por ML en lugar de investigación en el campo de ML. Para esto último, debe comprender las matemáticas y los conceptos en los niveles más fundamentales para que sean útiles y comercializables. Sin una comprensión real, no podrá innovar mucho y es probable que tenga dificultades para cambiar y depurar los sistemas tan pronto como se descarrilen.

Si bien es bueno comenzar lo más rápido posible. Debería comenzar a programar lo más rápido posible. Pero antes de que cualquier producto sea producido para uso comercial o para decisiones críticas, es importante que comprenda el algoritmo. Primero, ayudará en sus habilidades de programación, por ejemplo, para hacer programas más eficientes y programas de solución de problemas.

En segundo lugar, y lo más importante, debe tener una buena comprensión teórica de las matemáticas para explicar a los usuarios de su programa exactamente cómo se toman las decisiones. Muchas personas simplemente suponen que el aprendizaje automático es imparcial y los resultados son válidos sin comprender los supuestos que han hecho.

Una comprensión general de las matemáticas es definitivamente útil. Pero no hay necesidad de estudiar matemáticas detrás de cada algoritmo. La implementación es igualmente importante. Incluso los investigadores más experimentados pueden no tener toda la comprensión de todas las matemáticas detrás de todos los algoritmos. La mayoría de los investigadores se concentran en un área estrecha de aprendizaje automático y estudian y aplican ideas matemáticas solo a esa área. Si quieres convertirte en un profesional de aprendizaje automático, necesitas una muy buena comprensión de los algoritmos, incluso si te faltan algunas matemáticas.

Eso depende del lado en el que desee trabajar, si está estudiando por simple comprensión del algoritmo, entonces solo el algoritmo está bien.

Cuando llegamos a la investigación y la implementación, o estudiar el algoritmo es muy importante, debe conocer bien las derivaciones porque realmente no puede obtener la respuesta deseada.

Como estudiante y ex estudiante de ingeniería, tuve mi proyecto de último año basado en ciertos conceptos de Machine Learning, mi experiencia personal es que si los requisitos son muy específicos y peculiares, debe personalizar el código, solo puede hacerlo si sabes las matemáticas básicas detrás de eso.

Soy débil en matemáticas, así que tuve que pedir ayuda, pero si puedes diferenciarte e integrarte bien, no será un problema.

La esencia básica es que si desea comprender un algoritmo, simplemente puede leer las derivaciones adjuntas, pero si desea implementarlas, ¡no hay forma de saltarse las complicadas matemáticas!

Ummm … los algoritmos son una expresión de las matemáticas. Si no comprende la matemática de un problema, no comprende la sentadilla.

Curiosamente, esta pregunta representa una de las últimas paradojas, es decir, la Prueba de Turing y (para personas con inteligencia artificial de los años 80, como yo) ¡La sala china de Searle!