Caffe2 - Introduzione
Negli ultimi due anni, il Deep Learning è diventato una grande tendenza nel Machine Learning. È stato applicato con successo per risolvere problemi precedentemente irrisolvibili in Vision, Speech Recognition and Natural Language Processing(PNL). Ci sono molti altri domini in cui il Deep Learning viene applicato e ha dimostrato la sua utilità.
Caffe (Convolutional Architecture for Fast Feature Embedding) è un framework di apprendimento profondo sviluppato presso Berkeley Vision and Learning Center (BVLC). Il progetto Caffe è stato creato da Yangqing Jia durante il suo dottorato di ricerca. presso l'Università della California - Berkeley. Caffe offre un modo semplice per sperimentare con il deep learning. È scritto in C ++ e fornisce collegamenti perPython e Matlab.
Supporta molti diversi tipi di architetture di apprendimento profondo come CNN (Rete neurale convoluzionale), LSTM(Memoria a lungo termine) e FC (completamente connesso). Supporta GPU ed è quindi ideale per ambienti di produzione che coinvolgono reti neurali profonde. Supporta anche le librerie del kernel basate su CPU comeNVIDIA, Libreria CUDA Deep Neural Network (cuDNN) e Intel Math Kernel Library (Intel MKL).
Nell'aprile 2017, Facebook, la società di servizi di social networking con sede negli Stati Uniti, ha annunciato Caffe2, che ora include RNN (Recurrent Neural Networks) e nel marzo 2018 Caffe2 è stato fuso in PyTorch. I creatori di Caffe2 e i membri della comunità hanno creato modelli per risolvere vari problemi. Questi modelli sono disponibili al pubblico come modelli pre-addestrati. Caffe2 aiuta i creatori nell'utilizzo di questi modelli e nella creazione della propria rete per fare previsioni sul dataset.
Prima di entrare nei dettagli di Caffe2, cerchiamo di capire la differenza tra machine learning e deep learning. Ciò è necessario per capire come vengono creati e utilizzati i modelli in Caffe2.
Machine learning v / s deep learning
In qualsiasi algoritmo di machine learning, sia esso tradizionale o deep learning, la selezione delle funzionalità nel set di dati gioca un ruolo estremamente importante per ottenere la precisione di previsione desiderata. Nelle tradizionali tecniche di machine learning, ilfeature selectionè fatto principalmente dall'ispezione umana, dal giudizio e dalla profonda conoscenza del dominio. A volte, potresti chiedere aiuto ad alcuni algoritmi testati per la selezione delle funzionalità.
Il flusso di machine learning tradizionale è illustrato nella figura seguente:
Nell'apprendimento profondo, la selezione delle funzionalità è automatica e fa parte dell'algoritmo di apprendimento profondo stesso. Questo è mostrato nella figura sotto:
Negli algoritmi di deep learning, feature engineeringviene fatto automaticamente. In genere, la progettazione delle funzionalità richiede tempo e una buona esperienza nel dominio. Per implementare l'estrazione automatica delle caratteristiche, gli algoritmi di deep learning richiedono in genere enormi quantità di dati, quindi se hai solo migliaia e decine di migliaia di punti dati, la tecnica di deep learning potrebbe non riuscire a darti risultati soddisfacenti.
Con dati più grandi, gli algoritmi di deep learning producono risultati migliori rispetto agli algoritmi ML tradizionali con un ulteriore vantaggio di ingegnerizzazione delle funzionalità minore o nulla.