Οι καλύτεροι πόροι που χρησιμοποίησα για να διδάξω στον εαυτό μου τη μηχανική εκμάθηση

Ο τομέας της μηχανικής μάθησης γίνεται όλο και περισσότερο mainstream κάθε χρόνο. Με αυτήν την ανάπτυξη έρχονται πολλές βιβλιοθήκες και εργαλεία για να αφαιρέσουν μερικές από τις πιο δύσκολες έννοιες που μπορούν να εφαρμοστούν για άτομα που ξεκινούν.

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

Ξεκινώντας

Ήξερα ήδη την Python όταν ξεκίνησα, αλλά, αν δεν το κάνω, προτείνω να μάθω πρώτα τη βασική και την ενδιάμεση Python. Η γλώσσα είναι πολύ εύκολη στην εκμάθηση σε σύγκριση με άλλες. Το Python φιλοξενεί επίσης τη μεγαλύτερη κοινότητα επιστημονικών δεδομένων / ML, οπότε υπάρχουν τόνοι εργαλείων που βοηθούν καθώς μαθαίνετε.

Μάθετε Python: freeCodeCamp Python Crash Course

Με αυτόν τον τρόπο, το πρώτο πράγμα που πρέπει να κάνετε είναι να κατεβάσετε το "The Machine Learning Podcast" από το OCDevel (overcast.fm, iTunes) στην αγαπημένη σας εφαρμογή podcast. Ακούστε τα πρώτα 10–15 επεισόδια. Είναι πολύ καλοί στο να δίνουν μια επισκόπηση του οικοσυστήματος μηχανικής μάθησης και υπάρχουν επίσης προτεινόμενοι πόροι που συνδέονται στον ιστότοπο OCDevel.

Εργαλεία

Σημειωματάριο Anaconda & Jupyter - Αυτά είναι απαραίτητα για την επιστήμη δεδομένων ML και δεδομένων. Ακολουθήστε τις οδηγίες εδώ για να τις εγκαταστήσετε και να τις ρυθμίσετε.

Visual Studio Code με Python Plugin - Ποτέ δεν πίστευα ότι θα συνιστούσα ένα προϊόν της Microsoft, αλλά είμαι ειλικρινά εντυπωσιασμένος με τη δέσμευση ανοιχτού κώδικα τελευταία. Αυτό είναι τώρα το αγαπημένο μου πρόγραμμα επεξεργασίας κώδικα, ακόμη και για να κάνω κάποια πράγματα στο Python - όπως τον κώδικα εντοπισμού σφαλμάτων.

Το Kaggle.com είναι το καλύτερο μέρος για να βρείτε σύνολα δεδομένων όταν ξεκινάτε. Προχωρήστε και εγγραφείτε για έναν λογαριασμό και στριφογυρίστε τον ιστότοπο. Θα παρατηρήσετε ότι υπάρχουν πολλοί διαγωνισμοί για άτομα όλων των επιπέδων εμπειρίας, ακόμη και σεμινάρια που μπορούν να ακολουθήσουν (όπως αυτό που είναι φιλικό για αρχάριους για τον Τιτανικό). Αυτά τα σύνολα δεδομένων θα σας βοηθήσουν να εξασκηθείτε ενώ μαθαίνετε βιβλιοθήκες Python.

Βιβλιοθήκες Python

Στη συνέχεια, είναι σημαντικό να μάθετε τις κοινές βιβλιοθήκες Python για εργασία με δεδομένα: Numpy, Matplotlib, Pandas, Scikit-Learn κ.λπ. Προτείνω να ξεκινήσετε με αυτό το μάθημα από datacamp. Περιλαμβάνει ορισμένα βασικά στοιχεία τα οποία μπορείτε να παραλείψετε ή να χρησιμοποιήσετε για έλεγχο και η ενότητα Numpy είναι μια καλή εισαγωγή.

Οι Πάντες πρέπει να μάθουν, αλλά χρειάζονται επίσης λίγο χρόνο για να κατανοήσουν αφού κάνει τόσα πολλά πράγματα. Είναι χτισμένο πάνω από το Numpy και χρησιμοποιείται για τον καθαρισμό, την προετοιμασία και την ανάλυση δεδομένων. Διαθέτει επίσης ενσωματωμένα εργαλεία για πράγματα όπως η οπτικοποίηση. Χρησιμοποίησα πολλούς πόρους για να μάθω Pandas και να εξασκηθώ μαζί του. Εδώ είναι μερικά:

  1. Μάθετε Pandas στο Kaggle
  2. Μάθετε τα μαθήματα βίντεο του Pandas | Σημειωματάριο για μάθημα
  3. Jupyter Notebook Extra Παραδείγματα: Βασικά | Σχεδιασμός με Matplotlib & Pandas | Και πολλά άλλα

Αφού έρθει ο Πάντας Scikit-Learn. Αυτό είναι όπου τα πράγματα αρχίζουν να εφαρμόζονται περισσότερο στους πραγματικούς αλγόριθμους μηχανικής μάθησης. Το Scikit-Learn είναι μια επιστημονική βιβλιοθήκη Python για μηχανική μάθηση.

