Μια από τις πιο υπεραπλουστευμένες προσεγγίςεις του machine learning που έχω ακούσει. Ειναί καλό να μην φοβίζουνε αυτούς που θέλουν να ασχοληθούν με το αντικείμενο με την στατιστική και τα μαθηματικά πίσω από το machine learning, αλλά όχι και να λέμε οτι ειναί απλώς κάποια frameworks, μερικά trained models και ίσως και κάποια έτοιμα scripts. Είναι σαν να λέμε ότι για να γίνεις πιλότος δεν χρειάζεσαι και πολλά, απλά βάζεις τον αυτόματο πιλότο και είσαι κομπλέ.
Για να προσθέσεις κάποιες εφαρμογές ML σε ενα Project δεν χρειάζεται να ξέρεις μαθηματικά, ειδικά αν υπάρχουν ετοιμες υλοποιήσεις. Όταν όμως θες να εφαρμόσεις μηχανική μάθηση σε ένα εξειδικευμένο πεδίο και να φτιάξεις κάτι καινούργιο για να καλύπτει τις ανάγκες σου, τα μαθηματικά είναι απαραίτητα. Η μηχανική μάθηση χωρις μαθηματικά είναι ότι η ασφάλεια υπολογιστών με έτοιμα scripts.
Εγώ διαφωνώ με αυτό που προβάλλεται στο βίντεο και γενικά με την άποψη που προβάλλεται ότι το machine learning είναι τοσο απλό που δεν χρειάζεται να ξέρεις τα μαθηματικά, απλως εκπαιδεύεις ένα έτοιμο αλγόριθμο (π.χ. SVM, decisions trees, Deep Learning) πάνω στα δεδομένα σου και είσαι έτοιμος. Πρέπει να γνωρίζεις τουλάχιστον κάποια βασικά πράγματα για τον αλγόριθμο που χρησιμοποιείς πχ για deep learning πρέπει να ξέρεις πχ τι κανει ο αλγόριθμος Adam, πρέπει να γνωρίζεις το πως γίνεται το backpropagation (chain rule), πρέπει να ξέρεις πως να κανείς early stopping με LR schedulers ώστε να αποφύγεις overfitting κ.α. Το πρόβλημα είναι ότι αν τα αγνοείς αυτά και απλά βαράς model.train(x,y), το καλύτερο σενάριο είναι να καταλήξεις να έχεις χειρότερη απόδοση, το χειρότερο είναι να εκπαιδεύσεις ένα μοντέλο που έχει πολύ μικρό generalization power και να τρώει τα μούτρα του σε δεδομένα εκτός dataset, το οποίο μπορεί να είναι αρκετά επικίνδυνο για εταιρείες.
Συμφωνώ απόλυτα φίλε μου. Επίσης δεν καταλαβαίνω την λογική του είναι εύκολο, δηλαδή εάν είναι δύσκολο δεν αξίζει? Δηλαδή εάν κάτι μας αρέσει και είναι δύσκολο το παρατάμε?Και επίσης εάν είναι εύκολο και μπορούν να το κάνουν όλοι, τότε πως ξεχωρίζεις εσύ που κάνεις κάτι που μπορούν να κάνουν όλοι?
@@mikes0123456789m Εντάξει για να μην αδικούμε τα παιδιά , δεν λένε ακριβως αυτό στο βιντεο. Λένε οτι ειναι σχετικά εύκολο να ξεκινήσεις χωρις σημαντικό backgound . Αν θες όμως να πας σε δυσκολες εφαρμογές τότε χρειάζεσαι ισχυρά μαθηματικά θεμέλια και βαθεια κατανόηση των τεχνικών μηχανικής μαθησης που χρησιμοποιείς. Αυτό δεν επισημαίνουν όσο θα έπρεπε.
Γενικά η λογική του τύπου δεν χρειάζεται να ξέρεις σε βάθος γραμμική άλγεβρα ή απειροστικό λογισμό κλπ. την θεωρώ λανθασμένη . Ναι σίγουρα δεν χρειάζεται να ξέρεις μαθηματικά για να γράψεις μερικές γραμμές κώδικα στην tensorflow αλλά γενικά thats it.Από πίσω τρέχει ένα τεράστιο μαθηματικό και φυσικό οικοδόμημα για το οποίο φυσικοί και μαθηματικοί έχουν αφιερώσει τις ζωές τους για να αποδείξουν (ώστε να νοιώθουμε ασφάλεια όταν το χρησιμοποιούμε) και να υλοποιήσουν .Οπότε το σκεπτικό αυτό θα μπορούσε εύκολα να θεωρηθεί καθαρά ωφελιμιστικό και σίγουρα δεν προάγει την εξέλιξη της επιστήμης άρα της τεχνολογίας και τελικά της κοινωνικής ευημερίας. ΧΩΡΙΣ να θέλω να κάνω hate στο nerdcast το οποίο είναι πολύ καλό κομμάτι στον τομέα του(web development), θεωρώ ότι είναι λάθος τόσο βαθιά επιστημονικά ζητήματα να αντιμετωπίζονται με τόση απλότητα δίνοντας τελικά την εντύπωση σε όποιον βρίσκεται έξω από τέτοια θέματα ότι ο χειρισμός τους είναι εύκολος. Όποιος θέλει να ασχοληθεί με τέτοια θέματα και να καταλάβει γιατί κάτι συμβαίνει , δεν θα πρέπει να αποθαρρύνεται από το να μάθει μαθηματικά .ΝΑΙΙΙ ΕΙΝΑΙ ένας δύσκολος τομέας(κινέζικα πραγματικά ,ειδικά στην αρχή) αλλά με αρκετή υπομονή τα μαθηματικά είναι για όλους.. Learn your calculus people. Φοιτητής του τμήματος μαθηματικών
Τo ΑΙ δεν ειναι μονο το deep learning, υπαρχει ενας σκασμος classification και regression αλγορυθμοι. Οτι και να κανεις πρεπει να προσεχεις τα δεδομενα σου να μην ειναι biased. Ειναι παρα παρα παρα πολυ ευκολο να καταληξεις με ενα μοντελο που φενεται ουαου και στον πραγματικο κοσμο να ειναι ενα τελειως χαλι. Αν αποφασισεις να χρησιμοποιησεις τετοια μεθοδολογια το Α και το Ω ειναι να χωρισεις τα δεδομενα σου σε 3 κομματια train test validation set. Οταν κανεις tuning τις παραμετρους χρησιμοποιωντας το test set, μετα αξιολογεις το ποσο καλο ειναι το μοντελο με το validation set μια φορα μονο. Βεβαια αντι να κανεις μανουρες και μανιφατουρες αμα το μοντελο ειναι ντετερμινιστικο και γραμμικο μην κανεις την ανοησια να χρησιμοποιησεις deep learning κανε μια απλη πολλαπλη γραμμικη παλλινδρομηση, η κανε ενα linear discriminant μοντελο η φτιαξε ενα λογιστικο μοντελο. Θελει παρα παρα παρα πολυ προσοχη το deep learning γιατι δε σου δινει στατιστικα για να κανεις model evaluation και πρεπει να κανεις πατεντες που δεν εχουν βαση. Το deep learning ειναι χρησιμο αμα εχεις οπτικη η ακουστικη πληροφορια και θες να κανεις ενα classification η regression, η οταν το outcome δεν προκυπτει απο γραμμικη η γενικοποιημενη γραμμικη σχεση με τους predictors. Θελει προσοχη προσοχη προσοχη παιδια αν βγει σε production AI μοντελο να μην ειναι χαλια. Μου εχει τυχει μια φορα να παρω δεδομενα απο μια δανεζικη εταιρεια που λεει κανουμε AI και ιστοριες και ολα τα σχετικα και πηρα το μοντελο τους και βρηκα οτι μπορεις να φτασεις στο ιδιο συμπερασμα με συχνοτικη στατιστικη με βαθμο συμφωνιας γυρω στο 98% δεν θυμαμαι τωρα δεκαδικα. Εχει τρελαθει γενικως ο κοσμος με το deep learning.
@@sedzinfo grafeis: "Οταν κανεις tuning τις παραμετρους χρησιμοποιωντας το test set, μετα αξιολογεις το ποσο καλο ειναι το μοντελο με το validation set μια φορα μονο" enw ine "Οταν κανεις tuning τις παραμετρους χρησιμοποιωντας το validation set, μετα αξιολογεις το ποσο καλο ειναι το μοντελο με το test set μια φορα μονο"
@@mpizos κανω αναφορα στο information bleeding δεν ειναι συνηθισμενη τακτικη δυστηχως. αναφερομαι στο tuning των υπερπαραμετρων, αυτο γινεται κοιταζοντας τις διαφορες αναμεσα σε train και test set. προσπαθεις να τις μειωσεις. το validation set σε καμια περιπτωση δεν πρεπει να χρησιμοποιηθει κατα τη διαρκεια της βελτιστοποιησης των υπερπαραμετρων. αν θες μπορεις να το εφαρμοσεις, αν οχι ειναι δικη σου επιλογη αλλα δεν το συνιστω αν θες να βγει κατι στην παραγωγη, θα χασεις χρημα αξιοπιστια και ο ξεφτυλισμος απεναντι στον πελατη θα ειναι σχεδον βεβαιος, και σε κανενα δεν θελει να ξεφτυλιζεται, ολοι προσπαθουμε να κανουμε οτι καλυτερο μπορουμε για να μας σεβεται ο πελατης, δεν θα τη βρεις τη μεθοδολογια αυτη συχνα γραμμενη στο ιντερνετ δυστηχως. καλο ειναι να χρησιμοποιεις και επιβεβαιωτικες μεθοδους οπως bootstraping η κατι αντιστοιχο. δυστηχως με μια αναζητηση στο google δεν βρισκω αναφορες στο information bleeding η information cary over να σε παραπεμψω. οταν λεω tuning δεν εννοω training, το tuning ειναι μια διαδικασια που κανεις train διαφορετικα μοντελα με τα ιδια δεδομενα και διαφορετικες υπερπαραμετρους. βασικα μη χρησιμοποιησες bootstraping ακριβως γιατι δεν θα τελειωσεις ποτε, αλλα πρεπει να φτιαξεις εναν αντιστοιχο πιο ελαφρυ αλγορυθμο να κανεις τη δουλεια σου. ο αγαπημενος αλγορυθμος ολων φενεται να ειναι το kfolding.
@@sedzinfo pali mperdeueis to test me to validation metaksi tous(gia tin onomasia milaw panta). to swsto ine: "αναφερομαι στο tuning των υπερπαραμετρων, αυτο γινεται κοιταζοντας τις διαφορες αναμεσα σε train και VALIDATION set. προσπαθεις να τις μειωσεις. το TEST set σε καμια περιπτωση δεν πρεπει να χρησιμοποιηθει κατα τη διαρκεια της βελτιστοποιησης των υπερπαραμετρων."
Και εδώ είναι το πρόβλημα. Το Deep Learning είναι Machine Learning. Το Machine Learning δεν είναι απαραίτητα Deep Learning μιας και το Deep Learning είναι κομμάτι του Machine Learning. Παρεμπιπτόντως μπορείς να χρησιμοποιήσεις Deep Learning και για μικρότερα Datasets απαλείφωντας το overfitting και το underfitting με την επιλογή των κατάλληλων υπερπαραμέτρων την μείωση του training dataset άλλα και τις μεθόδους Dropout και Early Stopping.
@@dimitrioskyriakos3243 Το deep learning έχει τα καλύτερα αποτελέσματα την τελευταία δεκαετία, και το ML boom βασίζεται στο γεγονός ότι οι κάρτες γραφικών (GPUs) είναι εξαιρετικά αποδοτικές στην μάθηση τεχνητών νευρικων συστημάτων. Επίσης για πολλές εφαρμογές δεν θα χρειαστείς καν μεγαλ dataset εφόσον μπορείς να κατεβάσεις pre-trained Artificial Neural Networks !
@@billykotsos4642 όχι πάντα. Εξαρτάται από τις παραμέτρους και τις υπερπαραμέτρους. Επίσης δεν βασίζεται σε καμια gpu ή tpu. Οι βιβλιοθηκες εκμεταλλεύονται την gpu αν εχεις cuda συμβατή για να κανουν ποιο γρήγορα τις πράξεις. Σε αλλη περίπτωση. Τα μαθηματικά είναι μαθηματικά. Εχω τρέξει εκπαίδευση μοντέλων και σε cpu και σε gpu. Η ταχύτητα μόνο αλλάζει.
@@dimitrioskyriakos3243 Στην πραγματικότητα αυτό που άρχισε το ML boom ήταν τα αποτελέσματα του διαγωνισμού Imagenet στον οποίο αποδείχθηκε ότι τα NNs είναι το κλειδί στην ανάπτυξη λογισμικού που χρειάζεται computer vision.
@@billykotsos4642 τα νευρονικά δίκτυα ειναι πανισχυρο εργαλείο και δεν μπορω σε καμία περίπτωση να διαφωνήσω. Ειναι ομως καλο να μπορουμε να κανουμε και κλασικά machine learning μοντέλα για πιο απλές περιπτώσεις που ειναι πιο light στο θεμα κατανάλωσης ενέργειας και επεξεργαστικής ισχύος. Ξεκίνησα με τα νευρωνικά περίπου πριν μια 15ετία για την εφαρμογή τους σε συστήματα αυτόματου ελέγχου (μιας και ειμαι ηλεκτρονικός μηχανικός και όχι μηχανικός πληροφορικής), ο λόγος ήταν οτι μου δίνουν μια πιο αξιόπιστη εναλλακτική στις μη γραμμικές εφαρμογές σε σχέση με τα δυναμικά σύστημα τα οποία ειναι πανίσχυρα και ακριβέστατα αλλά το μεγάλο τους ελάττωμα ειναι οτι η παραμικρή μη αναμενόμενη αλλαγή που μπορεί να συμβεί καταρρέουν εντελώς. Οπότε τα νευρονικά δίκτυα η λύση που χρειαζόμουν και για θέματα παλινδρόμησης, αλλα και ταξινόμησης.
Άλλο να χρησιμοποιείς έτοιμα πράγματα που έχουν κάνουν άλλοι, και άλλο να κάνεις machine learning. Ναι αγαπητέ φίλε. Αν δεν ξέρεις τα απαραίτητα μαθηματικα, δεν μπορείς να πας πρακτικά πουθενά. Απλά να κάνεις χρήση μοντέλων που έχουν φτιάξει και εκπαιδεύσει άλλοι. Δεν μιλάω να κάτσει κάποιος να δει γραμμή γραμμή όλες τις αποδείξεις, αλλά όταν κάνουμε AI, ουσιαστικά κατασκευάζουμε piece wise linear functions, απο εδώ είναι το όνομα tensor, που είναι αρκετά πολύπλοκο μαθηματικό αντικείμενο, άσχετο με την AI. Και τις πιθανότητες τις θέλουμε γιατί ουσιαστικά ελέγχουμε σύγκλιση συναρτήσεων πιθανοτήτων. (ουσιαστικά αυτό που διαβάζεται cross entropy loss functions, είναι ένας τρόπος να συγκρίνει κάποιος δυο κατανομές πιθανοτήτων, και η σύγκλιση γίνετε όταν οι δυο κατανομές ταυτίζονται. Όταν κάποιος επιλέγει μη πιθανοσχετική συνάρτηση σφάλματος, και αντιμετωπίζει το αποτέλεσμα σαν διάνυσμα, πηγαίνει σε κλασσικές νόρμες σφάλματος, μόνο που εκεί το πρόβλημα είναι οτι δίνει μεγάλη σημασία σε κάθε σημείο του χώρου το ίδιο.. δυστυχώς θέλει χώρο και χρόνο για να αναλυθούν σωστά τα βασικά) Ναι αν κάποιος θέλει να καταλάβει τι γίνετε, ας ξοδέψει κάποιο χρόνο να γράψει το δικό του απλοϊκό tensorflow. Ναι κόπος αλλά θα είναι το σε θέση να καταλάβει τι παίζει. Πως να φτιάξει καινούργια μοντέλα και γιατί. Και φυσικά να είναι σε θέση να παρακολουθεί τα δεκάδες paper που κυκλοφορούν διαρκώς. Υπάρχει μάλιστα ένα φοβερό κανάλι στο RUclips που αναλύει τα σημαντικά paper. (edit: ruclips.net/channel/UCZHmQk67mSJgfCCTn7xBfewvideos είναι το κανάλι) Το σημαντικό είναι να ξέρεις τι θέλεις. Αν θέλεις απλά να παίξεις με τα μοντέλα άλλων, οκ. Πάσο. Αλλά δεν κάνεις AI τότε. Αναπαράγεις την δουλειά αλλού. Για αρχή λοιπόν, παίρνεις το βιβλίο του bengio, deep learning, ψάχνεις διαφορά video, βλέπεις κώδικα online που φτιάχνουν νευρωνικά δίκτυο from scratch, ο Andrei Karpathy είχε στο github account του πολύ ωραία mini libraries. Ναι θα φας μήνες χωρίς πρακτικά να κάνεις τίποτα, αλλά κάποια στιγμή κουμπώνουν όλα. Αν τώρα απλά θέλεις ένα μοντέλο που να κάνει κάποια πράγματα για κάποια δουλειά, οκ, κατεβάζεις έτοιμο το μοντέλο, pre trained, κάνεις την δουλειά σου, αλλά δεν κάνεις ΑΙ. Όπως όταν χρησιμοποιούμε μια βάση δεδομένων, κάνουμε απλά αυτό χρήση του εργαλείου.
Επίσης στη απορία για τα activation functions. Δύο πράγματα. 1.logistic regression ruclips.net/video/yIYKR4sgzI8/видео.html 2.αν καταλάβουμε πως λειτουργεί το backpropagation τα πράγματα είναι σχετικά απλά, γιατί ουσιαστικά μεταφέρουμε και κατανεμουμε το σφάλμα στους νευρώνες με το back propagation η παραγωγός της activation function λειτουργεί σαν κατανεμητής του σφάλματος. Αν μηδενίζει απότομα κινδυνεύουμε με την εμφανίσει πολλών μηδενικών, δηλαδή να κλείσουν πολλοί νευρώνες, γιαυτό και έχουμε κάποιες φορές regularisation layer.
μπορεις να εκπαιδευσεις και μοντελο χωρις να ξερεις μαθηματικα, δεν ειναι κατι τραγικο. το να κατσεις απο την αλλη να φτιαξεις μονος σου πακετο δεν εχει νοημα εκτος αν εισαι ερευνητης επανω στο ζητημα και θες να δοκιμασεις καποια function που δεν εχει επινοησει καποιος αλλος και συνεπως ο μονος δρομος ειναι να κανεις implementation μονος σου. ενδεχομενως το tensorflow να σου επιτρεπει να βαλεις δικα σου functions μεσα κιολας δεν το χω ψαξει. αλλα απο μονο του ειναι τοσο modular που μπορεις να φτιαχνεις μοντελα μεχρι τη δευτερα παρουσια, δεδομενου οτι εχεις και τα αναλογα μηχανηματα, να κανουν training εστω μεσα στη βδομαδα και να μην παιρνει χρονια.
@@KostasOreopoulos η λογιστικη παλλινδρομηση ειναι μια μεθοδολογια του generalized linear model δεν εχει αμεση σχεση με το activation function, απλα η συναρτηση μοιαζει να ειναι σιγμοειδης και στις δυο περιπτωσεις. τελοσπαντων οι ερευνητικη δουλεια δηχνει οτι καλυτερα αποτελεσματα εχεις με την relu activation function, αν ρωτησεις τους ερευνητες που το επινοησαν γιατι ακριβως δουλευει καλυτερα δεν ειμαι σιγουρος αν μπορουν να σου απαντησουν ικανοποιητικα, αλλα θα μπορεσουν να σε παραπεμψουν σε εμπειρικη δουλεια που δηχνει οτι η relu μειωνει το training time. τωρα αυτο που λες να μηδενιστει αποτομα και το regularisation layer δεν το ξερω.
@@sedzinfo Φυσικά και μπορείς να κάνεις training. Να συνεννούμαστε. Αν πχ μου πάρεις το GTP3 και κάνεις χρήση του, κάνεις χρήση εργαλείων machine learning. Δεν κάνεις machine learning. Και τα δυο είναι απολύτως χρήσιμα και θεμιτά. Απλά είναι τελείως διαφορετικά. Ναι τα περισσότερα μοντέλα δεν μπορείς να τα κάνεις training στον υπολογιστή σου, αλλά αν είσαι machine learning ENGINEER το κάνεις στο cloud. Απλά άλλο machine learning engineer και άλλο machine learning user. Ο καθένας επιλέγει τι θέλει να κάνει.
@@sedzinfo με συγχωρείς αλλά αυτό που κάνει η activation function είναι ακριβώς logistic regression. είναι ο ορισμός του logistic regression. Και εξηγώ πηγαίνοντας στα πολύ πολύ βασικά. Στην αρχή ουσιαστικά του όλου οικοδομήματος. Όλα ξεκινάνε από μια απλή ταπεινή γραμμή ax + by + c = 0 (1). Αυτή χωρίζει το επίπελο σε 2 μέρη. "Πάνω από την γραμμή" και "κάτω" από την γραμμή. Όπου πάνω είναι τα (x,y) που κάνουν την (1) θετική και κάτω αυτά που κάνουν την (1) αρνητική Έρχεται λοιπόν τον απλοικό "σήμα" (x,y) στον νεύρωνα σου, που δεν είναι τίποτα άλλο από μια απλή γραμμική συνάρτηση, βάζεις τα x,y και παίρνεις μια τιμή. Αυτό που θέλεις τώρα όμως, γιατί μια τιμή δεν σου φτάνει γιατί δεν κάνεις numerical regressions αλλά classification είναι να πεις, πάνω ή κάτω. Πως το κάνουμε αυτό στα μαθηματικά? Με binary classification και μια από τις πιο απλές μορφές στα μαθηματικά είναι η Logistic regression. Το σταματάω αυτό εδώ. Μπορεί κάποιος να δει αν ενδιαφέρεται πως πάμε από Linear σε Logistic κλπ. Η μετατροπή λοιπόν από cardinal σε categorical γίνετε με την χρήση της activation function που μετατρέπει την απόλυτη αριθμητική τιμή σε "πιθανότητα". Τώρα γιατί Sigmoid, Tanh, Relu etc. Δεν υπάρχει τίποτα περίεργο και μυστήριο. Όλες κάνουν σε τοπικό επίπεδο, σε επίπεδο νευρώνα, την ίδια ακριβώς δουλειά. Παίρνουν ένα αριθμητικό σήμα και το μετατρέπουν σε classification σήμα. Η διαφορά είναι στο backpropagation. Στις παραγώγους των συναρτήσεων, και πως οταν κινούμαστε αντίθετα στο γράφημα του νευρωνικού δικτύου, θα γίνει η κατανομή του σφάλματος ανάλογα με το "μέγεθος" της παραγώγου της συνάρτησης. O βασικός λόγος που χρησιμοποιείτε Relu vs Sigmoid είναι οτι η πρώτη είναι πολύ πολύ πιο efficient υπολογιστικά. Υπάρχουν pros and cons με κύριο pro της relu τα non vanishing gradient όσο η τιμή που τροφοδοτούμε την activation function αυξάνει (έχουμε βέβαια ξεφύγει από τον αυστηρό ορισμό της logistic regression και μπορεί να έρθουμε αντιμέτωποι με exploding gradients). Μπορώ να επανάλεθω, αλλά φαντάζομαι δεν ενδιαφέρει και κανένα κάτι τόσο εξιδεικευμένο.
Καλησπέρα socialNerds. Αξίζει να μάθω ως junior developer machine learning ή είναι καλύτερα να επενδύσω τον ελεύθερο μου χρόνο στήνωντας γερότερα "θεμέλια"; Επίσης υπάρχει ζήτηση για machine learning γενικότερα;
Συμπλήρωσε ανώνυμα τη νέα Έρευνα Μισθού Προγραμματιστή: bit.ly/sn-salary-survey
Μια από τις πιο υπεραπλουστευμένες προσεγγίςεις του machine learning που έχω ακούσει. Ειναί καλό να μην φοβίζουνε αυτούς που θέλουν να ασχοληθούν με το αντικείμενο με την στατιστική και τα μαθηματικά πίσω από το machine learning, αλλά όχι και να λέμε οτι ειναί απλώς κάποια frameworks, μερικά trained models και ίσως και κάποια έτοιμα scripts. Είναι σαν να λέμε ότι για να γίνεις πιλότος δεν χρειάζεσαι και πολλά, απλά βάζεις τον αυτόματο πιλότο και είσαι κομπλέ.
Με έλεγχο υπόθεσης δεν έχει να κάνει;
Για να προσθέσεις κάποιες εφαρμογές ML σε ενα Project δεν χρειάζεται να ξέρεις μαθηματικά, ειδικά αν υπάρχουν ετοιμες υλοποιήσεις. Όταν όμως θες να εφαρμόσεις μηχανική μάθηση σε ένα εξειδικευμένο πεδίο και να φτιάξεις κάτι καινούργιο για να καλύπτει τις ανάγκες σου, τα μαθηματικά είναι απαραίτητα. Η μηχανική μάθηση χωρις μαθηματικά είναι ότι η ασφάλεια υπολογιστών με έτοιμα scripts.
Εγώ διαφωνώ με αυτό που προβάλλεται στο βίντεο και γενικά με την άποψη που προβάλλεται ότι το machine learning είναι τοσο απλό που δεν χρειάζεται να ξέρεις τα μαθηματικά, απλως εκπαιδεύεις ένα έτοιμο αλγόριθμο (π.χ. SVM, decisions trees, Deep Learning) πάνω στα δεδομένα σου και είσαι έτοιμος. Πρέπει να γνωρίζεις τουλάχιστον κάποια βασικά πράγματα για τον αλγόριθμο που χρησιμοποιείς πχ για deep learning πρέπει να ξέρεις πχ τι κανει ο αλγόριθμος Adam, πρέπει να γνωρίζεις το πως γίνεται το backpropagation (chain rule), πρέπει να ξέρεις πως να κανείς early stopping με LR schedulers ώστε να αποφύγεις overfitting κ.α. Το πρόβλημα είναι ότι αν τα αγνοείς αυτά και απλά βαράς model.train(x,y), το καλύτερο σενάριο είναι να καταλήξεις να έχεις χειρότερη απόδοση, το χειρότερο είναι να εκπαιδεύσεις ένα μοντέλο που έχει πολύ μικρό generalization power και να τρώει τα μούτρα του σε δεδομένα εκτός dataset, το οποίο μπορεί να είναι αρκετά επικίνδυνο για εταιρείες.
Συμφωνώ απόλυτα φίλε μου. Επίσης δεν καταλαβαίνω την λογική του είναι εύκολο, δηλαδή εάν είναι δύσκολο δεν αξίζει? Δηλαδή εάν κάτι μας αρέσει και είναι δύσκολο το παρατάμε?Και επίσης εάν είναι εύκολο και μπορούν να το κάνουν όλοι, τότε πως ξεχωρίζεις εσύ που κάνεις κάτι που μπορούν να κάνουν όλοι?
@@mikes0123456789m Εντάξει για να μην αδικούμε τα παιδιά , δεν λένε ακριβως αυτό στο βιντεο. Λένε οτι ειναι σχετικά εύκολο να ξεκινήσεις χωρις σημαντικό backgound . Αν θες όμως να πας σε δυσκολες εφαρμογές τότε χρειάζεσαι ισχυρά μαθηματικά θεμέλια και βαθεια κατανόηση των τεχνικών μηχανικής μαθησης που χρησιμοποιείς. Αυτό δεν επισημαίνουν όσο θα έπρεπε.
@@georgiosbatzolis4330 μπορείς να μου πεις ποια είναι αυτά τα γερά μαθηματικά θεμέλια;
@@georgiosbatzolis4330 όντως θέλω να μαθω
@@giwrgoslos9343 φαντάζομαι γραμμική άλγεβρα, ολοκληρώσεις και σειρές, όπως λένε και στο βίντεο
Γενικά η λογική του τύπου δεν χρειάζεται να ξέρεις σε βάθος γραμμική άλγεβρα ή απειροστικό λογισμό κλπ. την θεωρώ λανθασμένη . Ναι σίγουρα δεν χρειάζεται να ξέρεις μαθηματικά για να γράψεις μερικές γραμμές κώδικα στην tensorflow αλλά γενικά thats it.Από πίσω τρέχει ένα τεράστιο μαθηματικό και φυσικό οικοδόμημα για το οποίο φυσικοί και μαθηματικοί έχουν αφιερώσει τις ζωές τους για να αποδείξουν (ώστε να νοιώθουμε ασφάλεια όταν το χρησιμοποιούμε)
και να υλοποιήσουν .Οπότε το σκεπτικό αυτό θα μπορούσε εύκολα να θεωρηθεί καθαρά ωφελιμιστικό και σίγουρα δεν προάγει την εξέλιξη της επιστήμης άρα της τεχνολογίας και τελικά της κοινωνικής ευημερίας. ΧΩΡΙΣ να θέλω να κάνω hate στο nerdcast το οποίο είναι πολύ καλό κομμάτι στον τομέα του(web development), θεωρώ ότι είναι λάθος τόσο βαθιά επιστημονικά ζητήματα να αντιμετωπίζονται με τόση απλότητα δίνοντας τελικά την εντύπωση σε όποιον βρίσκεται έξω από τέτοια θέματα ότι ο χειρισμός τους είναι εύκολος. Όποιος θέλει να ασχοληθεί με τέτοια θέματα και να καταλάβει γιατί κάτι συμβαίνει , δεν θα πρέπει να αποθαρρύνεται από το να μάθει μαθηματικά .ΝΑΙΙΙ ΕΙΝΑΙ ένας δύσκολος τομέας(κινέζικα πραγματικά ,ειδικά στην αρχή) αλλά με αρκετή υπομονή τα μαθηματικά είναι για όλους.. Learn your calculus people.
Φοιτητής του τμήματος μαθηματικών
Τo ΑΙ δεν ειναι μονο το deep learning, υπαρχει ενας σκασμος classification και regression αλγορυθμοι. Οτι και να κανεις πρεπει να προσεχεις τα δεδομενα σου να μην ειναι biased. Ειναι παρα παρα παρα πολυ ευκολο να καταληξεις με ενα μοντελο που φενεται ουαου και στον πραγματικο κοσμο να ειναι ενα τελειως χαλι. Αν αποφασισεις να χρησιμοποιησεις τετοια μεθοδολογια το Α και το Ω ειναι να χωρισεις τα δεδομενα σου σε 3 κομματια train test validation set. Οταν κανεις tuning τις παραμετρους χρησιμοποιωντας το test set, μετα αξιολογεις το ποσο καλο ειναι το μοντελο με το validation set μια φορα μονο. Βεβαια αντι να κανεις μανουρες και μανιφατουρες αμα το μοντελο ειναι ντετερμινιστικο και γραμμικο μην κανεις την ανοησια να χρησιμοποιησεις deep learning κανε μια απλη πολλαπλη γραμμικη παλλινδρομηση, η κανε ενα linear discriminant μοντελο η φτιαξε ενα λογιστικο μοντελο. Θελει παρα παρα παρα πολυ προσοχη το deep learning γιατι δε σου δινει στατιστικα για να κανεις model evaluation και πρεπει να κανεις πατεντες που δεν εχουν βαση. Το deep learning ειναι χρησιμο αμα εχεις οπτικη η ακουστικη πληροφορια και θες να κανεις ενα classification η regression, η οταν το outcome δεν προκυπτει απο γραμμικη η γενικοποιημενη γραμμικη σχεση με τους predictors. Θελει προσοχη προσοχη προσοχη παιδια αν βγει σε production AI μοντελο να μην ειναι χαλια. Μου εχει τυχει μια φορα να παρω δεδομενα απο μια δανεζικη εταιρεια που λεει κανουμε AI και ιστοριες και ολα τα σχετικα και πηρα το μοντελο τους και βρηκα οτι μπορεις να φτασεις στο ιδιο συμπερασμα με συχνοτικη στατιστικη με βαθμο συμφωνιας γυρω στο 98% δεν θυμαμαι τωρα δεκαδικα. Εχει τρελαθει γενικως ο κοσμος με το deep learning.
mperdepses ligo to validation me to test set...
@@mpizos μπορει θες να μου εξηγησεις;
@@sedzinfo grafeis: "Οταν κανεις tuning τις παραμετρους χρησιμοποιωντας το test set, μετα αξιολογεις το ποσο καλο ειναι το μοντελο με το validation set μια φορα μονο" enw ine "Οταν κανεις tuning τις παραμετρους χρησιμοποιωντας το validation set, μετα αξιολογεις το ποσο καλο ειναι το μοντελο με το test set μια φορα μονο"
@@mpizos κανω αναφορα στο information bleeding δεν ειναι συνηθισμενη τακτικη δυστηχως. αναφερομαι στο tuning των υπερπαραμετρων, αυτο γινεται κοιταζοντας τις διαφορες αναμεσα σε train και test set. προσπαθεις να τις μειωσεις. το validation set σε καμια περιπτωση δεν πρεπει να χρησιμοποιηθει κατα τη διαρκεια της βελτιστοποιησης των υπερπαραμετρων. αν θες μπορεις να το εφαρμοσεις, αν οχι ειναι δικη σου επιλογη αλλα δεν το συνιστω αν θες να βγει κατι στην παραγωγη, θα χασεις χρημα αξιοπιστια και ο ξεφτυλισμος απεναντι στον πελατη θα ειναι σχεδον βεβαιος, και σε κανενα δεν θελει να ξεφτυλιζεται, ολοι προσπαθουμε να κανουμε οτι καλυτερο μπορουμε για να μας σεβεται ο πελατης, δεν θα τη βρεις τη μεθοδολογια αυτη συχνα γραμμενη στο ιντερνετ δυστηχως. καλο ειναι να χρησιμοποιεις και επιβεβαιωτικες μεθοδους οπως bootstraping η κατι αντιστοιχο. δυστηχως με μια αναζητηση στο google δεν βρισκω αναφορες στο information bleeding η information cary over να σε παραπεμψω. οταν λεω tuning δεν εννοω training, το tuning ειναι μια διαδικασια που κανεις train διαφορετικα μοντελα με τα ιδια δεδομενα και διαφορετικες υπερπαραμετρους. βασικα μη χρησιμοποιησες bootstraping ακριβως γιατι δεν θα τελειωσεις ποτε, αλλα πρεπει να φτιαξεις εναν αντιστοιχο πιο ελαφρυ αλγορυθμο να κανεις τη δουλεια σου. ο αγαπημενος αλγορυθμος ολων φενεται να ειναι το kfolding.
@@sedzinfo pali mperdeueis to test me to validation metaksi tous(gia tin onomasia milaw panta). to swsto ine: "αναφερομαι στο tuning των υπερπαραμετρων, αυτο γινεται κοιταζοντας τις διαφορες αναμεσα σε train και VALIDATION set. προσπαθεις να τις μειωσεις. το TEST set σε καμια περιπτωση δεν πρεπει να χρησιμοποιηθει κατα τη διαρκεια της βελτιστοποιησης των υπερπαραμετρων."
Απο hardware μπανιζει κανεις η ολοι ειναι software σε αυτη την χωρσ?
Fastai !!!! Μονο fastai !!! Τελεια αρχη για Deep Learning ! (Δεν εχει Machine learning ομως )
Και εδώ είναι το πρόβλημα. Το Deep Learning είναι Machine Learning. Το Machine Learning δεν είναι απαραίτητα Deep Learning μιας και το Deep Learning είναι κομμάτι του Machine Learning. Παρεμπιπτόντως μπορείς να χρησιμοποιήσεις Deep Learning και για μικρότερα Datasets απαλείφωντας το overfitting και το underfitting με την επιλογή των κατάλληλων υπερπαραμέτρων την μείωση του training dataset άλλα και τις μεθόδους Dropout και Early Stopping.
@@dimitrioskyriakos3243 Το deep learning έχει τα καλύτερα αποτελέσματα την τελευταία δεκαετία, και το ML boom βασίζεται στο γεγονός ότι οι κάρτες γραφικών (GPUs) είναι εξαιρετικά αποδοτικές στην μάθηση τεχνητών νευρικων συστημάτων. Επίσης για πολλές εφαρμογές δεν θα χρειαστείς καν μεγαλ dataset εφόσον μπορείς να κατεβάσεις pre-trained Artificial Neural Networks !
@@billykotsos4642 όχι πάντα. Εξαρτάται από τις παραμέτρους και τις υπερπαραμέτρους. Επίσης δεν βασίζεται σε καμια gpu ή tpu. Οι βιβλιοθηκες εκμεταλλεύονται την gpu αν εχεις cuda συμβατή για να κανουν ποιο γρήγορα τις πράξεις. Σε αλλη περίπτωση. Τα μαθηματικά είναι μαθηματικά. Εχω τρέξει εκπαίδευση μοντέλων και σε cpu και σε gpu. Η ταχύτητα μόνο αλλάζει.
@@dimitrioskyriakos3243 Στην πραγματικότητα αυτό που άρχισε το ML boom ήταν τα αποτελέσματα του διαγωνισμού Imagenet στον οποίο αποδείχθηκε ότι τα NNs είναι το κλειδί στην ανάπτυξη λογισμικού που χρειάζεται computer vision.
@@billykotsos4642 τα νευρονικά δίκτυα ειναι πανισχυρο εργαλείο και δεν μπορω σε καμία περίπτωση να διαφωνήσω. Ειναι ομως καλο να μπορουμε να κανουμε και κλασικά machine learning μοντέλα για πιο απλές περιπτώσεις που ειναι πιο light στο θεμα κατανάλωσης ενέργειας και επεξεργαστικής ισχύος. Ξεκίνησα με τα νευρωνικά περίπου πριν μια 15ετία για την εφαρμογή τους σε συστήματα αυτόματου ελέγχου (μιας και ειμαι ηλεκτρονικός μηχανικός και όχι μηχανικός πληροφορικής), ο λόγος ήταν οτι μου δίνουν μια πιο αξιόπιστη εναλλακτική στις μη γραμμικές εφαρμογές σε σχέση με τα δυναμικά σύστημα τα οποία ειναι πανίσχυρα και ακριβέστατα αλλά το μεγάλο τους ελάττωμα ειναι οτι η παραμικρή μη αναμενόμενη αλλαγή που μπορεί να συμβεί καταρρέουν εντελώς. Οπότε τα νευρονικά δίκτυα η λύση που χρειαζόμουν και για θέματα παλινδρόμησης, αλλα και ταξινόμησης.
Diladi mathaineis ola auta gia na ta prosfereis se mia etairia gia na vgaleis lefta?i dont see any fun in that
Καλησπέρα! Ερώτηση: έχετε βιντεάκι για Ασφάλεια Δικτύων;
Άλλο να χρησιμοποιείς έτοιμα πράγματα που έχουν κάνουν άλλοι, και άλλο να κάνεις machine learning.
Ναι αγαπητέ φίλε. Αν δεν ξέρεις τα απαραίτητα μαθηματικα, δεν μπορείς να πας πρακτικά πουθενά. Απλά να κάνεις χρήση μοντέλων που έχουν φτιάξει και εκπαιδεύσει άλλοι.
Δεν μιλάω να κάτσει κάποιος να δει γραμμή γραμμή όλες τις αποδείξεις, αλλά όταν κάνουμε AI, ουσιαστικά κατασκευάζουμε piece wise linear functions, απο εδώ είναι το όνομα tensor, που είναι αρκετά πολύπλοκο μαθηματικό αντικείμενο, άσχετο με την AI. Και τις πιθανότητες τις θέλουμε γιατί ουσιαστικά ελέγχουμε σύγκλιση συναρτήσεων πιθανοτήτων.
(ουσιαστικά αυτό που διαβάζεται cross entropy loss functions, είναι ένας τρόπος να συγκρίνει κάποιος δυο κατανομές πιθανοτήτων, και η σύγκλιση γίνετε όταν οι δυο κατανομές ταυτίζονται. Όταν κάποιος επιλέγει μη πιθανοσχετική συνάρτηση σφάλματος, και αντιμετωπίζει το αποτέλεσμα σαν διάνυσμα, πηγαίνει σε κλασσικές νόρμες σφάλματος, μόνο που εκεί το πρόβλημα είναι οτι δίνει μεγάλη σημασία σε κάθε σημείο του χώρου το ίδιο.. δυστυχώς θέλει χώρο και χρόνο για να αναλυθούν σωστά τα βασικά)
Ναι αν κάποιος θέλει να καταλάβει τι γίνετε, ας ξοδέψει κάποιο χρόνο να γράψει το δικό του απλοϊκό tensorflow. Ναι κόπος αλλά θα είναι το σε θέση να καταλάβει τι παίζει. Πως να φτιάξει καινούργια μοντέλα και γιατί.
Και φυσικά να είναι σε θέση να παρακολουθεί τα δεκάδες paper που κυκλοφορούν διαρκώς. Υπάρχει μάλιστα ένα φοβερό κανάλι στο RUclips που αναλύει τα σημαντικά paper.
(edit: ruclips.net/channel/UCZHmQk67mSJgfCCTn7xBfewvideos είναι το κανάλι)
Το σημαντικό είναι να ξέρεις τι θέλεις. Αν θέλεις απλά να παίξεις με τα μοντέλα άλλων, οκ. Πάσο.
Αλλά δεν κάνεις AI τότε. Αναπαράγεις την δουλειά αλλού.
Για αρχή λοιπόν, παίρνεις το βιβλίο του bengio, deep learning, ψάχνεις διαφορά video, βλέπεις κώδικα online που φτιάχνουν νευρωνικά δίκτυο from scratch, ο Andrei Karpathy είχε στο github account του πολύ ωραία mini libraries.
Ναι θα φας μήνες χωρίς πρακτικά να κάνεις τίποτα, αλλά κάποια στιγμή κουμπώνουν όλα.
Αν τώρα απλά θέλεις ένα μοντέλο που να κάνει κάποια πράγματα για κάποια δουλειά, οκ, κατεβάζεις έτοιμο το μοντέλο, pre trained, κάνεις την δουλειά σου, αλλά δεν κάνεις ΑΙ.
Όπως όταν χρησιμοποιούμε μια βάση δεδομένων, κάνουμε απλά αυτό χρήση του εργαλείου.
Επίσης στη απορία για τα activation functions. Δύο πράγματα.
1.logistic regression ruclips.net/video/yIYKR4sgzI8/видео.html
2.αν καταλάβουμε πως λειτουργεί το backpropagation τα πράγματα είναι σχετικά απλά, γιατί ουσιαστικά μεταφέρουμε και κατανεμουμε το σφάλμα στους νευρώνες με το back propagation η παραγωγός της activation function λειτουργεί σαν κατανεμητής του σφάλματος. Αν μηδενίζει απότομα κινδυνεύουμε με την εμφανίσει πολλών μηδενικών, δηλαδή να κλείσουν πολλοί νευρώνες, γιαυτό και έχουμε κάποιες φορές regularisation layer.
μπορεις να εκπαιδευσεις και μοντελο χωρις να ξερεις μαθηματικα, δεν ειναι κατι τραγικο. το να κατσεις απο την αλλη να φτιαξεις μονος σου πακετο δεν εχει νοημα εκτος αν εισαι ερευνητης επανω στο ζητημα και θες να δοκιμασεις καποια function που δεν εχει επινοησει καποιος αλλος και συνεπως ο μονος δρομος ειναι να κανεις implementation μονος σου. ενδεχομενως το tensorflow να σου επιτρεπει να βαλεις δικα σου functions μεσα κιολας δεν το χω ψαξει. αλλα απο μονο του ειναι τοσο modular που μπορεις να φτιαχνεις μοντελα μεχρι τη δευτερα παρουσια, δεδομενου οτι εχεις και τα αναλογα μηχανηματα, να κανουν training εστω μεσα στη βδομαδα και να μην παιρνει χρονια.
@@KostasOreopoulos η λογιστικη παλλινδρομηση ειναι μια μεθοδολογια του generalized linear model δεν εχει αμεση σχεση με το activation function, απλα η συναρτηση μοιαζει να ειναι σιγμοειδης και στις δυο περιπτωσεις. τελοσπαντων οι ερευνητικη δουλεια δηχνει οτι καλυτερα αποτελεσματα εχεις με την relu activation function, αν ρωτησεις τους ερευνητες που το επινοησαν γιατι ακριβως δουλευει καλυτερα δεν ειμαι σιγουρος αν μπορουν να σου απαντησουν ικανοποιητικα, αλλα θα μπορεσουν να σε παραπεμψουν σε εμπειρικη δουλεια που δηχνει οτι η relu μειωνει το training time. τωρα αυτο που λες να μηδενιστει αποτομα και το regularisation layer δεν το ξερω.
@@sedzinfo Φυσικά και μπορείς να κάνεις training. Να συνεννούμαστε. Αν πχ μου πάρεις το GTP3 και κάνεις χρήση του, κάνεις χρήση εργαλείων machine learning. Δεν κάνεις machine learning. Και τα δυο είναι απολύτως χρήσιμα και θεμιτά. Απλά είναι τελείως διαφορετικά.
Ναι τα περισσότερα μοντέλα δεν μπορείς να τα κάνεις training στον υπολογιστή σου, αλλά αν είσαι machine learning ENGINEER το κάνεις στο cloud.
Απλά άλλο machine learning engineer και άλλο machine learning user. Ο καθένας επιλέγει τι θέλει να κάνει.
@@sedzinfo με συγχωρείς αλλά αυτό που κάνει η activation function είναι ακριβώς logistic regression. είναι ο ορισμός του logistic regression. Και εξηγώ πηγαίνοντας στα πολύ πολύ βασικά. Στην αρχή ουσιαστικά του όλου οικοδομήματος.
Όλα ξεκινάνε από μια απλή ταπεινή γραμμή ax + by + c = 0 (1). Αυτή χωρίζει το επίπελο σε 2 μέρη. "Πάνω από την γραμμή" και "κάτω" από την γραμμή. Όπου πάνω είναι τα (x,y) που κάνουν την (1) θετική και κάτω αυτά που κάνουν την (1) αρνητική
Έρχεται λοιπόν τον απλοικό "σήμα" (x,y) στον νεύρωνα σου, που δεν είναι τίποτα άλλο από μια απλή γραμμική συνάρτηση, βάζεις τα x,y και παίρνεις μια τιμή. Αυτό που θέλεις τώρα όμως, γιατί μια τιμή δεν σου φτάνει γιατί δεν κάνεις numerical regressions αλλά classification είναι να πεις, πάνω ή κάτω.
Πως το κάνουμε αυτό στα μαθηματικά? Με binary classification και μια από τις πιο απλές μορφές στα μαθηματικά είναι η Logistic regression. Το σταματάω αυτό εδώ. Μπορεί κάποιος να δει αν ενδιαφέρεται πως πάμε από Linear σε Logistic κλπ.
Η μετατροπή λοιπόν από cardinal σε categorical γίνετε με την χρήση της activation function που μετατρέπει την απόλυτη αριθμητική τιμή σε "πιθανότητα".
Τώρα γιατί Sigmoid, Tanh, Relu etc. Δεν υπάρχει τίποτα περίεργο και μυστήριο. Όλες κάνουν σε τοπικό επίπεδο, σε επίπεδο νευρώνα, την ίδια ακριβώς δουλειά.
Παίρνουν ένα αριθμητικό σήμα και το μετατρέπουν σε classification σήμα.
Η διαφορά είναι στο backpropagation. Στις παραγώγους των συναρτήσεων, και πως οταν κινούμαστε αντίθετα στο γράφημα του νευρωνικού δικτύου, θα γίνει η κατανομή του σφάλματος ανάλογα με το "μέγεθος" της παραγώγου της συνάρτησης. O βασικός λόγος που χρησιμοποιείτε Relu vs Sigmoid είναι οτι η πρώτη είναι πολύ πολύ πιο efficient υπολογιστικά. Υπάρχουν pros and cons με κύριο pro της relu τα non vanishing gradient όσο η τιμή που τροφοδοτούμε την activation function αυξάνει (έχουμε βέβαια ξεφύγει από τον αυστηρό ορισμό της logistic regression και μπορεί να έρθουμε αντιμέτωποι με exploding gradients). Μπορώ να επανάλεθω, αλλά φαντάζομαι δεν ενδιαφέρει και κανένα κάτι τόσο εξιδεικευμένο.
Είναι απλό. Στέλνουμε τη μηχανή στο σχολείο και η machine.. learning
Καλησπέρα socialNerds. Αξίζει να μάθω ως junior developer machine learning ή είναι καλύτερα να επενδύσω τον ελεύθερο μου χρόνο στήνωντας γερότερα "θεμέλια"; Επίσης υπάρχει ζήτηση για machine learning γενικότερα;
Θα προτεινα να επενδυσεις λιγο χρονο πρωτα μαθαινοντας κλασικο software engineering.
@@TeoZarkopafilis Ευχαριστώ
Three blue one brown.
Θεός φίλε ο τύπος μαζί με ben eater