Μετάβαση στο περιεχόμενο

Τεχνητή νοημοσύνη και ρομποτική

Αισθητήρες, αποφάσεις, και μηχανές που μαθαίνουν από δεδομένα.

35 λεπτά

Θα μάθεις να

  1. Να περιγράφεις ένα ρομπότ ως κύκλο αισθητήρας, απόφαση, ενεργοποιητής.
  2. Να ξεχωρίζεις ένα σύστημα με γραμμένους κανόνες από ένα σύστημα που μαθαίνει από δεδομένα.
  3. Να εξηγείς την επιβλεπόμενη μάθηση με δεδομένα εκπαίδευσης, ετικέτες και δεδομένα ελέγχου.
  4. Να αναγνωρίζεις τα όρια της τεχνητής νοημοσύνης και ηθικά ζητήματα όπως η μεροληψία, η ιδιωτικότητα και η ευθύνη.

Τι είναι ένα ρομπότ

Ρομπότ είναι μια μηχανή που αντιλαμβάνεται το περιβάλλον της, αποφασίζει τι να κάνει, και ενεργεί πάνω του, χωρίς άνθρωπο να την κατευθύνει σε κάθε βήμα. Η σκούπα-ρομπότ, το αυτόματο όχημα μιας αποθήκης και ο ρομποτικός βραχίονας ενός εργοστασίου αυτοκινήτων κάνουν όλα το ίδιο πράγμα, ξανά και ξανά:

  ┌──────────────┐     ┌──────────────┐     ┌──────────────┐
  │  Αισθητήρας  │ ──▶ │   Απόφαση    │ ──▶ │ Ενεργοποιητής│
  │  (αντίληψη)  │     │ (πρόγραμμα)  │     │   (δράση)    │
  └──────────────┘     └──────────────┘     └──────┬───────┘
         ▲                                         │
         └──────── το περιβάλλον αλλάζει ◀─────────┘
ΜέροςΤι κάνειΠαραδείγματα
Αισθητήρας (sensor)μετρά κάτι από το περιβάλλον και το κάνει αριθμόυπερήχων για απόσταση, φωτός, θερμοκρασίας, κάμερα, μικρόφωνο
Ελεγκτής (controller)ένας μικρός υπολογιστής που τρέχει το πρόγραμμα της απόφασηςμικροελεγκτής, πλακέτα όπως το Arduino ή το micro:bit
Ενεργοποιητής (actuator)μετατρέπει την απόφαση σε κίνηση ή δράσημοτέρ, τροχοί, λαβίδα, ηχείο, λαμπάκι

Ο κύκλος δεν τελειώνει ποτέ: μόλις το ρομπότ κινηθεί, το περιβάλλον αλλάζει, ο αισθητήρας δίνει νέα μέτρηση, και η απόφαση ξαναπαίρνεται. Ένα ρομπότ είναι στην ουσία του ένας βρόχος.

Η απόφαση ως πρόγραμμα

Η απόφαση είναι κώδικας, με τις δομές που ήδη ξέρεις. Ένα ρομπότ με αισθητήρα απόστασης μπροστά του:

distances = [80, 55, 30, 18, 12, 40]
for d in distances:
    if d < 20:
        action = "στροφή"
    elif d < 50:
        action = "αργά"
    else:
        action = "μπροστά"
    print(d, action)
80 μπροστά
55 μπροστά
30 αργά
18 στροφή
12 στροφή
40 αργά

Στο πραγματικό ρομπότ η λίστα δεν υπάρχει: κάθε τιμή έρχεται από τον αισθητήρα τη στιγμή που χρειάζεται, και το print είναι εντολή προς τα μοτέρ. Η λογική όμως είναι ακριβώς αυτή: ένας βρόχος, και μέσα του μια δομή επιλογής.

Κανόνες ή μάθηση

Το παραπάνω ρομπότ ακολουθεί κανόνες που έγραψε ένας άνθρωπος: «κάτω από 2020 εκατοστά, στρίψε». Για πολλά προβλήματα αυτό αρκεί. Για άλλα όμως κανείς δεν ξέρει να γράψει τους κανόνες. Πώς θα έγραφες, με if, τον κανόνα που ξεχωρίζει μια φωτογραφία γάτας από μια φωτογραφία σκύλου;

