Classificazioni corrette
7.7.2 Validazione del progetto
Il porting di Caffe e la piccola applicazione per effettuare delle classificazioni di immagini acquisite, hanno permesso la realizzazione del progetto, che si ricorda essere solo una parte dello schema iniziale di figura 1.1.
Complessivamente i risultati sembrano essere buoni: le reti hanno un’e-levata accuratezza nella predizione di classi, cosa che è stata vista anche testando direttamente l’applicazione. Ci sono alcuni problemi con l’iden-tificazione di una particolare categoria di triangoli, come accennato prima, che però rappresentano un caso molto particolare che è stato considerato per vedere effettivamente il comportamento delle reti in casi reali piuttosto complicati.
AlexNet purtroppo, come era stato previsto, ha un tempo di inizializ-zazione molto alto dovuto alla dimensione del suo modello, ma ha però un ottimo tempo di predizione: in circa un secondo infatti è in grado di classi-ficare una specifica immagine. Riguardo a quest’ultimo tempo, NIN risulta essere la migliore in termini di velocità computazionale, anche se come si evince dalla tabella 7.2, non risulta essere però la più accurata nelle
predi-zioni, ruolo ricoperto da GoogLeNet. Queste ultime due reti hanno anche un tempo di inizializzazione molto più basso rispetto ad AlexNet, dell’ordine di circa un paio di secondi per entrambe (tabella 6.3). Un tempo del genere risulta decisamente più accettabile rispetto a quanto visto per AlexNet. Per determinare quale rete sia la più adatta bisognerebbe poi fare un compromes-so, ovvero decidere che è sufficiente utilizzare NIN, in quanto ha un’accuracy comunque buona, nel caso si volesse spendere meno tempo nella predizione (circa un secondo), oppure utilizzare GoogLeNet, più accurata ma anche più lenta, dato che la sua predizione dura circa 2 secondi. La scelta dipenderà anche dalla rimanente parte del progetto di figura 1.1 ancora da effettuare.
Ad ogni modo, i dati raccolti nel capitolo 6 e nella parte iniziale di questo capitolo, dimostrano che è potenzialmente possibile utilizzare le reti neurali convoluzionali localmente su un dispositivo mobile, in quanto non solo sono un ottimo strumento di classificazione, ma in più il loro consumo di risorse non sembra essere eccessivo. Tutto questo però, consci del fatto che l’utilizzo di queste reti presenta ancora alcuni limiti, legati principalmente proprio alle risorse disponibili sul dispositivo mobile. Bisogna poi presente che il dispo-sitivo utilizzato negli esperimenti della tesi risale al 2013. I nuovi dispositivi mobili, dotati di un hardware sempre più potente, potrebbero benissimo uti-lizzare queste reti in tempi anche inferiori. Il divario fra le risorse disponibili presenti in questi device e quello degli attuali PC, sta diminuendo sempre di più: i dati stessi ricavati nel corso di questo progetto dimostrano questo.
Sempre considerando le risorse del dispositivo, l’utilizzo di queste reti in locale sembra essere accettabile anche a livello di consumo energetico, infatti le stime sostengono che il consumo non è eccessivo e sembra addirittura minore rispetto a quello di un upload di immagini con una qualsiasi rete dati, cosa abbastanza comune al giorno d’oggi.
E’ vero però che nel caso si volesse un tempo di elaborazione molto più ra-pido, il che probabilmente significherebbe utilizzare un hardware più potente, i livelli di consumo energetico potrebbero tuttavia diventare meno sostenibili. Il fatto però che nuove tipologie di hardware appositamente progettate per l’utilizzo locale di queste reti sui dispositivi mobili, sono state presentate in questi ultimi mesi, sembra dare speranza a quanto detto finora. Ad esem-pio un nuovo chip, chiamato Eyeriss ([35]), è stato presentato a Febbraio da parte di alcuni ricercatori del MIT: questo chip permetterebbe l’utilizzo di reti neurali convoluzionali con tempi di elaborazione minori e consumo di energia limitato. Molte applicazioni che attualmente utilizzano questo tipo di reti, necessitano che l’utente sia in qualche modo collegato ad Internet, per effettuare l’upload di dati che vengono elaborati esternamente; questo chip potrebbe fare in modo invece di utilizzare sempre localmente queste reti e quindi di non necessitare ogni volta di utilizzare una connessione dati, il tutto
senza consumare velocemente la batteria del dispositivo. Potenzialmente si potrebbero inoltre utilizzare reti ancora più “deep” come ad esempio le reti VGG, o altre reti che verranno ideate nel corso del tempo, cosa che inve-ce al momento non conviene fare per via dell’enorme quantità di parametri che esse possiedono, ottenendo forse in questo modo risultati ancora migliori nell’accuratezza delle predizioni.
In questa tesi è stata presentata una possibile implementazione locale del-le reti neurali convoluzionali in un dispositivo mobidel-le, del-legate al progetto di un’applicazione Android per l’apprendimento automatico di informazioni. La scelta per cui si è deciso di fare questo riguarda il fatto che questo tipo di di-spositivi rappresenta molto probabilmente il futuro, in quanto quasi chiunque ormai ne possiede almeno uno, chi per necessità di lavoro e chi per sempli-ce svago o altro tipo di attività. Se i dispositivi mobili sono il futuro della tecnologia, le reti neurali convoluzionali sembrano essere il futuro per molti settori della computer vision e non solo, specialmente per problemi di object recognition, detection e segmentation. Aziende del calibro di Google si sono già accorte da tempo di questo ed infatti le stanno già utilizzando in molte delle loro applicazioni. Nel corso degli anni, viste le loro prestazioni, molto probabilmente si diffonderanno ancora di più e sicuramente verranno ulte-riormente migliorate, ed i nuovi harware, come ad esempio il chip menzionato in precedenza, permetteranno un loro utilizzo locale scavalcando alcuni limiti che attualmente posseggono, legati alla disponibilità di risorse di un attuale dispositivo mobile di fascia comune. Nella tesi lo scopo del loro utilizzo ri-guarda una specifica applicazione, applicazione che dovrebbe potenzialmente servire ad automatizzare alcuni compiti che attualmente richiedono ancora un’intervento umano esterno. Per completare l’idea iniziale rimarrebbe da svolgere la seconda parte dello schema 1.1, che si lascia per eventuali sviluppi. Di per sè comunque, lo studio effettuato nel corso di questa tesi può comun-que rivelarsi utile a chiuncomun-que voglia cimentarsi nel ramo del Deep Learning, con alcuni dati aggiuntivi riguardanti un possibile utilizzo di Convolutional Neural Networks sulla piattaforma Android.