Σάββατο 13 Φεβρουαρίου 2010

Τεχνητή νοημοσύνη.


Real stupidity beats artificial intellignce every time - Terry Pratchett, Hogfather.

Η τεχνητή νοημοσύνη είναι κακιά κουβέντα ("artficial intelligence is a four-letter word"). Στη σχολή μου, το μάθημα λέγεται "Intelligent Systems", "νοήμονα συστήματα". Σε φάση "πώς να το πώ για να μη με κράξουνε". Το συζητάω με φίλους και μου λένε "μα η τεχνητή νοημοσύνη έχει αποτύχει". Από την άποψη οτι δεν έχει καταφέρει κανείς να φτιάξει μια μηχανή (ή να γράψει ένα πρόγραμμα- και πού θα το έτρεχε;) που να σκέφτεται σαν άνθρωπος, ή τουλάχιστον να περνάει το τεστ Τιούρινγκ.

Όχι οτι είναι δύσκολο να φτιάξεις μια μηχανή που να σκέφτεται και να ενεργεί σαν άνθρωπος. Η διαδικασία είναι μάλλον απλή, δεν χρειάζεται ιδιαίτερες γνώσεις (το αντίθετο μάλιστα) και είναι συχνά ιδιαίτερα ευχάριστη. Γι' αυτό έχουμε γύρω στα εννιά δισεκατομύρια τέτοιες μηχανές σε λειτουργία, κι όλο αυξανόμαστε.

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

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

Όποτε ψάχνω στο Google, ή χρησιμοποιώ ένα πρόγραμμα μετάφρασης από το δίκτυο, ή σαρώνω το πισί μου για ιούς, ή παίζω Total War, χρησιμοποιώ ένα πρόγραμμα με τεχνητή νοημοσύνη.

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