Η τεχνητή νοημοσύνη (ΤΝ) είναι ο κλάδος της πληροφορικής που φτιάχνει συστήματα για εργασίες που θεωρούμε ότι θέλουν νοημοσύνη: αναγνώριση εικόνας και ομιλίας, μετάφραση, παιχνίδια στρατηγικής, προτάσεις. Ο πιο διαδεδομένος τρόπος σήμερα είναι η μηχανική μάθηση (machine learning): αντί να γράψεις τους κανόνες, δίνεις στο σύστημα παραδείγματα και το αφήνεις να βρει μόνο του τον κανόνα.

Επιβλεπόμενη μάθηση με ένα παράδειγμα

Στην επιβλεπόμενη μάθηση (supervised learning) κάθε παράδειγμα έχει μια ετικέτα: τη σωστή απάντηση, που τη δίνει ένας άνθρωπος. Ας πούμε ότι ένα ρομπότ πρέπει να ακολουθεί μια μαύρη γραμμή σε άσπρο δάπεδο, με έναν αισθητήρα φωτός που δίνει μικρές τιμές στο σκούρο και μεγάλες στο ανοιχτό. Πού μπαίνει το όριο ανάμεσα σε «γραμμή» και «δάπεδο»;

Αντί να το μαντέψουμε, τοποθετούμε το ρομπότ σε οκτώ σημεία, γράφουμε τη μέτρηση και σημειώνουμε τι ήταν. Αυτά είναι τα δεδομένα εκπαίδευσης. Μετά, το πρόγραμμα δοκιμάζει κατώφλια από το 00 ως το 100100 και κρατά αυτό που κάνει τα λιγότερα λάθη:

values = [12, 20, 25, 31, 58, 64, 70, 85]
labels = ["γραμμή", "γραμμή", "γραμμή", "γραμμή",
          "δάπεδο", "δάπεδο", "δάπεδο", "δάπεδο"]

def classify(value, threshold):
    if value < threshold:
        return "γραμμή"
    return "δάπεδο"

def errors(threshold):
    wrong = 0
    for i in range(len(values)):
        if classify(values[i], threshold) != labels[i]:
            wrong = wrong + 1
    return wrong

best = 0
for t in range(0, 101, 5):
    if errors(t) < errors(best):
        best = t
print("κατώφλι:", best, "λάθη:", errors(best))
for v in [18, 47, 90]:
    print(v, classify(v, best))
κατώφλι: 35 λάθη: 0
18 γραμμή
47 δάπεδο
90 δάπεδο

Αυτή είναι η εκπαίδευση: το πρόγραμμα βρήκε τον κανόνα «κάτω από 3535 είναι γραμμή» από τα δεδομένα, χωρίς να του τον πει κανείς. Οι τρεις τελευταίες μετρήσεις είναι νέες, και το σύστημα τις κατατάσσει με τον κανόνα που έμαθε. Αυτό λέγεται πρόβλεψη.

Τα πραγματικά συστήματα, όπως αυτά που αναγνωρίζουν πρόσωπα ή μεταφράζουν, δουλεύουν με εκατομμύρια παραδείγματα και δισεκατομμύρια αριθμούς αντί για ένα κατώφλι. Η ιδέα όμως είναι η ίδια: ψάχνουν τις τιμές που κάνουν τα λιγότερα λάθη στα παραδείγματα.

Τα όρια

