ΤΕΣΤ (ΑΣΚΗΣΕΙΣ) ONLINE
31 Tests / Διαγωνίσματα

Ενότητα 4 – Δραστηριότητες – Σελίδα 51 – ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ ΓΥΜΝΑΣΙΟΥ – Απαντήσεις – Λύσεις

(Πηγή: Βιβλίο Μαθητή, Πληροφορική Γ΄ Γυμνασίου, Κεφάλαιο 4 «Τεχνητή Νοημοσύνη», σελ. 51. Το κεφάλαιο (§4.1 Εισαγωγή, §4.2 Μηχανική Μάθηση με Νευρωνικά Δίκτυα, §4.3 Το περιβάλλον App Inventor, §4.4 Αναγνώριση εικόνων με αξιοποίηση Τεχνητής Νοημοσύνης) δεν έχει δικό του «Ερωτήσεις» υποκεφάλαιο στο ΠΕΡΙΕΧΟΜΕΝΑ, άρα δεν υπάρχει προϋπάρχον lyseis αρχείο από τη Φάση 1 για το Κεφάλαιο 4. Η «Δραστηριότητα 1» παρακάτω είναι ένα τοπικά αριθμημένο κουτί ενσωματωμένο μέσα στη θεωρία του §4.4, αμέσως μετά το παράδειγμα μπλοκ της επέκτασης LookExtension. Η εκφώνηση είναι αυτούσια από το σχολικό βιβλίο.)

Δραστηριότητες Κεφαλαίου 4

Δραστηριότητα 1 (σελ. 51)

Μελετήστε το έργο PersonalImageClassifier στη διεύθυνση

https://appinventor.mit.edu/explore/resources/ai/personal-image-classifier-part1

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

Σκέψη / Μεθοδολογία: Πρόκειται για project-building δραστηριότητα χωρίς μοναδική σωστή έξοδο (κάθε μαθητής/ομάδα επιλέγει διαφορετικές κατηγορίες/φωτογραφίες) — γι' αυτό δίνουμε πλήρη, τεχνικά ορθή, βηματική λύση: πρώτα πώς εκπαιδεύεται ένα προσωπικό μοντέλο αναγνώρισης εικόνων (ίδια λογική μεταφοράς μάθησης/transfer learning με το κύριο κείμενο του §4.4, με τη διαφορά ότι εδώ ΕΜΕΙΣ ορίζουμε τις κατηγορίες), και μετά πώς αυτό το μοντέλο ενσωματώνεται σε πραγματική εφαρμογή App Inventor — με τα ίδια ακριβώς blocks (GotClassification → διπλό select list item) που είναι ήδη τυπωμένα λίγο πιο πάνω στην ίδια σελίδα του βιβλίου για το γενικό μοντέλο LookExtension, αφού το PersonalImageClassifier ανήκει στην ίδια οικογένεια επεκτάσεων με ταυτόσημο σχήμα αποτελέσματος.

Λύση:

Βήμα Α — Εκπαίδευση προσωπικού μοντέλου (ιστότοπος-εργαλείο classifier.appinventor.mit.edu):

  1. Ανοίγουμε σε browser με πρόσβαση σε κάμερα τη διεύθυνση classifier.appinventor.mit.edu.
  2. Ορίζουμε τουλάχιστον 2 ετικέτες (labels) — τις κατηγορίες που θέλουμε να ξεχωρίζει η εφαρμογή μας (π.χ. «μολύβι» / «γόμα», ή «χαμογελαστό πρόσωπο» / «σοβαρό πρόσωπο»).
  3. Για κάθε ετικέτα τραβάμε πολλές (τουλάχιστον 20-30) φωτογραφίες δείγματος με την κάμερα, σε διαφορετική γωνία/φωτισμό/απόσταση, ώστε το μοντέλο να γενικεύει και όχι να «απομνημονεύει» μία μόνο φωτογραφία.

Βήμα Β — Εκπαίδευση (Train): Πατάμε το κουμπί εκπαίδευσης· το εργαλείο εκπαιδεύει —πίσω από τις σκηνές, με τεχνική μεταφοράς μάθησης πάνω σε ήδη εκπαιδευμένο δίκτυο, ίδια λογική με το §4.4— ένα μικρό νευρωνικό δίκτυο πάνω στις δικές μας φωτογραφίες, δείχνοντας σε πραγματικό χρόνο μετρικές όπως ο χρόνος εκπαίδευσης και το «loss» (πόσο καλά ταξινομεί προς το παρόν τις εικόνες που του δώσαμε).

Βήμα Γ — Έλεγχος/αξιολόγηση: Δοκιμάζουμε το μοντέλο με νέες φωτογραφίες που ΔΕΝ χρησιμοποιήθηκαν στην εκπαίδευση. Το εργαλείο δείχνει έναν πίνακα σωστών/λανθασμένων ταξινομήσεων και ένα γράφημα εμπιστοσύνης (confidence) ανά ετικέτα. Αν κάποια κατηγορία μπερδεύεται συχνά, προσθέτουμε περισσότερα/διαφορετικά δείγματα σε αυτήν και ξανα-εκπαιδεύουμε.