Ο καλύτερος πόρος που βρήκα μέχρι στιγμής είναι το βιβλίο "Hands on Machine Learning with Scikit-Learn and Tensorflow". Νομίζω ότι κάνει πολύ καλή δουλειά να σας διδάξει βήμα-βήμα με πρακτικά παραδείγματα. Το πρώτο ημίχρονο αφορά το Scikit-Learn, οπότε έκανα αυτό το μέρος πρώτα και μετά επέστρεψα στο τμήμα Tensorflow.

Υπάρχουν πολλές άλλες βιβλιοθήκες Python, όπως ο Keras και ο PyTorch, αλλά θα μπω σε αυτές αργότερα. Αυτό είναι ήδη πολλά να μάθετε :)

Ρηχή εκμάθηση

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

Παρόλο που είναι καλό, έχω βρει ακόμη χρήσιμο να παρακολουθώ το μάθημα μηχανικής εκμάθησης του Andrew Ng από το Στάνφορντ. Είναι διαθέσιμο να ελεγχθεί δωρεάν στο Coursera (υπάρχει ένα podcast για αυτό το μάθημα στο iTunes, αλλά είναι λίγο δύσκολο να το ακολουθήσετε και είναι πάνω από μια δεκαετία). Η ποιότητα της διδασκαλίας είναι καταπληκτική και είναι ένας από τους πιο συνιστώμενους πόρους στο διαδίκτυο (δεν είναι ο ευκολότερος τρόπος για να το διανύσετε και γι 'αυτό το προτείνω εδώ).

Αρχίστε να περνάτε αργά το μάθημα Andrew Ng και μην απογοητευτείτε εάν δεν καταλαβαίνετε κάτι. Έπρεπε να το βάλω και να το πάρω αρκετές φορές. Πήρα επίσης τον Matlab στο κολέγιο, που είναι η γλώσσα που χρησιμοποιεί στο μάθημα, οπότε δεν είχα πρόβλημα με αυτό το μέρος. Αν όμως θέλετε να χρησιμοποιήσετε το Python, μπορείτε να βρείτε τα παραδείγματα που μεταφράζονται στο διαδίκτυο.

Μαθηματικά :)

Ναι, τα μαθηματικά είναι απαραίτητα. Ωστόσο, δεν νιώθω ότι μια έντονη, μαθηματική προσέγγιση είναι ο καλύτερος τρόπος για να μάθω. είναι εκφοβιστικό για πολλούς ανθρώπους. Όπως προτείνει το OCDevel στο podcast του (που συνδέεται παραπάνω), αφιερώστε τον περισσότερο χρόνο σας μαθαίνοντας πρακτική μηχανική μάθηση και ίσως 15-20% μελετώντας τα μαθηματικά.

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

Πόροι στατιστικών:

  1. Νομίζω ότι τα μαθήματα στατιστικών για το Udacity είναι αρκετά καλά. Μπορείτε να ξεκινήσετε με αυτό και στη συνέχεια να εξερευνήσετε τα άλλα που προσφέρουν.
  2. Μου άρεσε πολύ το βιβλίο, "Γυμνές Στατιστικές". Είναι γεμάτο πρακτικά παραδείγματα και ευχάριστο να διαβαστεί.
  3. Είναι επίσης χρήσιμο να κατανοήσετε τα στατιστικά Bayesian και πώς διαφέρει τα μοντέλα Frequentist και Classical. Αυτό το μάθημα coursera κάνει εξαιρετική δουλειά εξηγώντας αυτές τις έννοιες - υπάρχει επίσης ένα μέρος 2 του μαθήματος εδώ.

Πόροι γραμμικής άλγεβρας:

  1. Το βιβλίο, "Γραμμική άλγεβρα, βήμα προς βήμα" είναι εξαιρετικό. Είναι σαν ένα εγχειρίδιο γυμνασίου / κολλεγίου, αλλά καλογραμμένο και εύκολο στην παρακολούθηση. Υπάρχουν επίσης πολλές ασκήσεις για κάθε κεφάλαιο με απαντήσεις στο πίσω μέρος.
  2. Essence of Linear Άλγεβρα σειρές βίντεο - Οι μαθηματικές εξηγήσεις από το 3blue1brown είναι καταπληκτικές. Συνιστώ ανεπιφύλακτα το μαθηματικό του περιεχόμενο.
  3. Υπάρχει επίσης μια επισκόπηση της γραμμικής άλγεβρας στο μάθημα Andrew Ng, αλλά πιστεύω ότι οι δύο πόροι που παραθέτω παραπάνω είναι λίγο πιο εύκολο στη χρήση για την εκμάθηση του θέματος.

Πόροι λογισμού:

Είχα πάρει πριν από μερικά χρόνια λογισμού, αλλά έπρεπε ακόμη να συνεχίσω αρκετά. Πήρα ένα μεταχειρισμένο βιβλίο για Calc. 1 σε ένα τοπικό βιβλιοπωλείο για να ξεκινήσετε. Ακολουθούν ορισμένοι διαδικτυακοί πόροι που με βοήθησαν επίσης.

  1. Essence of Calculus σειρά βίντεο
  2. Κατανόηση του λογισμού από το The Great Courses Plus

