¿Las redes neuronales artificiales pueden modelar interacciones multiplicativas?

Existe una prueba matemática de que puede aproximar cualquier función continua a cualquier grado de precisión con una red de dos capas.
Teorema de aproximación universal

Si solo desea que una red aprenda la multiplicación (que es algo estúpido que hacer pero tal vez le enseñe algo), puede usar los bits de los números que desea multiplicar (funcionará para cualquier representación con un número fijo de bits (unsigned /igned int, float, double, …) o podría usar dos neuronas de entrada, una para cada número y una neurona de salida. En el segundo caso, tendría que normalizar sus datos.
Sería interesante ver cuántas unidades ocultas necesitas para hacer esto.

Si desea modelar algo más donde la interacción multiplicativa es solo una de las cosas importantes para generar la salida correcta, aún puede hacerlo con una red neuronal de dos capas, pero esto podría ser ineficiente. Sin embargo, existen técnicas para hacer esto más eficiente.

Puede usar algo de preprocesamiento en sus entradas extendiendo las dimensiones de entrada por algunos productos que sospecha que son importantes
entonces un vector de entrada [x0, x1, x2] podría convertirse en [x0, x1, x2, x1 * x2]. También podría incluir proporciones.
También podría complicar la arquitectura de la red neuronal y tener algunas neuronas en cada capa que se multiplican entre sí para formar entradas adicionales para la siguiente capa (al igual que agregar un sesgo). Esto haría un poco más difícil calcular las derivadas de la función objetivo.

Estoy de acuerdo con Anónimo (¿por qué ocultar su identidad para esa respuesta?) En que debería intentarlo.

Sin embargo, también diré que sí, puede. Puede entrenar fácilmente una red neuronal de tres neuronas para imitar cualquier función booleana básica, y puede hacer un poco más sumador combinando algunas de estas funciones.

La multiplicación binaria es básicamente un número de cambios, AND y adiciones, todo lo cual debería ser trivial si ha dominado los componentes en el párrafo anterior.

Por lo tanto, en el peor de los casos, puede imitar un multiplicador entero binario utilizando redes neuronales.

Estoy seguro de que el backprop o algún algoritmo genético te darán mejores resultados aunque 🙂

¿Por qué no probar esto usted mismo?
Produzca conjuntos de entrenamiento y prueba donde sume o donde multiplique dos números. Defina un rango de números para el conjunto de entrenamiento y experimente haciendo que el conjunto de prueba esté en el mismo rango o en uno diferente.
El caso de sumar dos números, con la prueba establecida en un rango diferente, puede mostrar resultados sorprendentes.

Creo que este documento puede resultarle útil:

https://www.inf.ed.ac.uk/publica