¿Es realmente necesario comprender todas las matemáticas detrás de las redes neuronales para usarlas?

Acabo de escanear la página en arxiv.org Redes convolucionales recurrentes a largo plazo para reconocimiento y descripción visual por Jeff Donahue y otros. Elegí esto como una representación del tipo de sistema sobre el que está preguntando. Su contenido requerirá un estudio cuidadoso y lento, pero no contiene cálculos. Algunas notaciones lógicas ampliamente utilizadas como ht ∈ RN pero nada que incluso requiera intuición sobre la convolución . Recuerdo el tiempo, hace años, que pasé tratando de dominar un artículo sobre el uso del Teorema de Bayes para reconocer señales. Me llevó un mes pero pude acondicionar una máquina que funcionaba según los principios de la red neuronal para que funcionara correctamente. Con la comprensión que el mes de estudio proporcionó, escapamos de una trampa de bucle en la que la capacitación adicional del sistema borró el aprendizaje previo y el reaprendizaje del comportamiento olvidado borró el aprendizaje posterior.
Su pregunta pregunta específicamente si la comprensión de las matemáticas involucradas es un requisito previo para usar tales redes neuronales. Mi respuesta es, por analogía, trabajar con animales que deben ser entrenados: perros pastores, delfines, loros, etc. No es necesario comprender cómo funcionan sus cerebros para entrenarlos. Es necesario comprender cómo responden a varias zanahorias y palos. Cuánto tiempo recuerdan el entrenamiento y qué los hace olvidar. Si bien es útil, comprender las matemáticas solo es absolutamente necesario si se intenta extender un concepto reestructurando sus conexiones. OTOH, se necesita una exploración experimental de la capacidad de una red determinada para determinar sus límites operativos. Hacer un buen trabajo al respecto, mientras que registrar los resultados puede requerir más matemática que lograr al menos una comprensión superficial de la forma en que se pretende que funcione la red.
Una última observación: la programación de una simulación de una red neuronal podría hacerse siguiendo el patrón de sus conexiones. No se requieren matemáticas superiores. Por otro lado, encontrar atajos, si se enfrentan con recursos computacionales limitados, requeriría una comprensión matemática más profunda.

No, en realidad no, pero la matemática detrás de las redes neuronales no es realmente tan complicada.

Para cada nodo en la red, toma la suma de los productos de los nodos de la capa anterior y sus pesos, y luego los transforma con una función muy simple como sigmoide o ReLU. Para actualizar los pesos, toma la derivada del error de la capa de salida y la propaga hasta la capa de entrada utilizando la regla de la cadena. Eso es matemáticas de secundaria.

Lo difícil de las redes neuronales no son las matemáticas. Está haciendo que todo encaje y entendiendo cómo y cuándo aplicar diferentes arquitecturas.

Soy un gran defensor de comprender al menos la notación de álgebra lineal (algorítmica) en la que los algoritmos generalmente se expresan, pero no hay un beneficio real, por lo que puedo ver, de poder calcular sus propias derivadas parciales para la retropropagación a menos que planee crear su propia función de activación.

Creo que es beneficioso saber codificar una red neuronal desde cero. Le ayudará a comprender mejor lo que realmente está sucediendo y los cambios necesarios cuando está depurando / configurando su implementación.

Te aconsejo que primero aprendas a escribir uno desde cero y luego comiences a usar las API. Realmente no es tan difícil de entender si comienzas adquiriendo la intuición necesaria.

Puede usarlos como cuadros negros hasta cierto punto, pero si su aplicación está empujando las limitaciones de las redes neuronales, necesitará las matemáticas para poder personalizarlas y optimizarlas para que se ajusten mejor a sus necesidades.

Segundo Carlos, puedes usarlos como recuadro negro, hasta cierto punto. Te recomiendo que comiences con una biblioteca de aprendizaje profundo de alto nivel, como Theano, Torch, Caffe, …

En mi caso, cuando comencé con el aprendizaje profundo, aunque tenía experiencia en aprendizaje automático, solo podía entender algunos de los conceptos matemáticos.

Una cosa que me impulsó fue leer el código fuente en idiomas que no son tan complicados y jerárquicos como MATLAB.

Absolutamente no. Es súper divertido si conoces suficiente cálculo para entrar allí y entenderlos, pero parte de la belleza es que no necesitas saber tanto para usarlos. Básicamente son una caja negra.

More Interesting

¿Cuál es la mejor manera de convertir voz a texto?

¿Cómo pueden los ingenieros industriales ser parte de la próxima revolución industrial, es decir, la inteligencia artificial?

¿Cómo funciona el algoritmo de ciencia de datos / aprendizaje automático de Piedmont Media para clasificar guiones de películas?

¿Es mejor aprender IA sobre ML, en caso de que ML se vuelva obsoleto?

Cómo usar la programación probabilística con marcos como Meteor.js, y ¿es posible usar bibliotecas como Figaro en aplicaciones JavaScript o tiene que codificar las suyas propias?

¿Cuándo avanzará la composición musical algorítmica hasta el punto de desplazar una importante cuota de mercado de la música creada por humanos?

¿Por qué la gente cree que la inteligencia artificial nunca desarrollará una capacidad general independiente de aprender?

¿Qué se debe hacer si él / ella tuvo éxito en el desarrollo de una inteligencia artificial?

¿Cómo se sienten los investigadores y practicantes de Inteligencia Artificial y Aprendizaje Automático sobre los comentarios recientes de Stuart Russell sobre los peligros de la IA que parecen respaldar comentarios similares hechos por Elon Musk y Stephen Hawking?

¿Existe un buen libro que cubra todo lo que necesita saber para el desarrollo de IA?

Noam Chomsky: Inteligencia: ¿Cómo desarrollamos representaciones invariantes en el cerebro? ¿Es posible replicar lo mismo en IA?

¿Cómo podría justificarse Ray Kurzweil si la singularidad no ocurre en 2029?

Cuántos 'nodos' funcionales una vez integrados son; (a) requerido, (b) óptimo, para que el "cerebro global" logre una conciencia de funcionamiento coherente (sensible)?

¿La red de Google realmente se enseñó a reconocer gatos en un mar de imágenes aleatorias?

¿Cuál es el nombre de este modelo matemático: [matemáticas] \ begin {eqnarray} \ mbox {output} & = & \ left \ {\ begin {array} {ll} 0 & \ mbox {if} \ sum_j w_j x_j \ leq \ mbox {umbral} \\ 1 & \ mbox {if} \ sum_j w_j x_j> \ mbox {umbral} \ end {array} \ right. \ end {eqnarray} [/ math]?