Η ρίζα, το ζουμί, της τεχνητής νοημοσύνης είναι η αναζήτηση ενός αντικειμένου σε ένα σύνολο πιθανών στόχων (ναι, ακριβώς όπως λέμε ψύλλος στ' άχυρα). Για παράδειγμα, η επιλογή της επόμενης κίνησης σε μια παρτίδα τάβλι (άντε, σκάκι). Η αναζήτηση τάξης και νοήματος σε μία σειρά ήχων, όπως στη μουσική ή την ομιλία. Η αναγνώριση εικόνας... ωπ, εδώ πάμε σε βαθειά νερά!

Το 1997 ο υπερυπολογιστής Deep Blue της IBM κέρδισε τον Gary Kasparov στο σκάκι. Η εταιρία έσπευσε να εξηγήσει οτι το μηχάνημά τους δεν είναι ένα σατανικό τεχνητό μυαλό που θα κατακτήσει τον κόσμο αν το αφήσουμε στην πρίζα:

Χρησιμοποιεί ο Deep Blue τεχνητή νοημοσύνη;
Η σύντομη απάντηση είναι "όχι". (...) Η μακροσκελής απάντηση είναι "όχι". Η "Τεχνητή Νοημοσύνη" είναι πιο επιτυχημένη στην επιστημονική φαντασία παρά εδώ στη γη και δεν χρειάζεται να είσαι ο Ισαάκ Ασίμωφ για να ξέρεις γιατί είναι δύσκολο να σχεδιάσεις ένα μηχάνημα που να μιμείται μια διαδικασία που καλά-καλά δεν καταλαβαίνουμε εντελώς. Το πώς σκεφτόμαστε είναι ένα ερώτημα χωρίς απάντηση. Ο Deep Blue δε θα μπορούσε ποτέ να είναι Hal-2000 [η "κακιά" ΤΝ από την Οδύσσεια 2000 του Στάνλει Κιούμπρικ] ακόμη κι αν προσπαθούσε. Ούτε θα μπορούσε να σκεφτεί ο Deep Blue να "προσπαθήσει".

(Απελθέτω απ' εμού, φτου φτου φτου).

Η πιο στοιχειώδης τεχνική προγραμματισμού στην τεχνητή νοημοσύνη, είναι το λογικό σχήμα "if-then-else". Για παράδειγμα:
If the water is colder than 40°
..........Then turn the heater ON
If the water is hotter than 60°
..........Then turn the heater OFF
Else
..........Keep the heater ON.
Συμβαίνει απλά αυτή να είναι επίσης η πιο στοιχειώδης τεχνική προγραμματισμού, γενικά, από την εποχή τουλάχιστον που την πρωτοχρησιμοποίησε ο Jon McCarty στη γλώσσα Lisp (μια κλασσική γλώσσα τεχνητής νοημοσύνης). Οι σύγχρονες γλώσσες προγραμματισμού χρησιμοποιούν λογική για να κατευθύνουν τη ροή ενός προγράμματος. Στο κέντρο κάθε προγράμματος των windows, υπάρχει ένα μακρύ "case statement" δηλαδή μια διαφορετική διατύπωση του if-then-else. Στο επίπεδο των συσκευών βέβαια η σχέση της λογικής με την πληροφορική είναι μπροστά στα μάτια σου κι η συνεχής άρνηση οτι η τεχνητή νοημοσύνη είναι εδώ και τη χρησιμοποιούμε καθημερινά, στο σπίτι, στο σχολείο, στη δουλειά, στο κολατσιό, είναι γελοία. Τα λογικά κυκλώματα είναι κατευθείαν εφαρμογές της λογικής του Boole στη λήψη αποφάσεων και την τοποθέτηση πληροφορίας στη μνήμη. Αν οι υπολογιστές λειτουργούν με τον τρόπο που σκεφτόμαστε -επειδή τους έχουμε σχεδιάσει εμείς- τότε έχουμε μηχανές που σκέφτονται όπως εμείς.

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

Προς το παρόν σκέφτομαι του χρόνου του παραχρόνου να κάνω ένα μάστερς (τσαμπέ) στην τεχνητή νοημοσύνη. Έτσι για να έχω να λέω ανέκδοτα. "Και πού κάνεις πιάτσα μωρό μου;" "Στο πανεπιστήμιο του Sussex, κάνω μάστερς στην τεχνητή νοημοσύνη. Θες λίγη;".

(πολιτικό σχόλιο)



Σ' άρεσε; Δεν κατάλαβες γρυ; Είσαγε τους κάτωθι όρους στην προτιμητέα σου μηχανή αναζήτησης: expert systems, knowledge systems, machine learning, natural language processing, computer vision, heuristic search, Lisp, Prolog, Logic Theorist, machine reasoning, MYCIN, certainty factor, Bool, Boolean, Boolean Algebra, Turing machine, Turing completeness, if-then-else, modus ponens, lamda calculus, theorem proving, ontology, automated answering system, parallelism, Bertrand Russel, Kurt Goedel, Alan Turing, Erich Von Neumann, REPL, ELIZA, ASIMO, forward chaining, backward chaining, neural network, Mars Rover, Deep Blue, Deep Thought, φιου. Και καλό ταξίδι.

22 σχόλια:

Ο χρήστης Blogger Unknown είπε...

Δεν μου λες εσύ κάτι!

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

Καλησπέρα και καλό τριήμερο!

Σάββατο 13 Φεβρουαρίου 2010 στις 6:12:00 μ.μ. EET  
Ο χρήστης Anonymous Ανώνυμος είπε...

Το παραπάνω μοντέλο είναι το τρίτο στην σειρά "παπανδρέου", και αν και το πιο εξελιγμένο, ούτε κι αυτό δεν περνά το τεστ τιούριγκ.

Κυριακή 14 Φεβρουαρίου 2010 στις 12:19:00 μ.μ. EET  
Ο χρήστης Blogger xomeritis είπε...

Κακιά είσαι που θα μου πεις τον HAL κακό. I still have a crash on him, THEY crashed him, he meant good.

Έκλαιγα στο 2010 με αυτές τις ατάκες:

HAL: Dr Chandra, will I dream?
Dr Chandra: I don't know.

και

HAL:What is going to happen?
Dave: Something wonderful.
HAL: I'm afraid.
Dave: Don't be. We'll be together.
HAL: Where will we be?
Dave: Where I am now.

Κυριακή 14 Φεβρουαρίου 2010 στις 8:07:00 μ.μ. EET  
Ο χρήστης Blogger χ.ζ. είπε...

Για την ακρίβεια η διαδικασία if then else, μπορεί να ονομαστεί και αλγόριθμος. Ο προγραμματισμός πιθανών στόχων ή συνδυασμών με ελεύθερες αναλογίες. Οι πρώτες μηχανές αυτοματοποιημένων απαντήσεων εμφανιστηκαν πριν 1000 χρόνια ή και παλιότερα, με προγραμματισμό στο χαρτί απαντήσεων και κάποια πιθανότητα συνδυασμού τους. Μήπως ο όρος Τεχνητή Νοημοσύνη έχει να κάνει με τις μηχανές που χρησιμοποιούν ρεύμα; δεν ξέρω. Πώς θα μπορούσαμε να το ορίσουμε επακριβώς;

(χεχε...θα σου βάλω και References:)

http://en.wikipedia.org/wiki/Ars_Magna_(Ramon_Llull)#Ars_generalis_ultima_.28Ars_Magna.29

Kοίτα πιο κάτω λίγο στο Ars generalis ultima (Ars Magna)

Δευτέρα 15 Φεβρουαρίου 2010 στις 4:03:00 μ.μ. EET  
Ο χρήστης Blogger stassa είπε...

Bear,
Χάχα, εγώ θα προγραμματίσω το ρομπότ που θα τον πλακώσει στις φάπες αυτόν, έτσι και δεν συμμορφωθεί!

Ανώνυμε,
...πέρασε το τεστ Κάλπης όμως... άστα να πάνε.

Τόμας,
Έχεις δίκιο. Κι εγώ είχα στεναχωρηθεί που το σκοτώσανε το μηχάνημα (με τους αστροναύτες για κάποιο λόγο δεν πολυσκοτίστηκα, ούτε θυμάμαι πώς τους σκότωσε). Πάω να του βάλω εισαγωγικά στο "κακιά".

χ.ζ.
Μα ναι, τα ηλεκτρόνια δεν έχουνε κάποια μαγική ιδιότητα που τους επιτρέπει να σκέφτονται, άρα αν μπορείς να έχεις μια μηχανή που σκέφτεται με ηλεκτρόνια, μπορείς να έχεις και μια μηχανή που σκέφτεται με χαρτί- ή με ξύλο, με νερό, με αέρα κλπ. Για παράδειγμα, υπάρχουν λογικά κυκλώματα που λειτουργούν με πεπιεσμένο αέρα. Όπως η Βουλή των Ελλήνων.

Η διαφορά είναι οτι οι ηλεκτρονικοί (και μηχανικοί κλπ) υπολογιστές έχουν τη δική τους μονάδα λογικής (συγκεκριμμένα, αριθμητικής λογικής, arithmetic logic unit). Ενώ μια "κλασσική" μηχανή Τιούρινγκ, με μολύβι και χαρτοταινία, χρειάζεται έναν ανθρώπινο εγκέφαλο για να λειτουργήσει- όπως κι οι δίσκοι του Lull (ευχαριστώ για το λινκ :). Πάντα βέβαια χρειάζεσαι τον ανθρώπινο χειριστή, τουλάχιστον για να προγραμματίσει τη μηχανή.

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

Χμ, δεν ξέρω αν θα έλεγα το if statement αλγόριθμο. Ανάλογα με το επίπεδο που το βλέπεις. Στο επίπεδο της συσκευής η λογική συνεπαγωγή (logical implication) συνήθως δεν εφαρμόζεται ως ξεχωριστό λογικό κύκλωμα (logic gate), αλλά σαν συνδυασμός AND και OR κυκλωμάτων. Από αυτή την άποψη μπορείς να πεις οτι πρόκειται όντως για αλγόριθμο με την αυστηρή έννοια του όρου (εφαρμογή μιας μεθόδου για την εξαγωγή ενός αποτελέσματος). Στο επίπεδο του προγραμματιστή όμως λειτουργεί συνήθως ως σκελετός για έναν αλγόριθμο, ή συστατικό του. Βασικά, είναι μια διαδικασία που συνήθως περιλαμβάνεται σε κάθε αλγόριθμο.

Δευτέρα 15 Φεβρουαρίου 2010 στις 5:03:00 μ.μ. EET  
Ο χρήστης Blogger Unknown είπε...

Να κάτι που βρήκα σχετικό με το ποστ σου.
Από χείλη Αινστάιν.

" Η τεχνική νοημοσύνη δεν μπορεί να νικήσει την φυσική ηλιθιότητα."

Καλό εεεε;

Παρασκευή 19 Φεβρουαρίου 2010 στις 3:07:00 μ.μ. EET  
Ο χρήστης Blogger χ.ζ. είπε...

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

Δευτέρα 22 Φεβρουαρίου 2010 στις 12:11:00 π.μ. EET  
Ο χρήστης Blogger stassa είπε...

χ, ζ
Όχι, καλά το λες, έτσι τον καταλαβαίνω κι εγώ τον αλγόριθμο, μια μεθοδος για την εξαγωγή ενός αποτελέσματος. Απλά έλεγα οτι το "if-then-else" σχήμα από μόνο του δεν είναι το ίδιο αλγόριθμος αλλά μία δομή αλγόριθμου, οτι δηλαδή μπορεί να το χρησιμοποιήσεις σε κάποιο στάδιο ενός αλγόριθμου. Μπορεί όμως να έχεις κι αλγόριθμους που να μην στηρίζονται στην συνεπαγωγή (implication. Ελπίζω!) Ας πούμε, έναν πολύ απλό αλγόριθμο μπορεί να έχεις με ένα σκέτο "AND", σύζευξη. Για παράδειγμα "πρόσθεσε 1 στο Χ ΚΑΙ αφαίρεσε 1 από το Χ". Παρομοίως για ΝΟΤ, ΟR κλπ.

Γενικώς το IF->THEN είναι λίγο προχώ σχήμα, αν το καλοσκεφτείς. Γι' αυτό άλλωστε σου ανοίγει και τόσες δυνατότητες. Ενδεικτικά, πριν τη LISP (1958) οι γλώσσες προγραμματισμού δεν είχαν IF. Και για αρκετό καιρό μετά ακόμη χρησιμοποιούσαν "unconditional jumps", δηλαδή περνούσαν τον έλεγχο σε άλλα κομμάτια του προγράμματος με το GOTO, χωρίς αλεξίπτωτο.

Ε ναι, μετά το μάστερ είσαι μάστορας, χεχε :) Τί σπουδάζεις;

Bear,
Καλό αλλά παλιό, χεχε.

Δευτέρα 22 Φεβρουαρίου 2010 στις 4:44:00 π.μ. EET  
Ο χρήστης Blogger χ.ζ. είπε...

μμμμ...τωρα εχω διακοψει το μάστερ το δικό μου λόγω δουλειάς στην ελλάδα. Γενικά σπούδαζα ηλεκτρονική μουσική σύνθεση, (ηλεκτρακουστική σωστότερα) μέθοδος σύνθεσης δηλαδή με ηλεκτρονική διαμόρφωση ήχων, αλλά ο βασικός δάσκαλός μου ήταν ειδικός στη χρήση αλγορίθμων στη σύνθεση μουσικής. (αλά Ξανάκη ή Στοκχάουζεν έτσι αν ξέρεις περίπου). Έγραψε μάλιστα κι ένα βιβλίο τολύ λεπτομερές και λίγο δύσκολο να πω την αλήθεια για τη χρήση τους στη μουσική, (http://www.powells.com/biblio/9783211755396?p_wgt&PID=34501) αλλά στο εισαγωγικό κεφάλαιο μιλάει για κατηγορίες αλγορίθμων κλπ και ιστορικά, οπότε επειδή μου άρεσε πολύ έκανα μαζί του 3 εξάμηνα και πήρα χαμπάρι. Έγραψα και δύο κομμάτια, ένα με Markov Models κι ένα με συνδυασμό Markov με Generative Grammar. Μ΄ αρέσουνε δε μπορώ να πω....εχουνε ένα μυστήριο!

Δευτέρα 22 Φεβρουαρίου 2010 στις 2:15:00 μ.μ. EET  
Ο χρήστης Blogger χ.ζ. είπε...

πάντως ναι έχεις δίκιο... το if then έχει πολύ ενδιαφέρον...ειδικά όταν για κάθε if δε δίνεις μόνο ένα «στοιχείο» αλλά ένα συνδυασμό στοιχείων. Έτσι έκανα με το κομμάτι generative grammar, που όταν (if) ο Μάρκωφ έδινε πχ μια απάντηση 3 φορές την ίδια είχα πει εγώ (then) να αλλάζει και να γίνεται μια ακολουθία μετά από 4 διαφορετικές απαντήσεις. Γενικά ο Δάσκαλος ( :)) δεν ήθελε να πειράζεις τον αλγόριθμο αφού τον έφτιαχνες. Εγώ σαν έλλην άμα δε μάρεσε το αποτέλεσμα του άλλαζα τα φώτα στη διόρθωση με το χέρι, δηλαδή συχνά χαλουσα τον αλγόριθμο...Ε με ένοιαζε η μουσική όμως εμένα κι όχι η νομοτέλεια! Ντάξει γιαυτό μαρέσει η Τέχνη κι όχι ο HC προγραμματισμός...γιατί κάνεις ότι ναναι χωρίς ζημιά.

Δευτέρα 22 Φεβρουαρίου 2010 στις 2:24:00 μ.μ. EET  
Ο χρήστης Blogger stassa είπε...

Ωραίος. Μ' έβαλες να κάθομαι όλο το πρωί (γκουχ γκουχ) ν' ακούω την ακολουθία Φιμπονάτσι, σε κανόνα, από την On-Line Encyclopedia of Integer Sequences. :)

