Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1
Εισαγωγή Προσομοιώνει βιολογικές διεργασίες (π.χ. λειτουργία του εγκεφάλου, διαδικασία εξέλιξης) Νευρωνικά δίκτυα (neural networks): Βασίζονται στο βιολογικό πρότυπο των νευρώνων (neurons) στον ανθρώπινο εγκέφαλο Δεν αναπαριστούν ρητά τη γνώση Δεν χρησιμοποιούν ρητά αλγόριθμους αναζήτησης 2
Βιολογικός Νευρώνας (1/2) Η δομική μονάδα του ανθρώπινου εγκεφάλου είναι ο νευρώνας Σώμα (πυρήνας) Δενδρίτες (είσοδοι) Άξονας (έξοδος) Συνάψεις (κενά στους δενδρίτες, επιβραδύνουν ή επιταχύνουν την ροή ηλεκτρικών φορτίων προς το σώμα του νευρώνα 3
Βιολογικός Νευρώνας (2/2) Η ικανότητα μνήμης και μάθησης του εγκεφάλου οφείλεται στην ικανότητα των συνάψεων να μεταβάλλουν την αγωγιμότητά τους. Τα ηλεκτρικά σήματα που εισέρχονται στον νευρώνα μέσω των δενδριτών συνδυάζονται Αν το αποτέλεσμα υπερβαίνει την τιμή κάποιου κατωφλίου, το σήμα διαδίδεται μέσω του άξονα 4
Φυσικά νευρωνικά δίκτυα Εγκέφαλος νεογέννητου 100 δισεκατομμύρια νευρώνες ο καθένας συνδέεται με περίπου 1000 άλλους περίπου 100 τρισεκατομμύρια συνάψεις Χρόνος απόκρισης της τάξεως των msec Ωστόσο, ο εγκέφαλος είναι σε θέση να λαμβάνει πολύπλοκες αποφάσεις πολύ γρήγορα Η υπολογιστική ικανότητα και η πληροφορία είναι διαμοιρασμένες σε όλο τον όγκο Παράλληλο και κατανεμημένο υπολογιστικό σύστημα Η αντιγραφή είναι δυνατή σε περιορισμένη κλίμακα 5
Μοντέλο Τεχνητού Νευρώνα 6
Τεχνητός νευρώνας Υπολογιστικό μοντέλο, τα μέρη του οποίου σχετίζονται άμεσα με έναν βιολογικό νευρώνα. Σήματα εισόδου x 0, x 1,, x n που αντιστοιχούν σε συνεχείς μεταβλητές Τιμές βάρους w i για το κάθε σήμα εισόδου (θετική ή αρνητική τιμή, ρόλος αντίστοιχος της σύναψης) Σώμα χωρισμένο σε δύο μέρη: Αθροιστης (sum): προσθέτει τα επηρρεασμένα από τα βάρη σήματα εισόδου και παράγει την ποσότητα S Συνάρτηση ενεργοποίησης ή κατωφλίου (activation / threshold function): μη γραμμικό φίλτρο που διαμορφώνει την τιμή εξόδου y σε συνάρτηση της ποσότητας S. 7
Νευρώνες και υπερεπίπεδα Ένας τεχνητός νευρώνας με n εισόδους ορίζει ένα υπερεπίπεδο στον Ν-διάστατο χώρο, το οποίο τον διαχωρίζει σε δύο περιοχές. Οι τιμές των βαρών στις εισόδους του νευρώνα καθορίζουν τη θέση του υπερεπιπέδου Χωρίς την πόλωση, το υπερεπίπεδο θα έπρεπε υποχρεωτικά να περνάει από την αρχή των αξόνων 8
Συνάρτηση ενεργοποίησης Βηματική (step) συνάρτηση: δίνει στην έξοδο αποτέλεσμα (συνήθως 1) μόνο αν η τιμή που υπολογίζει ο αθροιστής είναι μεγαλύτερη από την τιμή κατωφλίου Τ Συνάρτηση προσήμου (sign): δίνει στην έξοδο αρνητική ή θετική πληροφορία αν η τιμή που υπολογίζει ο αθροιστής είναι μικρότερη ή μεγαλύτερη από μία τιμή κατωφλίου Τ Σιγμοειδής (sigma) συνάρτηση: 9
Υλοποίηση λογικών συναρτήσεων Υλοποίηση των λογικών συναρτήσεων AND, OR και NOT με τεχνητό νευρώνα Παράδειγμα: υλοποίηση του ΝΟΤ με βηματική συνάρτηση και κατώφλι Τ=-0.5 10
Τεχνητά Νευρωνικά Δίκτυα Συστήματα επεξεργασίας δεδομένων που αποτελούνται από ένα πλήθος τεχνητών νευρώνων οργανωμένων σε δομές παρόμοιες με αυτές του ανθρώπινου εγκεφάλου Οργάνωση σε σειρά από επίπεδα ή στρώματα (layers) Επίπεδο εισόδου Ενδιάμεσα / κρυφά επίπεδα Επίπεδο εξόδου Σημειογραφία: 3-4-2 11
Συνδέσεις νευρώνων - Χαρακτηριστικά Οι νευρώνες των διαφόρων στρωμάτων μπορεί να είναι Πλήρως συνδεδεμένοι (fully connected): ο καθένας συνδέεται με όλους τους υπόλοιπους νευρώνες Μερικώς συνδεδεμένοι (partially connected) Κατηγορίες Τεχνητών Νευρωνικών Δικτύων: Με πρόσθια τροφοδότηση (feedforward) Με ανατροφοδότηση (feedback / recurrent) 12
Μάθηση και Ανάκληση Μάθηση (learning) ή εκπαίδευση (training) είναι η διαδικασία της τροποποίησης της τιμής των βαρών του δικτύου, ώστε δοθέντος ενός συγκεκριμένου διανύσματος εισόδου, να παράγεται ένα συγκεκριμένο διάνυσμα εξόδου Ανάκληση (recall) είναι η διαδικασία υπολογισμού ενός διανύσματος εξόδου για συγκεκριμένο διάνυσμα εισόδου και τιμές βαρών 13
Είδη μάθησης Μάθηση υπό επίβλεψη (supervised learning) Στο δίκτυο δίνονται ζευγάρια εισόδου επιθυμητής εξόδου Το δίκτυο αρχικά για κάθε είσοδο παράγει μια έξοδο που διαφέρει από την επιθυμητή (error) Αναπροσαρμογή των βαρών σύμφωνα με κάποιο αλγόριθμο Βαθμολογημένη μάθηση (graded learning) Η έξοδος χαρακτηρίζεται ως καλή ή κακή με βάση μια αριθμητική κλίματα Τα βάρη αναπροσαρμόζονται Μάθηση χωρίς επίβλεψη (unsupervised learning) Το δίκτυο αυτο-οργανώνεται με βάση τα διανύσματα εισόδου Η οργάνωση γίνεται έτσι ώστε σε συγκεκριμένο σύνολο εισόδων να αντιδρά ισχυρά ένας συγκεκριμένος νευρώνας (κατηγοριοποίηση) 14
Αλγόριθμοι μάθησης υπό επίβλεψη Κανόνας Δέλτα (Delta rule) Η διαφορά μεταξύ πραγματικής και επιθυμητής εξόδου ελαχιστοποιείται μέσω της διαδικασίας ελαχίστων τετραγώνων Ανάστροφη μετάδοση λάθους (back propagation) Η μεταβολή των βαρών βασιζεται στον υπολογισμό της συνεισφοράς κάθε βάρους στο συνολικό σφάλμα Ανταγωνιστική μάθηση (competitive learning) Οι τεχνητοί νευρώνες ανταγωνίζονται μεταξύ τους και αυτός με τη μεγαλύτερη απόκριση στην είσοδο τροποποιεί τα βάρη του Τυχαία μάθηση (random learning) Οι μεταβολές στα βάρη εισάγονται τυχαία και υιοθετούνται ή απορρίπτονται με βάση το αποτέλεσμα 15
Προσαρμογή (fitting) Ατελής μάθηση, το νευρωνικό δίκτυο δεν είναι αρκετά πολύπλοκο Το νευρωνικό δίκτυο είναι παραπάνω πολύπλοκο από όσο χρειάζεται, μοντελοποιείται και ο θόρυβος Τουλάχιστον 30πλάσια δεδομένα εκπαίδευσης από τον αριθμό των βαρών 16
Δεδομένα εκπαίδευσης Κύκλοι εκπαίδευσης: εποχές (epochs) Μάθηση δέσμης (batch learning): τα βάρη αναπροσαρμόζονται στο τέλος του κάθε κύκλου Επαυξητική μάθηση (incremental learning): τα βάρη αναπροσαρμόζονται μετά από κάθε διάνυσμα εκπαίδευσης Συνδυασμός των δύο Τερματισμός της εκπαίδευσης όταν το κριτήριο ελέγχου ποιότητας του δικτύου φτάσει σε κάποια επιθυμητή τιμή Μέσο σφάλμα συνόλου εκπαίδευσης Μεταβολή του μέσου σφάλματος του συνόλου εκπαίδευσης 17
Χαρακτηριστικά ΤΝΔ (1/2) Η ικανότητα των δικτύων να μαθαίνουν μέσω παραδειγμάτων (learn by example) Οργανώνουν την πληροφορία εισόδου Αποτελούν ένα μοντέλο που αναπαριστά τη σχέση των δεδομένων εισόδου και εξόδου Η δυνατότητα θεώρησής τους ως κατανεμημένη μνήμη (distributed memory) και ως μνήμη συσχέτισης (associative memory) Η πληροφορία κατανέμεται σε όλα τα βάρη της συνδεσμολογίας Η πληροφορία αποθηκεύεται συσχετίζοντας τα αποθηκευμένα δεδομένα μεταξύ τους Η ανάκληση γίνεται με βάση το περιεχόμενο και όχι τη διεύθυνση 18
Χαρακτηριστικά ΤΝΔ (2/2) Η μεγάλη ανοχή σε σφάλματα (fault tolerance) Ανεκτικά σε μικρές αλλαγές στην είσοδο Ανεκτικά σε δομικά σφάλματα (καταστροφή νευρώνων ή συνδέσεων) Το μέγεθος του σφάλματος είναι ανάλογο του ποσοστού των κατεστραμμένων συνδέσεων Η ικανότητα για αναγνώριση προτύπων (pattern recognition) Δεν επηρρεάζονται από ελλιπή δεδομένα Ανεκτικά στον θόρυβο 19
Νευρωνικά Δίκτυα Πρόσθιας Τροφοδότησης Επίπεδο εισόδου, επίπεδο εξόδου Προαιρετικά ένα ή περισσότερα κρυφά επίπεδα Μάθηση με επίβλεψη Τοπολογία Δεν υπάρχει κανόνας Έχουν προταθεί αλγόριθμοι που δημιουργούν τοπολογία βάσει των εισόδων και των επιθυμητών εξόδων 20
Κρυφά Επίπεδα Ο αριθμός των νευρώνων στα κρυφά επίπεδα σχετίζεται με πολύπλοκο τρόπο με τον αριθμό νευρώνων στα επίπεδα εισόδου / εξόδου τον αριθμό των διανυσμάτων εκπαίδευσης και τον θόρυβο σε αυτά την πολυπλοκότητα της συνάρτησης ή της κατηγοριοποίησης που πρέπει να μάθει το δίκτυο τις συναρτήσεις ενεργοποίησης τον αλγόριθμο εκπαίδευσης Για προβλήματα κατηγοριοποίησης, ο αριθμός των νευρώνων στα κρυφά επίπεδα δεν πρέπει να υπερβαίνει τον αριθμό των διανυσμάτων εκπαίδευσης (αποφυγή απομνημόνευσης) 21
Perceptron Η πιο απλή τοπολογία δικτύου με απλή τροφοδότηση Ένας νευρώνας Βηματική συνάρτηση Μάθηση με επίβλεψη Αλγόριθμος μεταβολής βαρών (d ρυθμός μάθησης): Μέχρι να ικανοποιηθεί η συνθήκη τερματισμού της εκπαίδευσης επανέλαβε: Για κάθε ζευγάρι εισόδου x και επιθυμητής εξόδου t από το σύνολο της εκπαίδευσης 1. Υπολόγισε την έξοδο y 2. Εάν y=t τότε δεν γίνεται καμία μεταβολή στα βάρη 3. Εάν y t τότε μετέβαλε τα βάρη των ενεργών γραμμών εισόδου (αυτών που έχουν σήμα 0) κατά την ποσότητα Δw=d(t-y)x, έτσι ώστε το y να πλησιάσει το t. 22
Γραμμική Διαχωρισιμότητα (1/2) Ένα perceptron με n γραμμές εισόδου μπορεί να θεωρηθεί ότι αναπαριστά ένα υπερεπίπεδο n-1 διαστάσεων που διαχωρίζει τα διανύσματα εισόδου σε δύο ομάδες, ανάλογα με την έξοδο. Γραμμικώς διαχωρίσιμα προβλήματα (linearly separable) Τα μη γραμμικώς διαχωρίσιμα προβλήματα απαιτούν την χρήση ΤΝΔ με ενδιάμεσα κρυφά επίπεδα 23
Γραμμική Διαχωρισιμότητα (2/2) Τα ΤΝΔ με κρυφά επίπεδα έχουν καλύτερη διαχωρισιμότητα επειδή ο χώρος τιμών εισόδου οριοθετείται με πιο πολύπλοκο τρόπο εξαιτίας της πολυπλοκότητας των συνδέσεων 24
Κανόνας Δέλτα (1/3) Γενίκευση του αλγορίθμου εκπαίδευσης του perceptron Ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος των διανυσμάτων εκπαίδευσης Δεν εφαρμόζεται σε δίκτυα με κρυφά επίπεδα Μέσο τετραγωνικό σφάλμα Ε στο στοιχειώδες perceptron για p διανύσματα εκπαίδευσης t k : επιθυμητή έξοδος input k : σήμα εισόδου του νευρώνα (χωρίς συνάρτηση ενεργοποίησης) Συνολικό σήμα εισόδου για διάνυσμα εκπαίδευσης p: 25
Κανόνας Δέλτα (2/3) Ο κανόνας Δέλτα ακολουθεί την αρνητική κλίση της επιφάνειας σφάλματος, με κατεύθυνση προς το ελάχιστό της Η μεταβολή της τιμής του βάρους w i εξαιτίας της εκπαίδευσης με ένα μόνο από τα διανύσματα εκπαίδευσης δίνεται από τη σχέση: όπου input είναι το συνολικό σήμα εισόδου του νευρώνα, t είναι η επιθυμητή έξοδος, w i(old) και w i(new) η παλιά και η νέα τιμή του βάρους, x i η επιμέρους είσοδος i της οποίας το βάρος αναπροσαρμόζεται και d μια σταθερά που ρυθμίζει το ρυθμό μεταβολής των βαρών (ρυθμός μάθησης) 26
Γεωμετρική αναπαράσταση κανόνα Δέλτα για στοιχειώδες perceptron με 2 εισόδους Κανόνας της επικλινούς καθόδου (gradient descent rule) Δεν εφαρμόζεται σε δίκτυα με κρυφά επίπεδα Κανόνας Δέλτα (3/3) Αναπτύχθηκε η μέθοδος ανάστροφης μετάδοσης λάθους 27
Ανάστροφη μετάδοση λάθους (1/3) Η αναπροσαρμογή των βαρών γίνεται από το επίπεδο εξόδου προς το επίπεδο εισόδου Ανάστροφο πέρασμα (backward pass) ή ανάστροφη μετάδοση (back propagation) Διαδικασία βελτιστοποίησης επικλινούς καθόδου που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Ε μεταξύ της εξόδου του δικτύου και της επιθυμητής εξόδου για p διανύσματα εκπαίδευσης 28
Ανάστροφη μετάδοση λάθους (2/3) Βασίζεται στον γενικευμένο κανόνα Δέλτα Καθορισμός του ποσοστού του συνολικού σφάλματος που αντιστοιχεί σε κάθε νευρώνα, ακόμη και αυτών που ανήκουν σε κρυφά επίπεδα 29
Ανάστροφη μετάδοση λάθους (3/3) Προβλήματα Τοπικά ελάχιστα Network paralysis: ένα ή περισσότερα βάρη έχουν σταθερές υψηλές απόλυτες τιμές και δεν τροποποιούνται σημαντικά σε κάθε διόρθωση Σχόλια Τα διανύσματα εκπαίδευσης δεν πρέπει να μεταβάλλονται γιατί δεν επέρχεται σύγκλιση Ο έλεγχος απόδοσης γίνεται με πρότυπα αξιολόγησης (validation data) 30
Perceptron Learning How does a perceptron acquire its knowledge? The question really is: How does a perceptron learn the appropriate weights?
Perceptron Learning Features: Taste Sweet = 1, Not_Sweet = 0 Seeds Edible = 1, Not_Edible = 0 Skin Edible = 1, Not_Edible = 0 For output: Good_Fruit = 1 Not_Good_Fruit = 0
Perceptron Learning Let s start with no knowledge: Input Tast e Seeds 0.0 0.0 Output Skin 0.0 If > 0.4 then fire
Perceptron Learning To train the perceptron, we will show it each example and have it categorize each one. Since it s starting with no knowledge, it is going to make mistakes. When it makes a mistake, we are going to adjust the weights to make that mistake less likely in the future.
Perceptron Learning When we adjust the weights, we re going to take relatively small steps to be sure we don t over-correct and create new problems.
Perceptron Learning I m going to learn the category good fruit defined as anything that is sweet. Good fruit = 1 Not good fruit = 0
Show it a banana: Perceptron Learning Input Tast e Seeds 1 1 1 1 0.0 0.0 0.0 Output 0 Skin 0 0 0.0 If > 0.4 then fire
Perceptron Learning In this case we have: (1 X 0) = 0 + (1 X 0) = 0 + (0 X 0) = 0 It adds up to 0.0. Since that is less than the threshold (0.40), we responded no. Is that correct? No.
Perceptron Learning Since we got it wrong, we know we need to change the weights. We ll do that using the delta rule (delta for change). w = learning rate X (overall teacher - overall output) X node output
Perceptron Learning The three parts of that are: Learning rate: We set that ourselves. I want it to be large enough that learning happens in a reasonable amount of time, but small enough that I don t go too fast. I m picking 0.25. (overall teacher - overall output): The teacher knows the correct answer (e.g., that a banana should be a good fruit). In this case, the teacher says 1, the output is 0, so (1-0) = 1. node output: That s what came out of the node whose weight we re adjusting. For the first node, 1.
Perceptron Learning To pull it together: Learning rate: 0.25. (overall teacher - overall output): 1. node output: 1. w = 0.25 X 1 X 1 = 0.25. Since it s a w, it s telling us how much to change the first weight. In this case, we re adding 0.25 to it.
Perceptron Learning Let s think about the delta rule: (overall teacher - overall output): If we get the categorization right, (overall teacher - overall output) will be zero (the right answer minus itself). In other words, if we get it right, we won t change any of the weights. As far as we know we have a good solution, why would we change it?
Perceptron Learning Let s think about the delta rule: (overall teacher - overall output): If we get the categorization wrong, (overall teacher - overall output) will either be -1 or +1. If we said yes when the answer was no, we re too high on the weights and we will get a (teacher - output) of -1 which will result in reducing the weights. If we said no when the answer was yes, we re too low on the weights and this will cause them to be increased.
Perceptron Learning Let s think about the delta rule: Node output: If the node whose weight we re adjusting sent in a 0, then it didn t participate in making the decision. In that case, it shouldn t be adjusted. Multiplying by zero will make that happen. If the node whose weight we re adjusting sent in a 1, then it did participate and we should change the weight (up or down as needed).
Perceptron Learning How do we change the weights for banana? Feature: Learning rate: (overall teacher - overall output): Node output: w taste 0.25 1 1 +0.25 seeds 0.25 1 1 +0.25 skin 0.25 1 0 0
Perceptron Learning Here it is with the adjusted weights: Input Tast e Seeds 0.25 0.25 Output Skin 0.0 If > 0.4 then fire
Perceptron Learning To continue training, we show it the next example, adjust the weights We will keep cycling through the examples until we go all the way through one time without making any changes to the weights. At that point, the concept is learned.
Perceptron Learning Show it a pear: Input Tast e Seeds 1 0 1 0 0.25 0.25 0.25 Output 0 Skin 1 1 0.0 If > 0.4 then fire
Perceptron Learning How do we change the weights for pear? Feature: Learning rate: (overall teacher - overall output): Node output: w taste 0.25 1 1 +0.25 seeds 0.25 1 0 0 skin 0.25 1 1 +0.25
Perceptron Learning Here it is with the adjusted weights: Input Tast e Seeds 0.25 0.50 Output Skin 0.25 If > 0.4 then fire
Show it a lemon: Perceptron Learning Input Tast e Seeds 0 0 0 0 0.25 0.50 0 Output 0 Skin 0 0 0.25 If > 0.4 then fire
Perceptron Learning How do we change the weights for lemon? Feature: Learning rate: (overall teacher - overall output): Node output: taste 0.25 0 0 0 seeds 0.25 0 0 0 skin 0.25 0 0 0 w
Perceptron Learning Here it is with the adjusted weights: Input Tast e Seeds 0.25 0.50 Output Skin 0.25 If > 0.4 then fire
Show it a strawberry: Perceptron Learning Input Tast e Seeds 1 1 1 1 0.25 0.50 1 Output 1 Skin 1 1 0.25 If > 0.4 then fire
Perceptron Learning How do we change the weights for strawberry? Feature: Learning rate: (overall teacher - overall output): Node output: taste 0.25 0 1 0 seeds 0.25 0 1 0 skin 0.25 0 1 0 w
Perceptron Learning Here it is with the adjusted weights: Input Tast e Seeds 0.25 0.50 Output Skin 0.25 If > 0.4 then fire
Show it a green apple: Perceptron Learning Input Tast e Seeds 0 0 0 0 0.25 0.50 0.25 Output 0 Skin 1 1 0.25 If > 0.4 then fire
Perceptron Learning If you keep going, you will see that this perceptron can correctly classify the examples that we have.
Ενδεικτική Βιβλιογραφία Ενότητες 19.1, 19.2, 19.3 και 19.4 του βιβλίου «Τεχνητή Νοημοσύνη», Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας και Η. Σακελλαρίου. 60