Άλλα χρήσιμα μαθηματικά:

  1. Μαθηματική λήψη αποφάσεων από το The Great Courses Plus

Βαθιά μάθηση

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

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

  1. Η σειρά 3blue1brown που εξηγεί τα νευρικά δίκτυα
  2. Λίστα αναπαραγωγής Intl to Deep Learning του Deeplizard

Ενώ εργάζεστε μέσω του μαθήματος Andrew Ng Stanford, σας συνιστώ να κάνετε check out fast.ai. Έχουν πολλά υψηλής ποιότητας, πρακτικά μαθήματα βίντεο που μπορούν πραγματικά να βοηθήσουν να μάθουν και να παγιώσουν αυτές τις έννοιες. Το πρώτο είναι η πρακτική βαθιά εκμάθηση για κωδικοποιητές και το δεύτερο - μόλις κυκλοφόρησε - είναι το Cutting Edge Deep Learning για τους κωδικοποιητές, Μέρος 2. Πήρα τόσα πολλά πράγματα από την παρακολούθηση και την παρακολούθηση ορισμένων από αυτά τα βίντεο. Ένα άλλο εκπληκτικό χαρακτηριστικό του fast.ai είναι το φόρουμ της κοινότητας. πιθανώς ένα από τα πιο ενεργά φόρουμ AI στο Διαδίκτυο.

Βιβλιοθήκες βαθιάς μάθησης στο Python

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

Κεράς

  • Λίστα αναπαραγωγής Deeplizard Keras - Αυτό το κανάλι έχει μερικές πολύ καλές εξηγήσεις και παραδείγματα. Μπορείτε να παρακολουθήσετε μαζί με τα βίντεο δωρεάν, ή να έχετε πρόσβαση και στους κωδικούς σημειωματάριους, εγγραφόμενοι στο Patreon στο επίπεδο $ 3 (USD)
  • Βρήκα επίσης ότι η τεκμηρίωση για τον Keras ήταν αρκετά καλή
  • Η Datacamp έχει πολλά καλογραμμένα σεμινάρια για ML και Keras σαν αυτό

Τάση ροής

  • Η ενότητα Tensorflow του βιβλίου, "Hands on Machine Learning με Scikit-Learn και Tensorflow" (αναφέρεται επίσης παραπάνω)
  • Σειρά Deeplizard Tensorflow

PyTorch

  • Deeplizard Pytorch Series
  • Udacity Pytorch Bootcamp - Αυτήν τη στιγμή παίρνω το νανοδιαβάθμιο Deep Reinforcement Learning της Udacity και σκέφτηκα ότι η ενότητα PyTorch τους νωρίτερα στο μάθημα ήταν πολύ καλή. Πρόκειται να το λανσάρουν δωρεάν στο κοινό! Ακολουθούν μερικοί από τους φορητούς υπολογιστές PyTorch στο Github.
  • Το Fast.ai είναι επίσης χτισμένο με το PyTorch - Θα μάθετε αυτήν τη βιβλιοθήκη κάποια αν περάσετε από τα μαθήματά τους.

Blogs & Research Papers

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

  1. fast.ai blog
  2. Distill .pub - Η έρευνα μηχανικής μάθησης εξήγησε με σαφήνεια
  3. Two Minute Papers - Σύντομες αναλύσεις βίντεο της τεχνητής νοημοσύνης και άλλων ερευνητικών εργασιών
  4. Arvix Sanity - Πιο διαισθητικό εργαλείο για αναζήτηση, ταξινόμηση και αποθήκευση ερευνητικών εργασιών
  5. Οδικός χάρτης Deep Learning Papers
  6. Μηχανική εκμάθηση Subreddit - Έχουν νήματα «τι διαβάζετε» συζητώντας ερευνητικές εργασίες
  7. Arxiv Insights - Αυτό το κανάλι έχει μερικές καταπληκτικές αναλύσεις ερευνητικών εγγράφων AI

Ηχητική-συμπληρωματική εκπαίδευση

  1. The Data Skeptic - Έχουν πολλά καλά μικρότερα επεισόδια, που ονομάζονται [mini] όπου καλύπτουν τις έννοιες της μηχανικής μάθησης
  2. Μηχανική Λογισμικού Καθημερινή Μηχανική Εκμάθηση
  3. OCDevel Machine Learning Podcast - το ανέφερα ήδη, αλλά το αναφέρω ξανά σε περίπτωση που το χάσατε

Πρόσθετοι πόροι μάθησης

  • Νευρωνικά δίκτυα και ηλεκτρονικό βιβλίο βαθιάς μάθησης
  • Μηχανική μάθηση λαχτάρα (δωρεάν προσχέδιο) από τον Andrew Ng

Το τέλος

Παρακαλώ χειροκροτήστε εάν αυτό ήταν χρήσιμο :)

Κοινωνικά μέσα: @gwen_faraday

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