(Έψαχνα στη βικιπαίδεια για τις Markov chains και βγήκα σ' αυτό το σάιτ... καλό το ίντερνετ, ε;)

Καλά, με το χέρι τα κάνατε αυτά; Θέλω να πω, δεν μπορεί, κάποιος θά 'χει γράψει κάποιο προγραμματάκι που να κάνει αυτή τη δουλειά; Χμμ, όμως έχει την απόλαυσή της η διαδικασία, ε; Χεχε.. :)

Η generative grammar θά 'λεγα οτι άπτεται άμεσα της τεχνητής νοημοσύνης, στον τομέα της κατανόησης και σύνθεσης λόγου... που είναι μακρυά ακόμη και είναι λίγο βαθειά νερά ΤΝ, που δεν κολυμπάμε γιατί έχει σκυλόψαρα. Αν θες να γελάσεις (πικρά) κοίτα στην βικιπαίδεια ή στο google για "AI winter". Η σύνθεση μουσικής μάλλον είναι πιο εύκολη από τη σύνθεση λόγου, δεδομένου οτι η μουσική είναι πιο αφηρημένη.

Εννοείται οτι μ' ενδιαφέρει πολύ ν' ακούσω τα αποτελέσματά σου (τα κομμάτια που αναφέρεις ντε) κι ό,τι άλλο έχεις την ευγενή καλοσύνη να μου υποδείξεις. Θα το ψάξω κι εγώ λίγο, ας είναι καλά το γιουτούμπ :)

