Microsoft está trabajando con mucho ahínco en lo que se refiere a redes neuronales, y ha puesto a disposición de la gente su toolkit de APIs que trabajan con esta tecnología. En esta ocasión han liberado la versión 2.0 Beta y se espera que este conjunto de herramientas permita a los desarrolladores dar un paso firme hacia un cómputo más inteligente.
Microsoft Cognitive Toolkit es el nuevo nombre para su Computational Network Toolkit (CNTK), el cual se desarrolló inicialmente para uso interno, por los científicos que trabajan en la empresa y que querían trabajar sobre aprendizaje profundo en áreas como reconocimiento del habla o visión por computadora, entre otros. Desde abril de 2015 está en código abierto (inicialmente en Codeplex y ahora en GitHub) donde se ha visto que ha llamado poderosamente la atención de los programadores.
De acuerdo a la descripción de GitHub, el CNTK, de Microsoft Research, es un conjunto de herramientas unificadas de aprendizaje profundo que describen a las redes neuronales como una serie de pasos computacionales a través de una gráfica dirigida.
Los nodos hoja representan los valores de entrada de la red, o los parámetros de entrada, mientras que otros nodos representan las operaciones matriciales de estas entradas. CNTK permite combinar modelos populares como redes neuronales de propagación hacia atrás (es decir, cuando la red requiere modificar sus pesos para llegar a una solución buscada), o bien redes convolutivas, entre otros temas Implementa los gradientes de descenso estocásticos (propagación de los errores hacia atrás, como ya mencionamos), con aprendizaje que permite diferenciación y paralelización entre múltiples GPUs y servidores.
Esperamos que al comunidad saque ventaja del CNTK para compartir ideas más rápidamente a través del intercambio de código de trabajo abierto. Entre las características más importantes de esta nueva versión están:
- Se pueden usar los APis con Python y C++
- Hay nuevos ejemplos en Python, así como tutoriales
- Soporta serialización de protocolos de buffers
- Soporta algoritmos como Fast R-CNN
- Nueva forma automatizada de instalación
- Mejoras en la biblioteca de evaluación del CNTK incluyendo soporte para los APIs
Frank Seide, uno de los investigadores principales del recientemente formado grupo de IA y arquitecto clave del toolkit, dice que «hemos tomado esto -de ser una herramienta de desarrollo- a convertirse en un sistema de producción».
Chris Basoglu, ingeniero que ha tenido un papel importante en este desarrollo ha dicho: «Una clave para usar el CNTK es la habilidad de escalar eficientemente entre múltiples GPUs y múltiples máquinas en conjuntos masivos de datos».
El sistema se ha diseñado para correr en múltiples GPU y ha sido optimizado para sacar ventaja del hardware de NVIDIA y de las capacidades de la red Azure y de sus N máquinas virtuales. La versión 2.0 del CNTK ya puede usarse por cualquiera pero cabe decir que se sigue usando internamente en Microsoft Research.
CNTK es pionero en su propio lenguaje de descripción de redes, Brainscript. Pero debido a la necesidad de hacerlo más popular, se ha incorporado el grupo de APIs para C++ y Python. También soporta aprendizaje reforzado, de nuevo, en respuesta a las peticiones de la comunidad de desarrolladores.
Al igual que TensorFlow de Google, con CNTK se abren los horizontes de la IA.
Referencias: Microsoft