Μάθετε πως λειτουργούν τα Convolutional Neural Networks για Visual Recognition (βίντεο)

dimitris | Τετ, 11/07/2018 - 11:36 | 7'

Το Computer Vision ή στα ελληνικά “υπολογιστική όραση” έχει εξαπλωθεί πλέον πάρα πολύ με εφαρμογές στην αναζήτηση, την κατανόηση εικόνων, την χαρτογράφηση, την ιατρική, τα drones αλλά και την αυτοκινητοβιομηχανία. Βασικό κομμάτι όλων αυτών των εφαρμογών είναι το visual recognition, δηλαδή επίλυση προβλημάτων που αφορούν ταυτοποίηση μέσω εικόνας ή video. Για παράδειγμα, αναγνώριση προσώπου (face recognition), η ανίχνευση αντικειμένων (object detection & recognition) και δραστηριοτήτων (activity recognition). Τα τελευταία χρόνια οι εξελίξεις στο πεδίο των νευρωνικών δικτύων (ή αλλιώς deep learning) βελτίωσαν πάρα πολύ την απόδοση των συστημάτων υπολογιστικής όρασης, μe αποτέλεσμα να αναπτύσσονται ήδη πολλές εφαρμογές (surveillance, healthcare αλλά και ρομποτικής). Κάποιες είναι αμφιλεγόμενες, όπως για παράδειγμα, η αναγνώριση προσώπου με την οποία μπορεί κανείς να παρακολουθεί και να ταυτοποιεί άτομα, ενώ υπάρχουν κι άλλες πολύ πιο χρήσιμες και πολιτικά ουδέτερες όπως οι αυτοματοποιημένες τεχνικές αναγνώρισης όγκου ή πολύποδα που συμβάλλει στην αντιμετώπιση του καρκίνου.

Αν αυτός ο σύντομος πρόλογος σας έβαλε.... φιτίλια να ασχοληθείτε με το θέμα “computer vision”, τότε σας έχουμε το κατάλληλο μάθημα. Στο Stanford υπάρχει το CS231n: Convolutional Neural Networks for Visual Recognition, ένα μάθημα 10 εβδομάδων, το οποίο σας παίρνει από το χέρι και σας βουτάει στα βαθιά των αρχιτεκτονικών deep learning, με έμφαση όμως στην κατηγοριοποίηση εικόνων (image classification). To μάθημα το οργανώνει η Fei-Fei Li που θεωρείται πρωτοπόρος στο θέμα (δείτε π.χ. το άρθρο της "if we want our machines to think, we need to teach them to see")  Η Li ασχολείται κυρίως με προβλήματα που αφορούν action recognition ή Human-Object Interaction (HCI), δηλαδή το πως θα αναγνωρίσει ο υπολογιστής τις αλληλεπιδράσεις μεταξύ αντικειμένων και ανθρώπου. Στο συγκεκριμένο μάθημα δείχνει βήμα-προς-βήμα πως μπορούμε να εφαρμόσουμε τεχνικές deep learning σε διάφορα προβλήματα και εξηγεί από τα βασικά μέχρι αρκετά “βαθιά” θέματα. Μάλιστα, στην αρχή έχει πολλά παραδείγματα που είναι όντως εντυπωσιακά. Ακόμα και η ίδια η ιστοσελίδα του μαθήματος είναι ενδιαφέρουσα μια και τρέχει live ένα σκριπτάκι στον browser μας το οποίο κάνει αναγνώριση εικόνας!

Σε αυτή τη σειρά μαθημάτων, που μπορούμε να δούμε στα παρακάτω βίντεο από το course του Stanford το 2017, μπορούμε να μάθουμε πως υλοποιούμε, εκπαιδεύουμε και αναπτύσσουμε νευρωνικά δίκτυα και ειδικά τα Convolutional Neural Networks (CNNs). Τί είναι αυτά;  Τα CNNs (Συνελεκτικά Νευρωνικά Δίκτυα) είναι μια ειδική κατηγορία νευρωνικών δικτύων με 3D αρχιτεκτονική. Εφαρμόζονται πολύ στο computer vision αλλά και σε άλλα προβλήματα. Έγιναν πολύ της μόδας το 2012 με ένα variation που λεγόταν alexnet. Σήμερα, τα CNNs έχουν γίνει de facto επιλογή για προβλήματα που αφορούν ταξινόμηση εικόνων μια και έχουν πολύ καλύτερη απόδοση από τις περισσότερες συμβατικές τεχνικές. Η διαφορά των CNNs είναι ότι στο παραδοσιακό machine learning έπρεπε να γράψεις κώδικα για να εξάγεις “χαρακτηριστικά” από μια εικόνα ώστε να μπορεί ο υπολογιστής να την κατηγοριοποιήσει. Τα CNNs όμως δεν το χρειάζονται αυτό. Μαθαίνουν μόνα τους τα χαρακτηριστικά αυτά κάνοντας βελτιστοποίηση του αλγορίθμου ως προς κάποιο κριτήριο, π.χ. ελαχιστοποιούν το λάθος σε ένα πλήθος κατηγοριών εικόνας. Βέβαια, τίποτε δεν είναι τέλειο. Τα CNNs μαθαίνουν μόνα τους αλλά έχουν το κακό ότι λειτουργούν σε... black box. Οπότε δεν είναι καθόλου εύκολο για κάποιον να καταλάβει γιατί δουλεύουν τελικά τόσο καλά ούτε να ερμηνεύσει εύκολα το γιατί κάνουν τα λάθη που κάνουν...

Για να παρακολουθήσετε το course πρέπει να έχετε πολύ καλή γνώση Python (δείτε μια εισαγωγή στην Python)και να καταλαβαίνετε από Άλγεβρα και machine learning, αλλά το ωραίο είναι ότι ξεκινά (σχεδόν) από το μηδέν, πως τίθεται ένα πρόβλημα αναγνώρισης εικόνας, ποιοι είναι οι αλγόριθμοι για learning (π.χ. backpropagation), αλλά και πρακτικά κόλπα που εφαρμόζονται σε αυτά τα προβλήματα.  Η τελευταία εργασία που βάζει η Li στους φοιτητές της είναι να “εκπαιδεύσουν” ένα CNN με πολλά εκατομμύρια παραμέτρους και να το εφαρμόσουν στο μεγαλύτερο dataset που υπάρχει διαθέσιμο για image classification, το ImageNet.

Δείτε τα βίντεο του μαθήματος και πάρτε μια γεύση με τι ασχολείται ο κόσμος εκεί έξω...

 

Δώσε αστέρια!

MO: 4 (ψήφοι: 5)