Δευτέρα 22 Φεβρουαρίου 2010 στις 3:52:00 μ.μ. EET  
Ο χρήστης Blogger χ.ζ. είπε...

έχεις δίκιο για τη σύνθεση μουσικής...η διαδοχή ήχων είναι λιγότερο απαιτητική από τη διαδοχή λέξεων, όπου το νόημα πρέπει να είναι 100% συγκεκριμένο, και σε διαδοχή λέξεων (πχ όχι 2 ρήματα στη σειρά) αλλά και σε μήκος πρότασης..

Ο Δάσκαλος ήθελε να μάθουμε με το χέρι ώστε να είμαστε σίγουροι και μετά να πιάσουμε υπολογιστή. Οι κανόνες μου για το πρώτο κομμάτι ήταν πίνακες σε πέντε έξι σελίδες, όλα if then else. Ειδικότερα θα σου στείλω μέιλ. Προς το παρόν...καλό κάψιμο με τα cellular automata :).

Είναι νόμοι από μαύρα και άσπρα κουτάκια που κάθε νόμος περιλαμβάνει διάφορους πιθανούς συνδυασμούς γειτνίασης άσπρων και μαύρων κουτακίων. Τα if ειναι τα τρία πάνω στο υποθετικό «Τ» και το αποτέλεσμα είναι το κουτάκι από κάτω το μόνο, η κάτω άκρη του «Τ».

