To blog αυτό συνεχίζεται εδώ.
This blog is being continued here.
Monday 25 July 2011
Monday 9 May 2011
Σκέψεις πάνω στην τεχνητή νοημοσύνη
Αν υποθέσουμε ότι έχουμε όλο το χρόνο και τα χρήματα που χρειάζονται και ότι οι αλγόριθμοι που υπάρχουν για "εκμάθηση" είναι αρκετά ικανοποιητικά για ένα συγκεκριμένο πρόβλημα, τότε το μυστήριο τεχνητής νοημοσύνης ίσως είναι απλά ένα θέμα υλοποίησης. Τι θέλω να πω;
Ας φανταστούμε έναν υπολογιστή πάνω σε ρόδες, ο οποίος είναι εξοπλισμένος με κάμερα, μικρόφωνο, ηχεία, όργανα αφής και (ίσως και κάποια άλλα μετρητικά όργανα) τα οποία όλα λειτουργούν συνέχεια. Τα δεδομένα σε real time περνάνε από διάφορα layers εκμάθησης ώστε τελικά να αποθηκεύεται, για οτιδήποτε βλέπει, ακούει, και αισθάνεται με οποιοδήποτε τρόπο, μια "invariant" μορφή της πληροφορίας που απέκτησε.
Ταυτόχρονα, αυτό το σύστημα να είναι εξοπλισμένο με σύστημα "συναισθημάτων". Στο παρελθόν έχουν παρουσιασθει διάφορα τέτοια τεχνητά συστήματα "συναισθημάτων", αλλά κανένα δεν έχει εφαρμοσθεί σε τέτοια μεγάλη κλίμακα.
Αυτό που υποστηρίζει ο φίλος μας ο jeff hawkins, ότι δηλαδή δε χρειάζεται επιπλέον υπολογιστική ισχύς το πιστεύω. Το θέμα είναι ότι δεν έχει υπάρξει κάποιο εγχειρημα (ή γνωρίζεις κάτι) τέτοιας κλίμακας.
Οι σκέψεις αυτές ξεπήδηξαν διαβάζοντας από http://norvig.com/ το άρθρο How to Write a Spelling Corrector και συνειδητοποίησα ότι η γνώση πολλές φορές υπάρχει απλά δε γνωρίζουμε να την εφαρμόσουμε σε άλλα πεδία. Η θεωρία που κρύβεται πίσω από το spelling corrector τόσο της google όσο και άλλων εταιριών είναι το θεώρημα του Bayes (βλ. επίσης bayesian spam filter) το οποίο το διδαχτήκαμε στο 3ο έτος του πανεπιστημίου στη στατιστική. Είμαι σίγουρος ότι κανένας από τους καθηγητές μας δε γνωρίζει αυτές τις εφαρμογές του θεωρήματος του Bayes, αλλά αυτό είναι off-topic.
Ας φανταστούμε έναν υπολογιστή πάνω σε ρόδες, ο οποίος είναι εξοπλισμένος με κάμερα, μικρόφωνο, ηχεία, όργανα αφής και (ίσως και κάποια άλλα μετρητικά όργανα) τα οποία όλα λειτουργούν συνέχεια. Τα δεδομένα σε real time περνάνε από διάφορα layers εκμάθησης ώστε τελικά να αποθηκεύεται, για οτιδήποτε βλέπει, ακούει, και αισθάνεται με οποιοδήποτε τρόπο, μια "invariant" μορφή της πληροφορίας που απέκτησε.
Ταυτόχρονα, αυτό το σύστημα να είναι εξοπλισμένο με σύστημα "συναισθημάτων". Στο παρελθόν έχουν παρουσιασθει διάφορα τέτοια τεχνητά συστήματα "συναισθημάτων", αλλά κανένα δεν έχει εφαρμοσθεί σε τέτοια μεγάλη κλίμακα.
Αυτό που υποστηρίζει ο φίλος μας ο jeff hawkins, ότι δηλαδή δε χρειάζεται επιπλέον υπολογιστική ισχύς το πιστεύω. Το θέμα είναι ότι δεν έχει υπάρξει κάποιο εγχειρημα (ή γνωρίζεις κάτι) τέτοιας κλίμακας.
Οι σκέψεις αυτές ξεπήδηξαν διαβάζοντας από http://norvig.com/ το άρθρο How to Write a Spelling Corrector και συνειδητοποίησα ότι η γνώση πολλές φορές υπάρχει απλά δε γνωρίζουμε να την εφαρμόσουμε σε άλλα πεδία. Η θεωρία που κρύβεται πίσω από το spelling corrector τόσο της google όσο και άλλων εταιριών είναι το θεώρημα του Bayes (βλ. επίσης bayesian spam filter) το οποίο το διδαχτήκαμε στο 3ο έτος του πανεπιστημίου στη στατιστική. Είμαι σίγουρος ότι κανένας από τους καθηγητές μας δε γνωρίζει αυτές τις εφαρμογές του θεωρήματος του Bayes, αλλά αυτό είναι off-topic.
Ίσως δηλαδή η γνώση και η τεχνολογία για την ανάπτυξη νοήμονων μηχανών να υπάρχει απλά να μην έχει συνδυαστεί κατάλληλα.
Saturday 16 April 2011
wc recursively in perl
Πάντα χρειαζόμουν ένα απλό script που να μετράει τις γραμμές κώδικα σε αρχεία και σε φακέλους αλλά και σε όλα τα αρχεία που βρίσκονται στους υποφακέλους. Και μιας και αυτό το διάστημα μαθαίνω perl είπα να δοκιμάσω την τύχη μου. Βέβαια το παρακάτω δεν κάνει τίποτε από ένα system call σε μια εντολή με pipes (που χρησιμοποιεί και awk) και να τυπώνει το αποτέλεσμα:
#!/usr/bin/env perl
if ( @ARGV > 0 )
{
$count = `find $ARGV[0] -type f -exec wc -l {} \\; | awk '{total += \$1} END{print total}'`;
print $count;
}
else
{
print "No arguments!\n";
}
Friday 11 March 2011
Non Turing complete γλώσσες προγραμματισμού
Σκεφτόμουν αυτές τις μέρες γιατί οι γλώσσες προγραμματισμού, ενώ όλες ειναι Turing complete, δεν έχουν την ίδια εκφραστικότητα. Γιατί δηλαδή κάποιες είναι πιο εύκολες στη χρήση από κάποιες άλλες; Και τότε μου γεννήθηκε η απορία αν υπάρχουν non Turing complete γλώσσες προγραμματισμού. Μια σύντομη έρευνα έδειξε ότι υπάρχουν: η BlooP. Η BlooP μαζί με τη FlooP σχεδιάστηκαν από το Douglas R. Hofstadter για το βιβλίο του Gödel, Escher, Bach.
Monday 7 March 2011
Ubuntistas: Issue 11
Τέλειωσα, ύστερα από πολύ καιρό (γιατί ασχολούμουν με την ολοκλήρωση της διατριβής μου), με τη βοηθεία του kalakouentin τη σελιδοποίηση του 11 τεύχους του περιοδικού ubuntistas. Στο τεύχος αυτό υπάρχουν άρθρα για το android, για γεωγραφικά συστήματα πληροφοριών (GIS), το 3ο μέρος για την κρυπτογραφία με Java, google search tips, καθώς και 3 άρθρα που έγραψα για parallel computing με openMP, για τη γλώσσα προγραμματισμού scheme, και για τη βιβλιοθήκη συμβολικών μαθηματικών της python sympy.
Καλή ανάγνωση!
Subscribe to:
Posts (Atom)