Las redes neuronales artificiales son bastante fáciles de construir.
La cantidad de almacenamiento por neurona suele ser igual a la cantidad de conexiones entrantes que tiene.
En el cerebro, estas interconexiones se llaman “sinapsis”.
- ¿Por qué los fabricantes de computadoras portátiles dejaron de producir computadoras portátiles con pantalla de 14 pulgadas?
- ¿Cuál es la mejor computadora portátil para diseño gráfico en India en 2017?
- Mi nueva computadora portátil quiere que use HP Security Manager, pero todas mis contraseñas están en Chrome. ¿Debo cambiar?
- ¿Cuál es la mejor configuración para una computadora portátil?
- ¿Debo comprar una computadora portátil para juegos o comprar una computadora portátil de oficina barata y construir una PC para juegos?
Para cada sinapsis, necesitamos el número de identificación de la neurona de la que proviene y un “peso”. El número de bytes en la entrada depende del número de neuronas en la red. Un byte sería suficiente para solo 256 neuronas. Dos bytes para 65536, tres bytes para alrededor de 16 millones y cuatro bytes para alrededor de 4 mil millones.
Probablemente sea seguro decir que podría simular más de 16 millones de neuronas, por lo que iremos con un número de 4 bytes para “qué neurona se conecta aquí”.
Luego, necesitamos un “peso” – cuán importante es esta entrada – generalmente será una cantidad con signo – es difícil decir qué tan precisa debe ser – así que seré optimista y diré que 1 byte firmado es suficiente.
Finalmente, necesitamos un valor para decir si la neurona alcanzó su potencial para disparar … eso es solo un poco en su sistema.
Entonces, el almacenamiento total necesario es de 5 bytes multiplicado por el número de sinapsis más un bit por neurona para el bit “¿se disparó?”.
En un cerebro humano, hay alrededor de 7,000 sinapsis para cada neurona … por lo que el requisito de almacenamiento por neurona se ve reducido por el costo por sinapsis.
Una laptop Win10 típica tiene entre 4 y 16 Gbytes … supongamos que es una laptop de gama alta.
Entonces, con 5 bytes cada uno, podríamos almacenar entre aproximadamente mil millones y alrededor de 3 mil millones de sinapsis, lo que nos da entre 140,000 y 420,000 neuronas.
El tiempo de cálculo para evaluar esta red sería un poco grande.
Ingenuamente, para cada incremento de tiempo y para cada sinapsis, necesitaría hacer una búsqueda de memoria aleatoria para obtener el estado de la neurona de entrada, luego un condicional booleano, luego agregar el peso al total de la neurona de salida si se disparó … luego una prueba condicional por neurona para ver si se disparó la TI y almacenar el resultado.
140,000 a 420,000 recuperaciones de memoria aleatorias serían MUY malas para la memoria caché: este programa estaría limitado por el rendimiento de la memoria con un 100% de seguridad … casi cada paso sería una falta de memoria caché.
Calcula alrededor de 100ns por sinapsis para leer los datos; el resto probablemente sea insignificante … por lo que nuestra computadora portátil de memoria grande podrá realizar un ciclo con un paso de tiempo de aproximadamente 0.4 segundos … ¡lo que realmente apesta!
En realidad, sería mejor usar la GPU en lugar de la CPU, pero aun así, los patrones de acceso a la memoria matarían el rendimiento.
Un cerebro humano real tiene un billón de sinapsis, por lo que es aproximadamente 2 millones de veces más complejo que nuestra simulación de computadora portátil. Cada neurona puede dispararse un par de veces por segundo, que es sobre lo que puede hacer nuestra simulación.
Estos cálculos son MUY ingenuos, y hay mucho más sutileza en lo que está sucediendo aquí. Donde me he equivocado, ha sido del lado optimista.
Está bastante claro que una computadora portátil no es rival para un cerebro humano.