http://www.kidojo.com/cellauto/generate.cgi

(Μην ξεχάσεις να πατάς πού και πού και το random top line.)

Δευτέρα 22 Φεβρουαρίου 2010 στις 5:55:00 μ.μ. EET  
Ο χρήστης Blogger Αιθεροβάμων είπε...

Αυτό το σχόλιο αφαιρέθηκε από τον συντάκτη.

Τετάρτη 24 Φεβρουαρίου 2010 στις 3:04:00 π.μ. EET  
Ο χρήστης Blogger Αιθεροβάμων είπε...

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

Κάπου εδώ τυχερά ρίγη διαπέρασαν το κορμί μου (ε καλά, όχι έτσι ακριβώς έτσι...). Θέλω να ασχοληθώ με ακριβώς αυτό το πράγμα και δεν ξέρω από πού ξεκινάει κανείς και τι μπορεί να κάνει μόνος του γι' αρχή... Καμιά ιδέα;

Ως προς την ΤΝ είναι όντως καιρός να αρχίσουμε όλοι να το βλέπουμε ψύχραιμα το θέμα. Η καταστροφή του κόσμου δε θα έρθει από τα έμπειρα συστήματα. Από τα νευρωνικά δίκτυα και θα έρθει. :p

Υ.Γ.1 Ως προς την if...όντως είναι θέμα οπτικής. Σε μια γλώσσα προγραμματισμού, είναι απλά μια εντολή. Εννοιολογικά μιλώντας, είναι μάλλον το βασικότερο δομικό στοιχείο ενός αλγορίθμου, μετά τις βασικές αριθμητικές και λογικές πράξεις. Και αν ποτέ σου τύχει (που ουαί κι αλίμονο αν σου τύχει...) να το αντιμετωπίσεις το θέμα σε επίπεδο μικροκώδικα....μπορεί να γίνει από μόνη της ολόκληρο πρόγραμμα (Άτιμο εργαστήριο αρχιτεκτονικής, ως πότε θα σε χρωστάω...;)