Τα συστήματα ΤΝ κάνουν εντυπωσιακά πράγματα, αλλά έχουν όρια που δεν φαίνονται από την επιφάνεια:

  • Ξέρουν μόνο όσα είδαν. Ένα σύστημα που εκπαιδεύτηκε με φωτογραφίες τη μέρα μπορεί να αποτυγχάνει τη νύχτα, χωρίς να «ξέρει» ότι αποτυγχάνει.
  • Κάνουν λάθη με σιγουριά. Ένα γλωσσικό μοντέλο μπορεί να γράψει μια πηγή, έναν αριθμό ή ένα γεγονός που δεν υπάρχει, με το ίδιο ύφος που γράφει τα σωστά. Ό,τι σημαντικό σού πει, το ελέγχεις.
  • Δεν καταλαβαίνουν όπως ο άνθρωπος. Βρίσκουν μοτίβα στα δεδομένα. Αν το μοτίβο είναι σύμπτωση, π.χ. όλες οι φωτογραφίες λύκων είχαν χιόνι, το σύστημα μπορεί να μάθει «χιόνι» αντί για «λύκος».

Ηθικά ζητήματα

Μεροληψία. Αν τα δεδομένα εκπαίδευσης αδικούν μια ομάδα ανθρώπων, το σύστημα θα αναπαραγάγει την αδικία, και μάλιστα με το κύρος μιας «αντικειμενικής» μηχανής. Ένα σύστημα αναγνώρισης προσώπου που εκπαιδεύτηκε κυρίως με πρόσωπα μίας ομάδας θα κάνει περισσότερα λάθη στις άλλες.

Ιδιωτικότητα. Η μηχανική μάθηση χρειάζεται δεδομένα, και πολλά από αυτά είναι δικά μας: φωτογραφίες, μηνύματα, φωνή, το πού πήγαμε. Ποιος τα μάζεψε, με ποια συγκατάθεση, και τι άλλο μπορεί να συμπεράνει κανείς από αυτά;

Ευθύνη. Αν ένα αυτόνομο όχημα προκαλέσει ατύχημα, ποιος ευθύνεται: ο κατασκευαστής, ο προγραμματιστής, ο ιδιοκτήτης; Η απόφαση δεν πάρθηκε από κανέναν άνθρωπο εκείνη τη στιγμή, αλλά κάποιος άνθρωπος έφτιαξε το σύστημα που την πήρε.

Παραπληροφόρηση. Εικόνες, ήχος και βίντεο που μοιάζουν αληθινά μπορούν πλέον να παραχθούν αυτόματα (deepfakes). Μια φωτογραφία ή μια ηχογράφηση δεν είναι πια από μόνη της απόδειξη.

Εργασία. Κάποιες δουλειές αυτοματοποιούνται, άλλες αλλάζουν, και νέες δημιουργούνται. Το ερώτημα δεν είναι μόνο τεχνικό αλλά και κοινωνικό: ποιος ωφελείται από την αυτοματοποίηση;

Λυμένα παραδείγματα

Παράδειγμα 1

Μια αυτόματη πόρτα σούπερ μάρκετ ανοίγει όταν πλησιάζει κάποιος. Ποιος είναι ο αισθητήρας, ποια η απόφαση και ποιος ο ενεργοποιητής;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 2

Στα δεδομένα εκπαίδευσης του αισθητήρα φωτός προστίθεται ένα ακόμα παράδειγμα: τιμή 40, με ετικέτα «γραμμή». Ποιο κατώφλι θα βρει τώρα το πρόγραμμα, και τι θα πει για τη μέτρηση 47;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 3

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

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Ασκήσεις

Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.

Πολλαπλή επιλογήΆσκηση 1 από 14
Σε μια σκούπα-ρομπότ, τι είναι τα μοτέρ που γυρίζουν τους τροχούς;

Τα κατάφερες;

  • Να περιγράφεις ένα ρομπότ ως κύκλο αισθητήρας, απόφαση, ενεργοποιητής.
  • Να ξεχωρίζεις ένα σύστημα με γραμμένους κανόνες από ένα σύστημα που μαθαίνει από δεδομένα.
  • Να εξηγείς την επιβλεπόμενη μάθηση με δεδομένα εκπαίδευσης, ετικέτες και δεδομένα ελέγχου.
  • Να αναγνωρίζεις τα όρια της τεχνητής νοημοσύνης και ηθικά ζητήματα όπως η μεροληψία, η ιδιωτικότητα και η ευθύνη.

Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.