# Procesadores dedicados a redes neurológicas y procesamiento de tensores



## Hellmut1956 (May 30, 2017)

Hola amigos, quiero compartir con Ustedes unas informaciones sobre avances en unidades de procesamiento para redes neurológicas y el procesamiento de tensores. Vayamos por partes:

Redes neurológicas:







Las redes neurológicas aplican porcentajes de las relaciones a datos suministrados! Tomemos como ejemplo el círculo gris arriba en las entradas. Este punto tiene relaciones a los 4 círculos grises en la segunda columna. Cada uno de estos enlaces tiene cierto peso que se expresa en porcentaje a aplicar a los datos que entran al círculo gris arriba a la izquierda. De allí resulta que una unidad de procesamiento que implemente ese círculo gris aplica una multiplicación a cada dato que entra a ese círculo gris y pasa el resultado de cada una de las multiplicación que tienen lugar en los 4 enlaces que muestra el gráfico.

Eso mismo ocurre en cada uno de los círculo grises en la columna izquierda. El resultado de las sumas de todas las multiplicaciones que resultan de los enlaces al círculo superior de la segunda columna! Lo mismo ocurre en cada uno de los círculos de la columna central y esos a la vez llevan a los mismos cálculos en los 2 círculos grises de la columna izquierda.

Como pueden percibir, la red neurológica aplicada a los datos que aparecen a su izquierda requiere de un gran número de multiplicaciones y adiciones. Es por eso que actualmente domina el uso de las unidades de procesamiento gráfico, GPUs, como método de lograr una mayor eficiencia de la unidad comparándolo con el usar de procesadores normales.

Ahora resulta que redes neurológicas ejecutan 2 funciones que difieren algo entre si: Esta el entrenamiento de la red neurológica y una vez entrenada el aplicar la red neurológica entrenada a las funciones como es por ejemplo el reconocer de voces e imágenes. ya hace algún tiempo había escrito que para entrenar una red neurológica se requiere aplicar un grandísimo número de datos para su entrenamiento y que estudios habían resultado que el número de set de datos a suplir a una red neurológica está entre menos de 10 millones de set de datos y máximo alrededor de 50 millones de set de datos. El límite superior resulta de que se ha visto que la calidad de la red neurológica ya no aumenta después de unos 50 millones de sets de datos.

También de esto pueden ver que aplicando 10 millones de datos de 8 bits de ancho, esto requiere 8 círculos grises a la entrada, el número de multiplicaciones y adiciones se vuelve gigantesco! Apple,según dicen analistas, esta esperado que vaya a incluir una unidad de procesamiento especializada a redes neurológicas en sus smartphones!

En el contexto del artículo que describe esto se menciona que Google ya está por tener una implementación de una segunda generación del componente TPU, Tensor Processing Unit, TPU2.

Para hacerse una noción de lo complejo que son tales unidades TPU voy a presentar un número de fotos y gráficos que permiten, a mi opinión, de ver como aplicando las mas avanzadas tecnologías de semiconductores es posible generar unidades que permiten lograr una tremenda capacidad de los sistemas de inteligencia artificial resultante que se benefician mutuamente de los impresionantes avances de la ciencia en la realización de sistemas de inteligencia artificial informáticas!






Aquí una foto que muestra una TPU de primera generación que data de Marzo del 2016.











Unos datos sobre la capacidad de computación de estas TPUs:

Una TPU de segunda generación tiene una capacidad de procesamiento por componente de 180 TFLOPS y que 64 de estas unidades pueden ser combinadas para formar lo que Google llama TPU POD que resulta en 11,5 petaflops! Google quier hacer disponible tal TPU pod a científicos para sus desarrollos de forma gratuita.

El siguiente gráfico muestra la estructura de una TPU de primera generación:






Un plano de utilización y de posición de las funcionalidades mostradas en el gráfico anterior de la TPU de primera generación de Marzo de 2016!






Para aquellos que quieran leer el artículo sobre las TPUS, aquí el enlace!

Aquí el otro enlace al artículo sobre las redes neurológicas y Apple!


----------



## Hellmut1956 (Jul 1, 2018)

Acabo de encontrar este artículo sobre redes neurológicas convulsionares. Su objetivo es dar a aquellos que hacen sus programaciones no solo entender lo que con las siglas en inglés de CNN significan, sino también aprender como con la biblioteca NumPy permite implementarlo.


----------