Υ.Γ.2 Πραγματικά πιστεύω ότι ο μόνος λόγος που η ΤΝ είναι τόσο παρεξηγημένη, είναι ότι είναι τόσο "underground". Βρίσκεις ρε παιδί μου αναφορές γι΄αυτήν στο sci-fi ας πούμε, αλλά πρακτικά δε νομίζω ότι ήταν ποτέ "trendy". Και τώρα, παρότι υπάρχει σχετικό ερευνητικό έργο, ε δεν είναι και δημοφιλής προγραμματιστική επιλογή. Βέβαια ακριβώς γι' αυτό το λόγο και λόγω του fancy ονόματος, όσοι έχουμε ασχοληθεί μπορούμε να πουλάμε μούρη ευκολότερα... αρκεί να μην αναφερθούμε ποτέ στη fuzzy logic, που παραπέμπει σε διαφήμιση πλυντηρίου των 90's, οπότε χάνει την αίγλη του το πράγμα κάπως.

Τετάρτη 24 Φεβρουαρίου 2010 στις 3:06:00 π.μ. EET  
Ο χρήστης Blogger stassa είπε...

...τον κόσμο θα τον κατατρέψουνε νέφη νανομηχανών συνδεμένα σε νευρωνικά δίκτυα... να λέμε τα πράγματα ως έχουν! :P

Να σου πώ, για το αν ήταν η ΤΝ δημοφιλής ποτέ, δεν ξέρω, ίσως κάποιες εποχές στο παρελθόν. Αυτές που ήταν trendy -αν μπορείς να το πιστέψεις- ήταν οι γλώσσες της ΤΝ, η LISP και ή Prolog. Η μεν LISP είχε γίνει σουξέ την εποχή με τις Lisp Machines, αν έχεις ακουστά, η δε Prolog με το πείραμα της "πέμπτης γενιάς υπολογιστών" των Γιαπωνέζων. Διάβαζα τώρα ένα βιβλίο για την Prolog και στον πρόλογο ο συγγραφέας είναι σίγουρος μιλάμε οτι τα επόμενα χρόνια, η Prolog θα είναι σ' όλους τους υπολογιστές και θ' αντικαταστήσει την Basic. Αυτά το 1987.

Δυστυχώς μετά η φούσκα ξεφούσκωσε και τώρα είμαστε εκεί που λες, η ΤΝ κι η LISP κι η Prolog να είναι underground... κρίμα γιατί εγώ τις γουστάρω πολύ, την Prolog ιδίως που την κατέχω καλύτερα. Το ίδιο γίνεται και με την ΤΝ γενικότερα νομίζω, πρώτα βγαίνουνε μερικοί και τα παραφουσκώνουνε κι ύστερα ξεφουσκώνει το πράγμα και χάνει την εμπιστοσύνη του -και την υπομονή του- ο κόσμος.

