Si enseñamos a un programa de aprendizaje automático cómo hacer operaciones aritméticas, ¿sería más rápido o más lento que los humanos?

Su pregunta tendría más sentido si, en lugar de considerar las entradas en las imágenes, tenemos una sola imagen que se ve así:

[matemáticas] 342642346283 \ veces 7249247892 = [/ matemáticas]

Y el objetivo es tener una única red neuronal para resolverlo. Por supuesto, internamente usaría sumadores y multiplicadores, pero no representamos explícitamente el número completo, por lo que terminaría reconociendo dígitos en números en el rango 0–9, encontrando un separador entre ellos y luego aplicando la multiplicación ( u otra operación) algoritmo para números de varios dígitos.

Resulta que esto es relativamente fácil de hacer para números cortos con redes recurrentes bastante simples, pero los números grandes son más difíciles, al igual que para los humanos, porque necesita rastrear demasiadas cosas a la vez. En otras palabras, el sistema no puede aprender cómo hacerlo. Aún así, existen técnicas para solucionarlo mediante métodos más sofisticados, como la atención. El resultado es este: si puede hacer que aprenda esto, podrá hacerlo mucho más rápido que los humanos (pero millones o más veces más lento que si solo usara una computadora para multiplicar números). Las razones son dos: las CPU modernas aún son más rápidas que las neuronas, incluso si simula una forma muy compleja de hacer algo simple, y arquitectónicamente los humanos tienen una pequeña memoria de trabajo (The Magical Number Seven, Plus o Minus Two – Wikipedia), para que puedan No paralelice la computación como una red neuronal de computadora podría tener que usar (muy lento) lápiz y papel para rastrear resultados intermedios.

Por supuesto, este problema solo es interesante en principio, porque en la práctica no querrá utilizar el aprendizaje automático para esto. Incluso si construimos un sistema de IA general, en efecto usaría el equivalente de una calculadora para esto en lugar de tratar de aprender cómo hacer esto de la manera en que lo hace un alumno de primer grado.

Mucho más rápido en números más grandes, siempre que omitamos la limitación que mencionó sobre no usar la ALU (por supuesto, se usará la ALU).

Considere la diferencia entre lo siguiente:

1 + 3

vs

34637847827634589.547367433424 * 4387529845928749.8546738743747

Para un humano, esa es una gran diferencia, y para la mayoría el segundo es simplemente imposible de calcular sin ninguna herramienta. Para una máquina, la diferencia es bastante pequeña: más símbolos para interpretar en valores entendibles por la máquina, pero en general el mismo principio. La suma o la multiplicación son igualmente fáciles de manejar.

Ahora, usted mencionó que la ALU no debe usarse. Por supuesto que debería. ¿Por qué hacerlo ineficiente cuando no es necesario? Esta es una preocupación que tengo sobre el frenesí actual del aprendizaje automático: muchas tareas no son adecuadas / óptimas para el aprendizaje automático. No uses un martillo para todo.

Si aún desea utilizar el aprendizaje automático para los cálculos, continúe, pero es millones de veces menos eficiente que una operación ALU directa. Probablemente todavía sería mucho más rápido y más seguro que un humano.

En general, los humanos apestan al hacer cálculos sin herramientas, a menos que tenga un caso raro de sabio idiota.

Como super rápido, porque no piensan, solo ejecutan … por ahora.