Βήμα Δ — Λήψη μοντέλου: Όταν είμαστε ικανοποιημένοι, κατεβάζουμε (download) το τελικό εκπαιδευμένο μοντέλο ως αρχείο στον υπολογιστή μας.

Βήμα Ε — Designer στο App Inventor: Δημιουργούμε νέο έργο και προσθέτουμε:

  • ένα Camera1 (κάμερα)·
  • την επέκταση PersonalImageClassifier1 (Extension → Import extension, το αρχείο .aix από mit-cml.github.io/extensions), και στις ιδιότητές της ανεβάζουμε (Upload File…) το μοντέλο που κατεβάσαμε στο Βήμα Δ ως asset του έργου·
  • ένα Button1 με κείμενο «Ταξινόμησε»·
  • ένα Label1 όπου θα εμφανίζεται το αποτέλεσμα.

Βήμα ΣΤ — Blocks στο App Inventor:

when PersonalImageClassifier1.ClassifierReady
do   set Label1.Text to "Το μοντέλο είναι έτοιμο!"

when Button1.Click
do   call PersonalImageClassifier1.ClassifyVideoData

when PersonalImageClassifier1.GotClassification
result
do   set Label1.Text to (select list item (select list item (get result, index 1), index 1))

Επεξήγηση: το ClassifierReady ενεργοποιείται όταν η επέκταση φορτώσει επιτυχώς το μοντέλο μας. Το ClassifyVideoData παίρνει την τρέχουσα εικόνα της κάμερας και ζητά ταξινόμηση. Το GotClassification ενεργοποιείται μόλις ολοκληρωθεί η ταξινόμηση και επιστρέφει τη λίστα result: μια λίστα από ζεύγη [ετικέτα, εμπιστοσύνη] ταξινομημένη κατά φθίνουσα εμπιστοσύνη — άρα το πρώτο στοιχείο της λίστας (index 1) είναι το πιο πιθανό ζεύγος, και το πρώτο στοιχείο ΑΥΤΟΥ του ζεύγους (πάλι index 1) είναι το όνομα της ετικέτας — ακριβώς το ίδιο μοτίβο διπλού select list item που είναι ήδη τυπωμένο στην ίδια σελίδα του βιβλίου για το Look1.GotClassification.

Βήμα Ζ — Δοκιμή: Συνδέουμε το κινητό μέσω AI Companion (§4.3), στρέφουμε την κάμερα στο αντικείμενο που θέλουμε να αναγνωρίσουμε και πατάμε «Ταξινόμησε» — η ετικέτα εμφανίζεται στο Label1.

Απάντηση (σύνοψη): (1) εκπαιδεύουμε προσωπικό μοντέλο στο classifier.appinventor.mit.edu ορίζοντας δικές μας ετικέτες/φωτογραφίες και κατεβάζουμε το αποτέλεσμα· (2) στο App Inventor προσθέτουμε Camera1, την επέκταση PersonalImageClassifier1 (με το μοντέλο μας ως asset), Button1 και Label1· (3) στα Blocks: when...ClassifierReady ενημερώνει ότι το μοντέλο φόρτωσε, when Button1.Click καλεί ClassifyVideoData, και when...GotClassification διαβάζει το πρώτο (πιο πιθανό) ζεύγος [ετικέτα, εμπιστοσύνη] της λίστας result με διπλό select list item και το εμφανίζει στο Label1.Text — ίδιο μοτίβο μπλοκ με το παράδειγμα LookExtension του κυρίως κειμένου, με τη διαφορά ότι εδώ το μοντέλο το εκπαιδεύσαμε εμείς οι ίδιοι, όχι έτοιμο γενικό μοντέλο.

Πρόσεξε:

  • Το LookExtension του κυρίως κειμένου §4.4 είναι ήδη εκπαιδευμένο σε γενικές κατηγορίες καθημερινών αντικειμένων (δεν χρειάζεται δικά μας δεδομένα)· το PersonalImageClassifier αυτής της Δραστηριότητας κάνει το αντίθετο: εμείς ορίζουμε τις κατηγορίες και δίνουμε τα δικά μας παραδείγματα εικόνων — αυτή είναι η ουσία της «προσωπικής» (personal) εκπαίδευσης.
  • Χρειάζονται αρκετά (τουλάχιστον 15-20) και ποικίλα παραδείγματα ανά κατηγορία — λίγα ή πολύ όμοια μεταξύ τους παραδείγματα οδηγούν σε μοντέλο που δεν γενικεύει καλά σε νέες φωτογραφίες.
  • Το ίδιο το βιβλίο δεν δίνει μοναδική «σωστή» απάντηση σε αυτή τη Δραστηριότητα (είναι ανοιχτού τύπου project) — η λύση εδώ είναι το πλήρες και τεχνικά έγκυρο βήμα-βήμα workflow, όχι ένα συγκεκριμένο αποτέλεσμα ταξινόμησης.
 ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