Caffe2 - Introducción
En los últimos años, Deep Learning se ha convertido en una gran tendencia en Machine Learning. Se ha aplicado con éxito para resolver problemas previamente insolubles en Vision, Speech Recognition and Natural Language Processing(PNL). Hay muchos más dominios en los que se está aplicando Deep Learning y ha demostrado su utilidad.
Caffe (Convolutional Architecture for Fast Feature Embedding) es un marco de aprendizaje profundo desarrollado en Berkeley Vision and Learning Center (BVLC). El proyecto Caffe fue creado por Yangqing Jia durante su Ph.D. en la Universidad de California - Berkeley. Caffe ofrece una forma sencilla de experimentar con el aprendizaje profundo. Está escrito en C ++ y proporciona enlaces paraPython y Matlab.
Es compatible con muchos tipos diferentes de arquitecturas de aprendizaje profundo, como CNN (Red neuronal convolucional), LSTM(Memoria a corto plazo) y FC (Completamente conectado). Es compatible con GPU y, por lo tanto, es ideal para entornos de producción que involucran redes neuronales profundas. También es compatible con bibliotecas de kernel basadas en CPU comoNVIDIA, Biblioteca CUDA Deep Neural Network (cuDNN) e Intel Math Kernel Library (Intel MKL).
En abril de 2017, la empresa de servicios de redes sociales con sede en EE. UU. Facebook anunció Caffe2, que ahora incluye RNN (redes neuronales recurrentes) y en marzo de 2018, Caffe2 se fusionó con PyTorch. Los creadores de Caffe2 y los miembros de la comunidad han creado modelos para resolver varios problemas. Estos modelos están disponibles para el público como modelos previamente entrenados. Caffe2 ayuda a los creadores a utilizar estos modelos y a crear su propia red para realizar predicciones sobre el conjunto de datos.
Antes de entrar en los detalles de Caffe2, comprendamos la diferencia entre machine learning y deep learning. Esto es necesario para comprender cómo se crean y utilizan los modelos en Caffe2.
Aprendizaje automático frente a aprendizaje profundo
En cualquier algoritmo de aprendizaje automático, ya sea tradicional o de aprendizaje profundo, la selección de características en el conjunto de datos juega un papel extremadamente importante para obtener la precisión de predicción deseada. En las técnicas tradicionales de aprendizaje automático,feature selectionse realiza principalmente mediante inspección humana, juicio y conocimiento de dominio profundo. A veces, puede buscar ayuda de algunos algoritmos probados para la selección de funciones.
El flujo de aprendizaje automático tradicional se muestra en la siguiente figura:
En el aprendizaje profundo, la selección de funciones es automática y es parte del propio algoritmo de aprendizaje profundo. Esto se muestra en la siguiente figura:
En algoritmos de aprendizaje profundo, feature engineeringse hace automáticamente. Generalmente, la ingeniería de características requiere mucho tiempo y requiere una buena experiencia en el dominio. Para implementar la extracción automática de características, los algoritmos de aprendizaje profundo generalmente solicitan una gran cantidad de datos, por lo que si solo tiene miles y decenas de miles de puntos de datos, la técnica de aprendizaje profundo puede no brindarle resultados satisfactorios.
Con datos más grandes, los algoritmos de aprendizaje profundo producen mejores resultados en comparación con los algoritmos ML tradicionales con la ventaja adicional de que hay menos o ninguna ingeniería de funciones.