Neural Networks: Masz to proste
sieci neuronowe są teraz wściekłości właśnie wraz z coraz większą liczbą hakerów, studentów, badaczy, a także zaangażowanych firm. Ostatnia odrodzenie była w latach 80-tych, a także 90., gdy była niewielka lub żadna sieć World Wide Web, a niewielu narzędzi Neural Network. Niniejszy odrodzenie rozpoczął się około 2006 r. Z perspektywy hakera, jakie narzędzia, jak również inne zasoby zostały zaproponowane wtedy, co jest oferowane, a co powinniśmy się spodziewać na przyszłość? Dla siebie, GPU na malinowym Pi byłby miły.
Lata 80. jak również 90.
Neural Sieć 80. / 90. Książki i Mags
Dla młodych, które czytając to, który zastanawiający się, jak my Stare Geezers zdołali zrobić wszystko przed World Wide Web, magazyny hardcopy zagrały ogromną część w uświadomieniu nowych rzeczy. Podobnie jak więc naukowy amerykański magazyn jest września 1992 r. Specjalny problem, a także mózg, który wprowadził mnie do sieci neuronowych, zarówno biologicznej jak i sztucznych rodzajów.
Wtedy wtedy miałeś możliwość napisania własnych sieci neuronowych od podstaw lub zamawiania kodu źródłowego z kogoś innego, który otrzymasz na dyskietce w poczcie. Zamówiłem nawet floppy z kolumny naukowej Amatorki tej naukowej emisji amerykańskiej. Można również kupić bibliotekę sieci neuronowej, która przeprowadziłaby cały niski poziom, złożona matematyka dla Ciebie. Podobnie był wolny symulator o nazwie Xerion z University of Toronto.
Utrzymanie oka na sekcje nauki księgarni pojawił się okazjonalną książkę na ten temat. Tradycyjne były dwujętyczne poszukiwania w przetwarzaniu równoległym rozproszonym, przez Rumelhart, McClelland i in. Korzystnym z kopalni była obliczenia neuronowe, a także mapy samozorganizujące: wprowadzenie, przydatne, jeśli interesowałeś się neuronymi sieciami kontrolującymi ramię robota.
Były też krótkie kursy, a także konferencje, które możesz wziąć udział. Seminarium, w których uczestniczyłem w 1994 roku, był wolny dwukierunkowy nagrany przez Geoffrey Hinton, a następnie University of Toronto, zarówno wtedy, jak i teraz lidera w tej dziedzinie. Najlepsze renomowane seminarium w tym czasie była konferencja systemu przetwarzania informacji neuronowych, wciąż silny dzisiaj.
I wreszcie, pamiętam za czesanie bibliotek na opublikowane dokumenty. Mój stos papierów seminaryjnych, a także materiały informacyjne, kserokwione artykuły, a także odręczne notatki z tego okresu wynosi około 3 “grubości.
Wtedy rzeczy poszły stosunkowo ciche. Podczas gdy sieci neuronowe odkryły stosowanie w kilku aplikacjach, nie mieszkali do ich szumu, a także z perspektywy świata, poza ograniczoną społecznością badawczą, przestali ich znaczenie. Rzeczy pozostawały cicho, ponieważ powstały stopniowe ulepszenia, wraz z kilkoma przełomami, a następnie w leci około 2006 r. Znów eksplodowali na świecie.
Obecna przybywa
Koncentrujemy się na narzędziach tutaj jednak krótko, te przełęki były głównie:
Nowe techniki sieci szkoleniowych, które są głębokie głębokie, teraz nazywane głębokim neuronami
Zastosowanie GPU (jednostki przetwarzania graficznego) do przyspieszenia szkolenia
Dostępność danych szkoleniowych zawierających dużą liczbę próbek
Ramy sieci neuronowych.
Istnieją teraz liczne biblioteki sieci neuronowych, zwykle nazywane ramami, oferowanymi do pobrania za darmo z różnymi licencjami, wiele z nich open source frameworks. Większość bardziej popularnych pozwala Ci uruchomić sieci neuronowych na GPU, a także elastyczne wystarczające do obsługi większości rodzajów sieci.
Oto większość bardziej popularnych. Wszystkie mają wsparcie GPU, z wyjątkiem FNN.
Tensorflow.
Języki: Python, C ++ jest w pracach
Tensorflow jest najnowszą strukturą sieci neuronowej Google. Jest przeznaczony do dystrybucji sieci w wielu komputerach, a także GPU. Można go uznać za niski poziom, oferując dużą elastyczność, jednak również większą krzywą edukacyjną niż wysokiego poziomu, takie jak Keras, a także Tftearn, oboje rozmawiali poniżej. Pracują jednak nad produkcją wersji Keras zintegrowanej w Tensorlow.
Widzieliśmy ten w haku na Hackaday już w tym młotku, a także rozpoznając robota butelki piwa, a nawet ma wprowadzenie do użycia TENSORFLOW.
THANO.
Języki: Python.
Jest to biblioteka open source do wykonywania skutecznych obliczeń numerycznych obejmujących wielowymiarowe tablice. Jest z University of Montreal i biegnie w systemie Windows, Linux, a także OS-X. Thano jest od dawna, 0.1 został wydany w 2009 roku.
Caffe.
Języki: Linia poleceń, Python, a także Matlab
Caffe jest rozwijana przez Berkeley AI badania, a także współpracowników sąsiedztwa. Modele można zdefiniować w zwykłych danych tekstowych, a następnie przetwarzane za pomocą narzędzia wiersza poleceń. Istnieją również podobno pyton, jak również interfejsy Matlab. Na przykład możesz zdefiniować swój model w zwykłym pliku tekstowym, podaj szczegóły, jak go trenować w drugim zwykłym danym tekstowym zwanym Solver, a następnie przekazać je do CAFfe command line tool which will then train a neural network. You can then load this trained net using a Python program as well as use it to do something, image classification for example.
CNTK
Languages: Python, C++, C#
This is the Microsoft Cognitive Toolkit (CNTK) as well as runs on Windows and Linux. They’re currently working on a version to be used with Keras.
Keras
Języki: Python.
Written in Python, Keras uses either TensorFlow or Theano underneath, making it easier to use those frameworks. There are likewise plans to support CNTK as well. work is underway to integrate Keras into TensorFlow resulting in a separate TensorFlow-only version of Keras.
TF Learn
Języki: Python.
Like Keras, this is a high-level library built on top of TensorFlow.
FANN
Languages: supports over 15 languages, no GPU support
This is a high-level open source library written in C. It’s limited to fully connected as well as sparsely connected neural networks. However, it’s been popular over the years, as well as has even been included in Linux distributions. It’s recently shown up here on Hackaday in a robot that learned to walk using reinforcement learning, a machine learning technique that often makes use of neural networks.
Latarka
Languages: Lua
Open source library written in C. Interestingly, they say on the front page of their website that Torch is embeddable, with ports to iOS, Andoid as well as FPGA backends.
PyTorch
Języki: Python.
PyTorch is relatively new, their website says it’s in early-release beta, however there seems to be a lot interest in it. It runs on Linux and OS-X as well as uses Torch underneath.
There are no question others that I’ve missed. If you have a particular preferred that’s not here then please let us know in the comments.
Which one should you use? Unless the programming language or OS is an issue then one more factor to keep in mind is your skill level. If you’re uncomfortable with math or don’t want to dig deeply into the neural network’s nuances then chose a high-level one. in that case, stay away from TensorFlow, where you have to learn more about the API than Kera, TFLearn or the other high-level ones. frameworks that highlight their math functionality usually require you to do more work to produce the network. one more factor is whether or not you’ll be doing fundamental research. A high-level framework may not enable you to gain access to the innards enough to start making crazy networks, perhaps with connections spanning multiple layers or within layers, as well as with data flowing in all directions.
Usługi online
Are you you’re looking to add something a neural network would offer to your hack however don’t want to take the time to learn the intricacies of neural networks? For that there are services offered by connecting your hack to the internet.
We’ve seen countless examples making use of Amazon’s Alexa for voice recognition. Google likewise has its Cloud machine learning services which includes vision as well as speech. Its vision service have shown up here using Raspberry Pi’s for candy sorting as well as reading human emotions. The Wekinator is aimed at artists as well as musicians that we’ve seen used to train a neural network to respond to various gestures for turning things on an off around the house, as well as for making a virtual world’s tiniest violin. Not to be left out, Microsoft likewise has its Cognitive services APIs, including: vision, speech, language as well as others.
GPUs as well as TPUs
Iterating through a neural network
Training a neural network requires iterating through the neural network, forward as well as then backward, each time improving the network’s accuracy. Up to a point, the more iterations you can do, the much better the final accuracy will be when you stop. The number of iterations might be in the hundreds or even thousands. With 1980s as well as 1990s computers, achieving enough iterations might take an unacceptable amount of time. According to the article, Deep learning in Neural Networks: An Overview, in 2004 an increase of 20 times the speed was achieved with a GPU for a fully connected neural network. In 2006 a 4 times increase was achieved for a convolutional neural network. By 2010, increases were as much as 50 times faster when comparing training on a CPU versus a GPU. As a result, accuracies were much higher.
Nvidia Titan Xp graphics card. image Credit: Nvidia
How do GPUs help? A huge part of training a neural network involves doing matrix multiplication, something which is done much faster on a GPU than on a CPU. Nvidia, a leader in making graphics cards and GPUs, created an API called CUDA which is used by neural network software to make use of the GPU. We point this out since you’ll see the term CUDA a lot. With the spread of deep learning, Nvidia has added more APIs, including CuDNN (CUDA for Deep Neural Networks), a library of finely tuned neural network primitives, as well as one more term you’ll see.
NviDia również ma własny komputer pokładowy, Jetson TX2, zaprojektowany, aby być mózgami do samochodów samobieżnych, dronów selfie-przyciągających, a także tak dalej. Jednak, jak wskazano naszą [Brian Benchoff], punkt cenowy jest trochę wysoki dla typowego hakera.
Google pracuje również na własnym przyspieszeniu sprzętowym w rodzaju jednostki przetwarzania tensora (TPU). Być może zauważyłeś podobieństwo do nazwy Framework Google powyżej, Tensorflow. Tensorflow zapewnia ciężkie stosowanie pomiarów (pomyśl o pojedynczym, a także wielowymiarowych tablic w oprogramowaniu). Zgodnie z artykułem Google na TPU jest przeznaczony do fazy wnioskowania sieci neuronowych. Wniosek odnosi się do szkolenia sieci neuronowych, ale do korzystania z sieci neuronowej po tym, jak został przeszkolony. Nie widzieliśmy jeszcze, że używany przez żadnego rodzaju ramy, ale jednak ma to na myśli.
Używanie sprzętu innych osób
Czy masz sieć neuronową, która zajmie dużo czasu, ale nie masz wspieranego GPU lub nie chcesz związać swoich zasobów? W tej sytuacji jest sprzęt, którego można używać na innych maszynach dostępnych przez Internet. Jeden taki jest Floydhub, który dla jednostki kosztuje tylko grosza na godzinę bez płatności miesięcznej. Jeszcze jeden jest Amazon EC2.
Zbiorniki danych.
Szkolenie sieci neuronowej z oznakowanymi danymi
Powiedzieliśmy, że jednym z przełomów w sieciach neuronowych była dostępność danych szkoleniowych zawierających dużą liczbę próbek, w dziesiątkach tysięcy. Szkolenie sieci neuronowej przy użyciu nadzorowanego algorytmu treningowego obejmuje dając dane do sieci na jej wejściach, jednak podobnie informując o tym, co powinno być oczekiwane wyjście. W tej sytuacji dane podobne muszą być oznakowane. Jeśli podasz obraz konia do wejść sieci, a także jego wyjścia mówią, że wygląda jak gepard, to musi wiedzieć, że błąd jest duży, a także więcej szkolenia jest potrzebne. Oczekiwany wyjście nazywa się etykietą, a także dane są “oznakowane dane”.
Wiele takich zbiorów danych jest oferowanych online do celów szkoleniowych. Mnist jest jednym takim dla rozpoznawania charakteru odręcznego. Imagenet i Cifar to dwa różne zbiory danych znakowanych obrazów. Wiele więcej jest wymienione na tej stronie Wikipedii. Wiele wymienionych powyżej ram ma samouczki zawierające niezbędne zestawy danych.
Nie znaczy, że absolutnie potrzebujesz dużego zestawu danych, aby uzyskać szanowaną dokładność. Robot spaceru, wspomniany wcześniej, że używali ram FNN, wykorzystaliśmy pozycje Servo silnika jako jego dane treningowe.
Inne zasoby
W przeciwieństwie do lat 80-tych, a także 90., podczas gdy nadal możesz kupować książki hardcopy o sieciach neuronowych, istnieje wiele osób online. Dwie książki internetowe, które lubiłem, są głębokie uczenie się przez MIT Press, a także sieci neuronowe i głębokie uczenie się. Powyższe wymienione ramy mają samouczki, które pomogą zacząć. A potem istnieją niezliczone inne strony internetowe, a także filmy YouTube w dowolnym temacie, którego szukasz. Odkrywam filmy YouTube z zarejestrowanych wykładów, jak również rozmowy seminarium bardzo przydatne.
Przyszłość
Raspberry PI 7 z GPU
Niewątpliwie przyszłość zobaczy więcej struktur.
Dawno widzieliśmy specjalistyczne żetony neuronowe, a także deski na rynku, ale żaden nigdy nie odkrył ogromnego rynku, nawet w latach 90-tych. Jednak nie są one specjalnie zaprojektowane za obsługę obszaru wzrostu rzeczywistego, oprogramowania Neural Network oprogramowania, nad którymi pracują. GPU serwują ten rynek. Jako sieci neuronowe z milionami połączeń o wizerunku, a także przetwarzanie głosowe, język, a także tak dalej, jak w drodze do mniejszych, a także mniejszych urządzeń konsumenckich, potrzebują więcej procesorów graficznych lub procesorów dostosowanych do tego oprogramowania, który miejmy nadzieję, że może skończyć się nowym elementem na płytce Raspberry Pi lub Arduino. Chociaż istnieje możliwość, że przetwarzanie pozostanie usługą online. Edytuj: Okazuje się, że znajduje się GPU na Raspberry PI – zobacz komentarze poniżej. Nie oznacza to, że wszystkie powyższe ramy wykorzystają go. Na przykład Tensorflow obsługuje tylko karty NVIDIA CUDA. Można jednak nadal korzystać z GPU dla własnego niestandardowego nerwowego kodu sieciowego. Różne linki są również w komentarzach.
Istnieje już konkurencja dla GPU z Asics, takich jak TPU i możliwe, że zobaczymy więcej z tych, ewentualnie uzależnione GPU z sieci neuronowych.
Jeśli chodzi o nasz nowy komputer