Neural networks are all the rage right now with increasing numbers of hackers, students, researchers, as well as businesses getting involved. The last resurgence was in the 80s as well as 90s, when there was little or no world wide web as well as few neural network tools. The present resurgence started around 2006. From a hacker’s perspective, what tools as well as other resources were offered back then, what’s offered now, and what should we expect for the future? For myself, a GPU on the Raspberry Pi would be nice.
The 80s as well as 90s
Neural network 80s/90s books as well as mags
For the young’uns reading this who wonder how us old geezers managed to do anything before the world wide Web, hardcopy magazines played a huge part in making us conscious of new things. as well as so it was scientific American magazine’s September 1992 special issue on Mind as well as brain that introduced me to neural networks, both the biological as well as artificial kinds.
Back then you had the option of writing your own neural networks from scratch or ordering source code from someone else, which you’d receive on a floppy diskette in the mail. I even ordered a floppy from The Amateur scientist column of that scientific American issue. You might likewise buy a neural network library that would do all the low-level, complex math for you. There was likewise a free simulator called Xerion from the university of Toronto.
Keeping an eye on the bookstore science sections did turn up the occasional book on the subject. The traditional was the two-volume Explorations in Parallel Distributed Processing, by Rumelhart, McClelland et al. A preferred of mine was Neural Computation as well as Self-Organizing Maps: An Introduction, useful if you were interested in neural networks controlling a robot arm.
There were likewise short courses as well as conferences you might attend. The seminar I attended in 1994 was a free two-day one put on by Geoffrey Hinton, then of the university of Toronto, both then as well as now a leader in the field. the best reputed annual seminar at the time was the Neural information Processing System conference, still going strong today.
And lastly, I recall combing the libraries for published papers. My stack of seminar papers as well as program handouts, photocopied articles, as well as handwritten notes from that period is around 3″ thick.
Then things went relatively quiet. While neural networks had discovered use in a few applications, they hadn’t lived up to their hype as well as from the perspective of the world, outside of a limited research community, they ceased to matter. things remained quiet as gradual improvements were made, along with a few breakthroughs, as well as then lastly around 2006 they exploded on the world again.
The present Arrives
We’re focusing on tools here however briefly, those breakthroughs were mainly:
new techniques for training networks that go more than three or four layers deep, now called deep neural networks
the use of GPUs (Graphics Processing Units) to speed up training
the availability of training data containing large numbers of samples
Neural Network Frameworks
There are now numerous neural network libraries, usually called frameworks, offered for download for free with various licenses, many of them open source frameworks. most of the more popular ones enable you to run your neural networks on GPUs, as well as are flexible sufficient to support most types of networks.
Here are most of the more popular ones. They all have GPU support except for FNN.
TensorFlow
Languages: Python, C++ is in the works
TensorFlow is Google’s latest neural network framework. It’s designed for distributing networks across multiple machines as well as GPUs. It can be considered a low-level one, offering great flexibility however likewise a larger learning curve than high-level ones like Keras as well as TFLearn, both talked about below. However, they are working on producing a version of Keras integrated in TensorFlow.
We’ve seen this one in a hack on Hackaday already in this hammer as well as beer bottle recognizing robot as well as even have an introduction to using TensorFlow.
Θεανώ
Languages: Python
This is an open source library for doing effective numerical computations involving multi-dimensional arrays. It’s from the university of Montreal, and runs on Windows, Linux as well as OS-X. Theano has been around for a long time, 0.1 having been released in 2009.
Caffe
Languages: Command line, Python, as well as MATLAB
Caffe is developed by Berkeley AI research as well as neighborhood contributors. Models can be defined in a plain text data as well as then processed using a command line tool. There are likewise Python as well as MATLAB interfaces. For example, you can define your model in a plain text file, give details on how to train it in a second plain text data called a solver, as well as then pass these to the cafFe εργαλείο γραμμής εντολών που θα εκπαιδεύσει στη συνέχεια ένα νευρικό δίκτυο. Στη συνέχεια, μπορείτε να φορτώσετε αυτό το εκπαιδευμένο δίχτυ χρησιμοποιώντας ένα πρόγραμμα Python καθώς και να το χρησιμοποιήσετε για να κάνετε κάτι, την ταξινόμηση εικόνας για παράδειγμα.
Cntk
Γλώσσες: Python, C ++, C #
Αυτό είναι το Microsoft Cogninitive Toolkit (CNTK) καθώς και οι εκδρομές στα Windows και το Linux. Σήμερα εργάζονται σε μια έκδοση που θα χρησιμοποιηθεί με τους Keras.
Κέρας
Γλώσσες: Python
Γράφτηκε στην Python, η Keras χρησιμοποιεί είτε Tensorflow είτε Theano από κάτω, καθιστώντας ευκολότερη τη χρήση αυτών των πλαισίων. Υπάρχουν επίσης σχέδια για την υποστήριξη του CNTK επίσης. Εργασία βρίσκεται σε εξέλιξη για την ενσωμάτωση των Keras σε Tensorflow με αποτέλεσμα μια ξεχωριστή έκδοση μόνο Tensorflow Keras.
Tf μαθαίνουν
Γλώσσες: Python
Όπως και ο Keras, αυτή είναι μια βιβλιοθήκη υψηλού επιπέδου χτισμένη πάνω από το Tensorflow.
Φάντασμα
Γλώσσες: Υποστηρίζει πάνω από 15 γλώσσες, χωρίς υποστήριξη GPU
Αυτή είναι μια βιβλιοθήκη ανοιχτού κώδικα υψηλού επιπέδου γραμμένη στο C. Περιορίζεται σε πλήρως συνδεδεμένα καθώς και αραιοκατοικημένα νευρωνικά δίκτυα. Ωστόσο, είναι δημοφιλές κατά τη διάρκεια των ετών, καθώς και έχει συμπεριληφθεί ακόμη και στις διανομές Linux. Πρόσφατα εμφανίζεται εδώ στο Hackaday σε ένα ρομπότ που έμαθε να περπατάει με τη μάθηση ενίσχυσης, μια τεχνική μάθησης μηχανής που συχνά χρησιμοποιεί τα νευρικά δίκτυα.
Δάδα
Γλώσσες: Lua
Βιβλιοθήκη ανοιχτού κώδικα γραμμένη στο C. Είναι ενδιαφέρον, λένε στην πρώτη σελίδα της ιστοσελίδας τους ότι ο Torch είναι ενσωματωμένος, με θύρες προς την Ίο, και το FPGA BEATEND.
Πυροβολώ
Γλώσσες: Python
Το Pytorch είναι σχετικά νέο, ο ιστότοπός τους λέει ότι βρίσκεται σε πρώιμο βήτα, ωστόσο φαίνεται να υπάρχει πολύ ενδιαφέρον για αυτό. Τρέχει στο Linux και το OS-X καθώς και χρησιμοποιεί φακό κάτω.
Δεν υπάρχει αμφιβολία άλλα που έχω χάσει. Εάν έχετε μια συγκεκριμένη προτίμηση που δεν είναι εδώ, τότε ενημερώστε μας στα σχόλια.
Ποιο θα πρέπει να χρησιμοποιήσετε; Εκτός εάν η γλώσσα προγραμματισμού ή το λειτουργικό σύστημα είναι ένα ζήτημα, τότε ένας ακόμη παράγοντας που πρέπει να έχετε κατά νου είναι το επίπεδο δεξιοτήτων σας. Εάν είστε άβολα με τα μαθηματικά ή δεν θέλετε να σκάψετε βαθιά στις αποχρώσεις του νευρικού δικτύου και στη συνέχεια επιλέξτε ένα υψηλό επίπεδο ένα. Σε αυτή την περίπτωση, παραμείνετε μακριά από το Tensorflow, όπου πρέπει να μάθετε περισσότερα για το API από το Kera, Tflearn ή τα άλλα υψηλού επιπέδου. Τα πλαίσια που υπογραμμίζουν τη λειτουργικότητα των μαθηματικών σας συνήθως απαιτούν να κάνετε περισσότερες εργασίες για να παράγετε το δίκτυο. Ένας ακόμη παράγοντας είναι το αν θα κάνετε ή όχι τη θεμελιώδη έρευνα. Ένα πλαίσιο υψηλού επιπέδου ενδέχεται να μην σας επιτρέψει να αποκτήσετε πρόσβαση στις στιγμές για να ξεκινήσετε τα τρελά δίκτυα, ίσως με συνδέσεις που καλύπτουν πολλαπλά στρώματα ή σε στρώματα, καθώς και με τα δεδομένα που ρέουν προς όλες τις κατευθύνσεις.
Online Υπηρεσίες
Θέλετε να προσθέσετε κάτι που θα προσφέρει ένα νευρικό δίκτυο στο hack σας, ωστόσο δεν θέλετε να αφιερώσετε χρόνο για να μάθετε τις περιπλοκές των νευρωνικών δικτύων; Για ότι υπάρχουν υπηρεσίες που προσφέρονται συνδέοντας το Hack στο Internet.
Έχουμε δει αμέτρητα παραδείγματα που κάνουν χρήση του Amazon’s Alexa για τη φωνητική αναγνώριση. Η Google διαθέτει επίσης τις υπηρεσίες μάθησης του Cloud Machine, οι οποίες περιλαμβάνουν όραση καθώς και ομιλία. Η υπηρεσία της Vision έχει δείξει εδώ χρησιμοποιώντας το Raspberry Pi για ταξινόμηση καραμελών καθώς και ανάγνωση ανθρώπινων συναισθημάτων. Ο Wekinator απευθύνεται σε καλλιτέχνες καθώς και μουσικούς που έχουμε δει να χρησιμοποιηθεί για να εκπαιδεύσει ένα νευρικό δίκτυο για να ανταποκριθεί σε διάφορες χειρονομίες για να μετατρέψει τα πράγματα σε μια μακριά γύρω από το σπίτι, καθώς και για την πραγματοποίηση ενός μικρότερου βιολιού ενός εικονικού κόσμου. Για να μην αφεθεί, η Microsoft διαθέτει επίσης API γνωστικών υπηρεσιών, όπως: όραμα, ομιλία, γλώσσα καθώς και άλλων.
GPU καθώς και TPUS
Επαναλαμβάνοντας μέσω ενός νευρικού δικτύου
Η εκπαίδευση ενός νευρικού δικτύου απαιτεί επαναφορά μέσω του νευρικού δικτύου, προς τα εμπρός καθώς και στη συνέχεια προς τα πίσω, κάθε φορά που βελτιώνει την ακρίβεια του δικτύου. Μέχρι ένα σημείο, τόσο περισσότεροι επαναλήψεις που μπορείτε να κάνετε, όσο καλύτερα η τελική ακρίβεια θα είναι όταν σταματήσετε. Ο αριθμός των επαναλήψεων μπορεί να είναι στις εκατοντάδες ή ακόμη και χιλιάδες. Με το 1980 καθώς και του 1990 υπολογιστές, η επίτευξη αρκετών επαναλήψεων μπορεί να πάρει έναν απαράδεκτο χρονικό διάστημα. Σύμφωνα με το άρθρο, η βαθιά μάθηση στα νευρικά δίκτυα: μια επισκόπηση, το 2004, η αύξηση 20 φορές η ταχύτητα επιτεύχθηκε με ένα GPU για ένα πλήρως συνδεδεμένο νευρικό δίκτυο. Το 2006 επιτεύχθηκε 4 φορές αύξηση για ένα συνεδριακό νευρικό δίκτυο. Μέχρι το 2010, οι αυξήσεις ήταν έως και 50 φορές ταχύτερα όταν συγκρίνουμε την εκπαίδευση σε μια CPU έναντι μιας GPU. Ως αποτέλεσμα, οι ακρίβεια ήταν πολύ υψηλότερες.
Κάρτα γραφικών NVIDIA TITAN XP. Εικόνα πίστωσης: NVIDIA
Πώς βοηθά το gpus; Ένα τεράστιο μέρος της κατάρτισης Ένα νευρικό δίκτυο περιλαμβάνει τον πολλαπλασιασμό της Matrix, κάτι που γίνεται πολύ πιο γρήγορα σε μια GPU παρά σε μια CPU. Η NVIDIA, ένας ηγέτης στην πραγματοποίηση καρτών γραφικών και GPU, δημιούργησε ένα API που ονομάζεται Cuda που χρησιμοποιείται από το λογισμικό Neural Network για να χρησιμοποιήσει το GPU. Δείχνουμε αυτό από τότε που θα δείτε τον όρο Cuda πολύ. Με την εξάπλωση της βαθιάς μάθησης, η NVIDIA έχει προσθέσει περισσότερα API, όπως Cudnn (Cuda για βαθιά νευρικά δίκτυα), μια βιβλιοθήκη λεπτομερώς συντονισμένων αρχών του νευρικού δικτύου, καθώς και μια ακόμη φορά που θα δείτε.
NviΤο Dia έχει τον δικό του ενιαίο υπολογιστή, το Jetson TX2, σχεδιασμένο να είναι ο εγκέφαλος για αυτοκίνητα αυτο-οδήγησης, selfie-snapping drones, καθώς και ούτω καθεξής. Ωστόσο, όπως έχει επισημάνει το [Brian Bendoff], το σημείο τιμής είναι λίγο υψηλό για τον τυπικό χάκερ.
Η Google έχει επίσης εργαστεί στη δική του επιτάχυνση του υλικού του στον τύπο της μονάδας επεξεργασίας Tensor (TPU). Μπορεί να έχετε παρατηρήσει την ομοιότητα με το όνομα του πλαισίου της Google παραπάνω, Tensorflow. Το Tensorflow κάνει βαριά χρήση των τανθρωπών (σκέφτεστε ενιαία καθώς και πολυδιάστατες συστοιχίες στο λογισμικό). Σύμφωνα με το χαρτί της Google σχετικά με την TPU, έχει σχεδιαστεί για τη φάση συμπερασμάτων των νευρωνικών δικτύων. Η συμπεράσματα δεν αφορά να εκπαιδεύει τα νευρικά δίκτυα, αλλά τη χρήση του νευρικού δικτύου αφού έχει εκπαιδευτεί. Δεν το έχουμε δει να χρησιμοποιείται από οποιοδήποτε είδος πλαισίων, ωστόσο, είναι κάτι που πρέπει να έχουμε κατά νου.
Χρησιμοποιώντας το υλικό άλλων ανθρώπων
Έχετε ένα νευρικό δίκτυο που θα χρειαστεί πολύς χρόνος για να εκπαιδεύσει, αλλά δεν έχετε υποστηριζόμενο GPU, ή δεν θέλετε να συνδέσετε τους πόρους σας; Σε αυτή την περίπτωση υπάρχει υλικό που μπορείτε να χρησιμοποιήσετε σε άλλες μηχανές που είναι προσβάσιμες μέσω του Διαδικτύου. Ένας τέτοιος είναι ο Floydhub ο οποίος, για ένα άτομο, κοστίζει μόνο την Penny ανά ώρα χωρίς μηνιαία πληρωμή. Ένα ακόμα είναι το Amazon EC2.
Σύνθεση δεδομένων
Εκπαιδευτικό νευρικό δίκτυο με επισημασμένα δεδομένα
Είπαμε ότι μία από τις ανακαλύψεις στα νευρικά δίκτυα ήταν η διαθεσιμότητα δεδομένων κατάρτισης που περιείχαν μεγάλο αριθμό δειγμάτων, στις δεκάδες χιλιάδες. Η εκπαίδευση ενός νευρικού δικτύου που χρησιμοποιεί έναν εποπτευόμενο αλγόριθμο κατάρτισης περιλαμβάνει την παροχή δεδομένων στο δίκτυο στις εισροές του, ωστόσο, το λέγοντάς του τι πρέπει να είναι η αναμενόμενη παραγωγή. Σε αυτή την κατάσταση τα δεδομένα πρέπει επίσης να επισημανθούν. Εάν δώσετε μια εικόνα ενός αλόγου στις εισόδους του δικτύου, καθώς και τα έξοδό του λένε ότι μοιάζει με ένα τσίτα, τότε πρέπει να γνωρίζει ότι το σφάλμα είναι μεγάλο καθώς και μεγαλύτερη εκπαίδευση. Η αναμενόμενη απόδοση ονομάζεται ετικέτα, καθώς και τα δεδομένα είναι «επισημασμένα δεδομένα».
Πολλά τέτοια σύνολα δεδομένων προσφέρονται online για εκπαιδευτικούς σκοπούς. Το Mnist είναι ένα τέτοιο για την αναγνώριση χειρόγραφου χαρακτήρα. Το Imagenet και το Cifar είναι δύο διαφορετικά σύνολα δεδομένων με ετικέτες. Πολλά περισσότερα περιλαμβάνονται στη σελίδα Wikipedia. Πολλά από τα πλαίσια που αναφέρονται παραπάνω έχουν μαθήματα που περιλαμβάνουν τα απαραίτητα σύνολα δεδομένων.
Αυτό δεν σημαίνει ότι χρειάζεστε απολύτως ένα μεγάλο σύνολο δεδομένων για να πάρετε μια αξιοσέβαστη ακρίβεια. Το Ρομπότ Περπάτημα είπαμε προηγουμένως ότι χρησιμοποίησε το πλαίσιο FNN, χρησιμοποίησε τις θέσεις του σερβοκινητήρα ως τα δεδομένα της εκπαίδευσης.
Άλλοι πόροι
Σε αντίθεση με τη δεκαετία του ’80 καθώς και τη δεκαετία του ’90, ενώ μπορείτε ακόμα να αγοράσετε βιβλία hardcopy σχετικά με τα νευρικά δίκτυα, υπάρχουν πολυάριθμες online. Δύο ηλεκτρονικά βιβλία που έχω απολαύσει είναι βαθιά μάθηση από το πάτημα MIT καθώς και τα νευρωνικά δίκτυα και η βαθιά μάθηση. Τα παραπάνω καταχωρημένα πλαίσια έχουν όλα τα μαθήματα να βοηθήσουν να ξεκινήσετε. Και στη συνέχεια υπάρχουν αμέτρητοι άλλοι ιστοχώροι καθώς και βίντεο YouTube σε οποιοδήποτε είδος θέματος που αναζητάτε. Ανακαλύπτω τα βίντεο YouTube των εγγεγραμμένων διαλέξεων καθώς και τις συνομιλίες σεμιναρίου πολύ χρήσιμες.
Το μέλλον
Raspberry Pi 7 με GPU
Αναμφίβολα το μέλλον θα δει περισσότερα πλαίσια που έρχονται μαζί.
Έχουμε δει καιρό εξειδικευμένες νευρικές μάρκες καθώς και σανίδες στην αγορά, αλλά κανένας δεν έχει ανακαλύψει ποτέ μια τεράστια αγορά, ακόμα και πίσω στη δεκαετία του ’90. Ωστόσο, αυτά δεν έχουν σχεδιαστεί ειδικά για την εξυπηρέτηση της πραγματικής περιοχής ανάπτυξης, το λογισμικό του νευρικού δικτύου που εργάζονται όλοι. Η GPU εξυπηρετεί την αγορά αυτή. Ως νευρικά δίκτυα με εκατομμύρια συνδέσεις για την εικόνα καθώς και τη φωνητική επεξεργασία, τη γλώσσα, καθώς και έτσι ώστε να κάνουν το δρόμο τους σε μικρότερες καθώς και μικρότερες καταναλωτικές συσκευές την ανάγκη για περισσότερες πληροφορίες ή επεξεργαστές προσαρμοσμένες στο λογισμικό αυτό, ελπίζουμε κάτι τέτοιο μπορεί να καταλήξει να είναι ένα νέο στοιχείο σε ένα σκάφος Raspberry Pi ή Arduino. Αν και υπάρχει η πιθανότητα ότι η επεξεργασία θα παραμείνει μια ηλεκτρονική υπηρεσία. Επεξεργασία: Αποδεικνύεται ότι υπάρχει ένα GPU στο Raspberry Pi – δείτε τα παρακάτω σχόλια. Αυτό δεν σημαίνει ότι όλα τα παραπάνω πλαίσια θα το χρησιμοποιήσουν όμως. Για παράδειγμα, η Tensorflow υποστηρίζει μόνο κάρτες Cuda NVIDIA. Ωστόσο, μπορείτε να χρησιμοποιήσετε το GPU για τον δικό σας προσαρμοσμένο κωδικό Neural Network. Διάφοροι σύνδεσμοι είναι τα σχόλια για αυτό επίσης.
Υπάρχει ήδη ανταγωνισμός για την GPU από την Asics όπως το TPU και είναι πιθανό να δούμε περισσότερα από αυτά, ενδεχομένως να συσσωρεύονται GPU από τα νευρωνικά δίκτυα εντελώς.
Όσον αφορά τον νέο μας υπολογιστή