...όταν λες μικροκώδικα σε εργαστήριο αρχιτεκτονικής, συνάγω οτι δεν εννοείς αρχιτεκτονική με κολώνες και παράθυρα, ε; :) Δε χαλιέμαι, άλλωστε είμαι χαμηλού επιπέδου άτομο :D Προς το παρόν όμως τέτοιες δουλειές έχω κάνει μόνο στο χαρτί (ή μάλλον στο spreadsheet... και σ' ένα προγραμματάκι που λέγεται Digital Works. Εσείς τα κάντετε κυριλέ σε πλακέτες, εεε;).

(Εκόλ Πολυτεκνίκ ντε Πατράς; Τό 'χω;)

Τετάρτη 24 Φεβρουαρίου 2010 στις 4:13:00 μ.μ. EET  
Ο χρήστης Blogger Αιθεροβάμων είπε...

Μαι ουί μα σερ, σε συγχαίρω για την ευστοχία σου.

Το εν λόγω εργαστήριο ουσιαστικά είναι προγραμματισμός σε binary code και επειδή εγώ είμαι μια κυρία και σαφέστατα υψηλού επιπέδου το χρωστάω εδώ και χρόνια. :D Eν μέρει το κάναμε σε pc και εν μέρει σε πλακέτες οι οποίες είχαν και κάτι υπέροχα διακοπτάκια (40 τον αριθμό) στα οποία έδινες εντολές με 0 και 1 μέχρι που στο τέλος να παραμιλάς σε binary. Aν κάθεσαι και ασχολείσαι με τέτοια οικειοθελώς σε θαυμάζω, εγώ από μόνη μου μάλλον δε θα έδινα και πολλή βάση (κι ας δικαιώνω τις κακές γλώσσες της σχολής ότι "αυτά είναι αντρικές δουλειές"). Ομολογουμένως όμως, σου δίνει αυτό που σε απλά ελληνικά αποκαλούμε περσπέκτιβ.

Όσο για την ΤΝ, το ήξερα κι εγώ το πόσο promising θεωρούνταν και η Lisp και η Prolog "στα νιάτα τους". Και δικαίως...διότι η Prolog μπορεί να μην αντικατέστησε ποτέ τη Basic, αλλά μακροπρόθεσμα η Prolog αποδείχτηκε πιο βιώσιμη από τη Basic. Το γουστάρω κι εγώ το αντικείμενο, η διπλωματική μου είναι έμπειρο σύστημα και βλέπω από πρώτο χέρι πώς είναι περίπου τα πράγματα. Από τη μία, σε όποιον πεις ότι κάνεις ΤΝ σου λέει "ααααα, ενδιαφέρον!" και από την άλλη ερευνητικά πάει με ρυθμό χελώνας το πράγμα. Ενδεχομένως γιατί όταν φτάνεις στο διά ταύτα τα PCs είναι αρκούντως βλάμμένα και για να φτιάξεις έμπειρο σύστημα της προκοπής θέλει υπομονή κι επιμονή... Αλλά είπαμε, είναι γοητευτική η άτιμη, απλώς δεν είναι για όλα τα γούστα.

Τετάρτη 24 Φεβρουαρίου 2010 στις 9:22:00 μ.μ. EET  
Ο χρήστης Blogger stassa είπε...

Καλέ όχι οικοιοθελώς, πςςς, χαχά, τί κουβέντες είναι αυτές; Απλά έχουμε κι εμείς ένα μάθημα "Computer Systems Architecture" και ένα μέρος του είναι κι αυτό. Μ' άρεσε για το λόγο που λες κι εσύ, το περσπέκτιβ. Καλό είναι νά 'χεις μια ιδέα τί παίζεται μες' το χάρντγουερ σου όταν προγραμματίζεις. Τώρα, ο καθηγητής μας επιμένει οτι "οι αληθινοί προγραμματιστές γράφουν σε δυαδικό", αλλά εντάξει, άστον αυτόν, είναι παλιακός...

Έμπειρο σύστημα, ε; "ααααα, ενδιαφέρον!" :P Σε Prolog; Δε φαντάζομαι να το γράφεις σε καμμία C! Κάτι τέτοιο σκεφτόμουνα να κάνω κι εγώ, του χρόνου. Εξαρτάται. Θα δούμε. Θα δείξει. Εδώ πάνω έχει κάνα δυο πανεπιστήμια που κάνουν λίγο έρευνα, το Edinbrugh σίγουρα, το Sussex που είναι στο Brighton (αλλά δεν είναι το Brighton) και κάνα-δυο άλλα, δε θυμάμαι. Εϊναι αλήθεια όμως οτι δεν τους δίνουνε και πολύ σημασία (βλέπε, χρήματα). Στην Ελλάδα, τί παίζει; Καλά, φαντάζομαι, τώρα με τις κρίσεις κιόλα...

Αφού σ' ενδιαφέρει το θέμα, stick around, έχω όρεξη για κομπιουτεράδικα ποστάκια τελευταία.

Τετάρτη 24 Φεβρουαρίου 2010 στις 11:24:00 μ.μ. EET  
Ο χρήστης Blogger Αιθεροβάμων είπε...

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

Στην εκόλ πολυτεκνίκ ντε πατράς, το πιο ενδιαφέρον που παίζει σε έρευνα ΤΝ (έπαιζε τουλάχιστον μέχρι πρότινος) είναι η δημιουργία εφαρμογής που να αλληλεπιδρά σε φυσική γλώσσα. Ξεκίνησε ως κάτι σχετικά "πρωτόγονο" με σκοπό σιγά σιγά να βελτιώνεται η φυσικότητα στη χρήση της γλώσσας, δεν ξέρω τώρα σε τι κατάσταση βρίσκεται το θέμα. Εμένα μου 'πεσε λίγο hardcore αυτό (αν και ομολογουμένως πολύ ενδιαφέρον) και είπα να κάνω web-based έμπειρο σύστημα... Για το κομμάτι της ΤΝ γράφω σε JESS, μια γλώσσα που μοιάζει αρκετά με LISP και Prolog (εφού παιδάκι τους είναι...) αλλά είναι Java-embeddable, οπότε βολεύει στο "πάντρεμα" με HTML-PHP-MySQL. Θα σου πρότεινα να κοιτάξεις την περίπτωση και της JESS και της CLIPS (που ουστιαστικά είναι σχεδόν ίδιες, απλά η κονσόλα της JESS είναι γραμμένη σε JAVA ενώ της CLIPS σε C++), γιατί καλή η Prolog κάπως "περιορισμένων δυνατοτήτων".

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

Πέμπτη 25 Φεβρουαρίου 2010 στις 1:10:00 π.μ. EET  
Ο χρήστης Blogger stassa είπε...

Όχι, καλά το λες. Κι εγώ έτσι το βλέπω, το θέμα είναι να κάνεις τη δουλειά σου, δεν υπάρχει λόγος να κάνεις τη ζωή σου δύσκολη απλά και μόνο για ν' αποδείξεις οτι μπορείς. Αυτός είναι κι ο σκοπός που έχουμε high-level γλώσσες στην τελική, για να μην κάθεσαι να μπουρδουκλώνεσαι με το χάρντγουερ...

Την JESS δεν την είχα ακούσει, θα την κοιτάξω, την CLIPS ναι, έχω εγκατεστημένη αλλά δεν την έχω ακουμπήσει ακόμη. Όντως τη Java τη βρίσκω πιο φιλική προς το χρήστη (ή ίσως είναι πιο φιλικοί οι χρήστες της!). Ξέρω τί λες για την Prolog, είναι λίγο σαν να ξέρεις αρχαία ή λατινικά. Καλή φάση, αλλά μην το παρακάνουμε κιόλας. Γενικά κοιτάω να μην έχω κολλήματα με καμμία γλώσσα γιατί αν περιορίζεσαι έτσι δεν προχωράς, ούτε καν στη μία γλώσσα πιστεύω. Απλά η Prolog ήταν η πρώτη γλώσσα που έμαθα που δεν ήταν της οικογένειας της C ε, κι όσο νά'ναι, είναι διαφορετική, μου έδωσε να καταλάβω οτι δεν υπάρχει μόνο ένας τρόπος προγραμματισμού.

Φέτος πάντως έχω βάλει στόχο να μάθω σε ικανοποιητικό βαθμό, φτού, μετράμε: C++, Python, Perl, Ruby, Lua και δευτερευόντως Common Lisp ή Scheme και ML. Προς το παρόν καλά πάμε, έχω χρόνο σχετικά γιατί ειμαι part-time φέτος, αλλά είμαι και με τα φεγγάρια μου. Τώρα μ' έχει πιάσει με το coding, πέρσι είχα όρεξη για γραφικά. Αλλά να σου πώ, είναι τόσα πράγματα που θέλω να μάθω να κάνω που δεν πρόκειται να προφτάσω ούτε τα μισά, και με τα κουμπιούτερ άργησα και να ξεκινήσω, είμαι και γριά γυναίκα παιδάκι μου, αααχ, γιαγιάκα, βάι βάι. Ναι.

Stalker, χεχε! Ωχ και γυρνάω αχτένιστη μες' το σπίτι...!

Πέμπτη 25 Φεβρουαρίου 2010 στις 2:31:00 π.μ. EET  
Ο χρήστης Anonymous Ctrl+D είπε...

come to Sussex!

;)

Σάββατο 6 Μαρτίου 2010 στις 1:46:00 π.μ. EET  
Ο χρήστης Blogger stassa είπε...

Του παραχρόνου όμως :)

Κυριακή 7 Μαρτίου 2010 στις 7:41:00 π.μ. EET  
Ο χρήστης Anonymous Ανώνυμος είπε...

Ει, happy Ada Lovelace Day, συναδελφισα!

(μου περασες απο το μυαλο τωρα που ξαναξοιταγα τι εγραψα, σορι για το αυτο-προμοσιον)

Τσιαρς.

Πέμπτη 25 Μαρτίου 2010 στις 1:49:00 π.μ. EET  

Δημοσίευση σχολίου

Εγγραφή σε Σχόλια ανάρτησης [Atom]

<< Αρχική σελίδα