Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη

Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη
Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη

Πολλές φορές  ακούμε  για  τεχνητή νοημοσύνη (AI), σε παιχνίδια, κινητά και διάφορες εφαρμογές αλλά τι ακριβώς είναι και που μας εξυπηρετεί;

Στην γλώσσα προγραμματισμού Python έχουμε αρκετές  βιβλιοθήκες τεχνητής νοημοσύνης. Αυτές κάνουν χρήση νευρωνικών δικτύων με βιβλιοθήκες όπως Τensorflow, Κeras, pyTorch, scikit.

Μοντέλα

Το πρώτο που θα πρέπει να κάνουμε με την χρήση τους είναι να φτιάξουμε ένα μοντέλο. Το μοντέλο αυτό όταν θα είναι δομικά έτοιμο θα πρέπει να εκπαιδευτεί (trained) με ένα dataset (πλήθος δεδομένων). Ανάλογα με το πόσες φορές εκπαιδευτεί (το μοντέλο) θα ανέβει η ακρίβεια του. Ο αριθμός των εκπαιδεύσεων ονομάζετε epochs.

Μπορούμε να  φτιάξουμε ένα δικό μας μοντέλο, είτε να χρησιμοποιήσουμε κάποιο από τα έτοιμα στις βιβλιοθήκες. Επίσης μπορούμε να  το κάνουμε εμείς train ή να το χρησιμοποιήσουμε pretrained.

Machine learning vs Deep learning

Σε ένα μοντέλο τεχνητής νοημοσύνης έχουμε ένα input layer που  τροφοδοτούμε τα δεδομένα.  Στην συνέχεια τουλάχιστον ένα  layer που κάνει την μετατροπή (hidden layer) και τέλος  ένα output. Σε αυτή την περίπτωση μιλάμε για machine learning.

Στην περίπτωση που έχουμε πάνω από  ένα  hidden layer  τότε μιλάμε για deep learning.

To deep learning χρησιμοποιείτε σε περιπτώσεις που πρέπει να φιλτράρουμε πολλές φορές, ώστε να μπορούμε να έχουμε ένα συμπέρασμα.

CNNs για μια έκτη αίσθηση

Υπάρχουν πολλοί τύποι νευρωνικών δικτύων αλλά θα ασχοληθούμε συγκεκριμένα με τα CNN (convolutional neural network).

Την χρήση τους την συναντάμε καθημερινά. Σε αναγνώριση κειμένου, αντικειμένων/προσώπων σε φωτογραφίες και βίντεο, αναγνώριση copyright σε μουσική και  πολλά  άλλα.

Το δίκτυο σε κάθε hidden layer χωρίζει την εικόνα σε μικρά πινακάκια μου ονομάζονται tensors. Με ένα φίλτρο (συνήθως 3×3 πίνακα) που  ονομάζεται  kernel (κάτι σαν αυτά του Instagram). Το φίλτρο διαμορφώνει την εικόνα περνόντας πάνω από το κάθε tensor.

Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη

Activation functions

Σαν αποτέλεσμα έχει δημιουργηθεί ένα activation map  με τα διαμορφομένα tensors. Έπειτα εφαρμόζεται μία activation function που συνήθως είναι η ReLu. Η χρήση της ReLu απλά βάζει μηδέν σε όποια τιμή του πίνακα (tensor) είναι  κάτω από μηδέν. 

Στην συνέχεια εφαρμόζεται μια άλλη function  που  ονομάζεται max  pooling. Η χρήση της ουσιαστικά συμπυκνώνει  τον πίνακα σε λιγότερες διαστάσεις, κρατώντας την μέγιστή τιμή ανάλογα το βήμα που έχουμε  ορίσει.

Επιλέγεται maxpooling 1D, 2D, 3D ανάλογα αν κάνουμε convert  σε κείμενο, εικόνα ή βίντεο αντίστοιχα.

Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη
Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη

Όλη αυτή η διαδικασία ανήκει στο πρώτο hidden layer. Μπορεί να έχουμε περισσότερα και να γίνεται η αντίστοιχη διαδικασία και σε  ένα δεύτερο, τρίτο κλπ.

Το αποτέλεσμα

Λίγο πριν το αποτέλεσμα έχουμε το flatten layer. Εκεί συγκρίνονται όλα τα  δεδομένα που έχουμε μαζέψει με όλες  τις  πιθανές απαντήσεις. Στο τέλος ανάλογα το τι έχει  το μεγαλύτερο probability μας δίνει αυτό σαν απάντηση στο output. Η διαδικασία αυτή γίνεται μέσω της function soft max ή sigmoid.

Τι είναι ένα νευρωνικό δίκτυο στη τεχνητή νοημοσύνη

Οπότε τελικά που μας χρησιμεύει ένα νευρωνικό δίκτυο;

Με το νευρωνικό δίκτυο όπως είδαμε και στο παράδειγμα μπορέσαμε μέσα από όλη αυτή την διαδικασία να πάρουμε μια απάντηση στην ερώτηση αν έχει καστανά μάτια η τίγρης στην φωτογραφία.

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

Κάνοντας χρήση τα δεδομένα από εικόνες και ήχο που έχουμε συλλέξει. Η εφαρμογή μπορεί να λύσει πολύπλοκα προβλήματα όπως κατηγοριοποίηση, αναγνώση κειμένου και ομιλίας.

Μοιράσου το

Αφήστε μία απάντηση