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.
- ¿Cuáles son los pros y los contras comparativos de usar Python, MATLAB / Octave y R para el análisis de datos y el aprendizaje automático?
- ¿Qué quiere decir con redes neuronales lineales profundas / no lineales?
- ¿Cómo funcionan los algoritmos de aprendizaje automático de Google?
- ¿Cuáles son algunos de los documentos fundamentales en el aprendizaje automático / algoritmos analíticos?
- ¿Qué significa 'modelado de conjunto'?
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.