Implementación de redes neuronales – Comparativa Frameworks

por | Nov 28, 2017 | Bioinformatica, Inteligencia de negocio | 0 Comentarios

Características de frameworks

Los frameworks predominantes en el mercado para la implementación de redes neuronales son:

Tensorflow

Se puede considerar la referencia por excelencia en este ámbito y es el propio Google quien esta detrás de esta tecnología.

TensorFlow es una biblioteca open source enfocada específicamente a “Deep Learning”, se la considera de bajo nivel lo que proporciona mayores posibilidades de adaptación en decremento de la simplicidad de uso.

Proporciona una API de programación para Python, así como APIs de C++, Java y Go aunque estas últimas algo menos documentadas.

Theano

Se le considera una de las librerías más maduras y estables junto a Caffe, debido a que fue de las primeras en aparecer.

Theano es una librería de bajo nivel, al igual que Tensorflow y no esta enfocada propiamente al “Deep Learning”, sino a la optimización de computación numérica y el cálculo de gradientes de funciones de forma automática.

Proporciona una API de programación para Python y una excelente integración con Numpy, hecho que la convirtió en los inicios en una de las librerías más usadas para Deep Learning de propósito general.

Últimamente ha perdido mucha importancia debido al hecho de que no dispone de soporte multi-GPU, ni proporciona posibilidades de escalado horizontal.

Keras

Keras es una librería de alto nivel que funciona encima de Theano o Tensorflow.

Se caracteriza por un modelo de programación sin adornos, que maximiza la legibilidad y minimiza las líneas de código. Dispone de una documentación muy completa a pesar de llevar poco tiempo en el mercado.

Proporciona una API de programación para Python y R.

Caffe

Se le considera una de las librerías más maduras y estables junto a Theano, debido a que fue de las primeras en aparecer.

Caffe está centrado en la visión artificial y lo hace de una manera brillante.

Proporciona una API de programación para Python y Matlab para cambios sencillos, aunque si se quiere introducir cambios significativos deben de ser programados en C++ o en CUDA.

La documentación es confusa y la instalación es compleja debido a los problemas de dependencias de paquetes.

Torch

Torch es un framework científico open source popularizado por uso de compañías como Facebook Research y DeepMind antes de ser adquirida por Google. (actualmente han migrado a Tensorflow).

Proporciona una API de programación para Lua, esto provoca un gran rechazo entre la comunidad de desarrolladores puesto que no es un lenguaje muy extendido

DeepLearning4J

DeepLearning4J es desarrollada por Skymind.

La documentación es muy clara y proporciona multitud de ejemplos que facilitan su comprensión.

Proporciona una API de programación para Java, Clojure y Scala, esto provoca un gran interés puesto que la comunidad de programadores Java es de las mas grandes del mundo.

 

Comparativa de frameworks de redes neuronales

Una vez indicadas las principales características de cada uno de los frameworks, se muestra comparativas de precisión y de lineas de código utilizadas con cada uno de los diferentes frameworks

Clasificación por porcentaje de precisión de framework para funciones Tanh no lineales

Figura 1 – Clasificación por porcentaje de precisión de framework para funciones Tanh no lineales

Clasificación por porcentaje de precisión de framework para funciones ReLU no lineales

Figura 2 – Clasificación por porcentaje de precisión de framework para funciones ReLU no lineales

Comparativa de lineas de código necesarias para la implementación con diferentes frameworks

Figura 3 – Lineas de código necesarias para la implementación con diferentes frameworks.

Comparativa de lineas de código necesarias y lenguaje utilizado para la implementación con diferentes frameworks

Figura 4 – Lineas de código necesarias y lenguaje utilizado para la implementación con diferentes frameworks

Fuente: Deep Learning with Theano, Torch, Caffe, Tensorflow, and Deeplearning4J: Which One is the Best in Speed and Accuracy? de Vassili Kovalev en 2016

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *