10 najlepszych frameworków do uczenia maszynowego

Opublikowany: 2017-03-11
Spis treści pokaż
1. Przepływ tensorowy
2. Kawa
3. Uczenie maszynowe Amazon
4. Apache Singa
5. Microsoft CNTK
6. Pochodnia
7. Accord.NET
8. Apache Mahout
9. Teano
10. Burza mózgów

Zagłębiając się w świat uczenia maszynowego (ML), wybór jednego frameworka z wielu alternatyw może być trudnym zadaniem. Być może znasz już nazwy, ale warto ocenić opcje podczas procesu podejmowania decyzji. Istnieją różne frameworki, biblioteki, aplikacje, zestawy narzędzi i zestawy danych w świecie uczenia maszynowego, które mogą być bardzo mylące, zwłaszcza jeśli jesteś początkującym. Przyzwyczajenie się do popularnych frameworków ML jest niezbędne, jeśli chodzi o wybór takiego do zbudowania aplikacji. Dlatego opracowaliśmy listę 10 najlepszych frameworków uczenia maszynowego.

1. Przepływ tensorowy

Tensorflow został opracowany przez zespół Google Brain dla różnych zadań rozumienia języka i zadań percepcyjnych. Ta platforma open source jest używana do szeroko zakrojonych badań nad głębokimi sieciami neuronowymi i uczeniem maszynowym. Będąc drugą platformą uczenia maszynowego firmy Google Brain, jest ona zgodna z większością nowych procesorów i procesorów graficznych. Wiele popularnych usług Google, z których korzystamy na co dzień, takich jak Gmail, rozpoznawanie mowy, Zdjęcia Google, a nawet wyszukiwarka Google, jest wyposażonych w Tensorflow.

Tensorflow wykorzystuje wykresy przepływu danych do wykonywania skomplikowanych zadań numerycznych. Obliczenia matematyczne opracowywane są za pomocą grafu skierowanego zawierającego krawędzie i węzły. Te węzły są używane do implementacji operacji i mogą również działać jako punkty końcowe, do których podawane są dane. Krawędzie reprezentują również powiązania wejścia/wyjścia między różnymi węzłami.

2. Kawa

Caffe to platforma uczenia maszynowego, która została zaprojektowana z myślą o lepszej ekspresji, szybkości i modułowości. Został opracowany z myślą o komputerowej klasyfikacji wizji/obrazów z wykorzystaniem splotowych sieci neuronowych (CNN). Caffe jest popularna dzięki modelowemu zoo, które jest zestawem wstępnie wytrenowanych modeli, które nie wymagają żadnego kodowania do wdrożenia.

Jest lepiej przystosowany do tworzenia aplikacji w przeciwieństwie do Tensorflow, który lepiej sprawdza się w badaniach i rozwoju. Jeśli masz do czynienia z aplikacjami z danymi tekstowymi, dźwiękowymi lub szeregami czasowymi, pamiętaj, że Caffe nie jest przeznaczony do niczego innego niż komputerowa wizja. Może jednak dynamicznie działać na wielu urządzeniach i dobrze radzi sobie z przełączaniem między procesorem a procesorem graficznym za pomocą tylko jednej flagi.

3. Uczenie maszynowe Amazon

Amazon opracował własną usługę uczenia maszynowego dla programistów o nazwie AML. Jest to zbiór narzędzi i kreatorów, których można używać do opracowywania wyrafinowanych, zaawansowanych i inteligentnych modeli uczenia się bez konieczności majstrowania przy kodzie. Korzystając z AML, prognozy potrzebne dla aplikacji można uzyskać za pomocą interfejsów API, które są łatwiejsze w użyciu. Technologia stojąca za AML jest wykorzystywana przez wewnętrznych analityków danych Amazon do obsługi Amazon Cloud Services i jest wysoce skalowalna, dynamiczna i elastyczna. AML może łączyć się z danymi przechowywanymi w Amazon S3, RDS lub Redshift i przeprowadzać operacje takie jak klasyfikacja binarna, regresja lub kategoryzacja wieloklasowa w celu tworzenia nowych modeli.

4. Apache Singa

Apache Singa koncentruje się przede wszystkim na rozproszonym uczeniu głębokim przy użyciu partycjonowania modelu i zrównoleglaniu procesu uczenia. Zapewnia prosty i niezawodny model programowania, który może działać w klastrze węzłów. Główne zastosowania to rozpoznawanie obrazów i przetwarzanie języka naturalnego (NLP).

Singa została opracowana z intuicyjnym modelem programowania opartym na abstrakcji warstw i obsługuje szereg modeli uczenia głębokiego. Ponieważ opiera się na bardzo elastycznej architekturze, może obsługiwać zarówno synchroniczne, jak i asynchroniczne, a nawet hybrydowe metody uczenia. Stos technologiczny Singa składa się z trzech ważnych komponentów: IO, modelu i rdzenia. Komponent IO zawiera klasy używane do odczytu/zapisu danych w sieci i na dysku. Główny komponent obsługuje operacje tensorowe i funkcje zarządzania pamięcią. Model zawiera algorytmy i struktury danych wykorzystywane w modelach uczenia maszynowego.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) to platforma uczenia maszynowego typu open source firmy Microsoft. Chociaż jest bardziej popularny na arenie rozpoznawania mowy, CNTK może być również używany do treningu tekstowego i graficznego. Dzięki obsłudze szerokiej gamy algorytmów uczenia maszynowego, takich jak AS CNN, LSTM, RNN, Sequence-to-Sequence i Feed Forward, jest to jedna z najbardziej dynamicznych platform uczenia maszynowego. CNTK obsługuje wiele typów sprzętu, w tym różne procesory i karty graficzne.

Kompatybilność jest jedną z najważniejszych cech CNTK. Jest również chwalony jako najbardziej wyrazista i łatwa w użyciu architektura uczenia maszynowego. W CNTK możesz pracować z językami takimi jak C++ i python i albo korzystać z wbudowanych modeli szkoleniowych, albo tworzyć własne.

6. Pochodnia

Torch może być prawdopodobnie najprostszą strukturą uczenia maszynowego do skonfigurowania i szybkiego i łatwego uruchamiania, zwłaszcza jeśli używasz Ubuntu. Opracowany w 2002 roku na Uniwersytecie Nowojorskim Torch jest szeroko stosowany w dużych firmach technologicznych, takich jak Twitter i Facebook. Latarka jest zakodowana w języku zwanym Lua, który jest rzadkością, ale łatwym do odczytania i zrozumienia. Niektóre zalety Torch można przypisać temu przyjaznemu językowi programowania z przydatnymi komunikatami o błędach, ogromnym repozytorium przykładowego kodu, przewodnikami i pomocną społecznością.

7. Accord.NET

Accord.NET to platforma uczenia maszynowego typu open source oparta na platformie .NET i jest idealna do obliczeń naukowych. Składa się z różnych bibliotek, które można wykorzystać do takich aplikacji, jak rozpoznawanie wzorców, sztuczne sieci neuronowe, statystyczne przetwarzanie danych, algebra liniowa, przetwarzanie obrazów itp. Framework składa się z bibliotek dostępnych jako instalatory, pakiety NuGet i kod źródłowy. Accord.NET posiada bibliotekę macierzową, która ułatwia ponowne wykorzystanie kodu i stopniowe zmiany algorytmiczne.

8. Apache Mahout

Będąc darmowym i otwartym projektem przez Apache Software Foundation, Apache Mahout został zbudowany w celu opracowania darmowych, rozproszonych lub skalowalnych struktur ML dla aplikacji, takich jak klastrowanie, klasyfikacja i wspólne filtrowanie. Kolekcje Java do różnych operacji obliczeniowych i biblioteki Java są również dostępne w Mahout.

Apache Mahout jest wdrażany na platformie Hadoop przy użyciu paradygmatu MapReduce. Jedną z doskonałych aplikacji jest natychmiastowe przekształcanie danych we wgląd. Po połączeniu przechowywanych Big Data w Hadoop Mahout może pomóc narzędziom do analizy danych w znajdowaniu znaczących wzorców z zestawów danych.

9. Teano

Theano został opracowany w 2007 roku na Uniwersytecie w Montrealu, który jest znany na całym świecie z algorytmów uczenia maszynowego. Chociaż jest uważany za low-endową platformę uczenia maszynowego, jest elastyczny i niesamowicie szybki. Komunikaty o błędach rzucane przez framework są niesławne jako nieprzydatne i tajemnicze. Pomijając je, Theano jest platformą bardziej odpowiednią do zadań badawczych i może być w tym niezwykle pomocna.

Jest używany głównie jako podstawowa platforma dla wysokiej klasy systemów abstrakcji, które wysyłają wrappery API do Theano. Przykładami niektórych popularnych bibliotek są Lasagne, Blocks i Keras. Jedną z wad korzystania z Theano jest to, że będziesz musiał majstrować przy pewnym obejściu, aby mieć obsługę wielu GPU.

10. Burza mózgów

Brainstorm to jedna z najłatwiejszych do opanowania platform uczenia maszynowego, biorąc pod uwagę jej prostotę i elastyczność. Dzięki temu praca z sieciami neuronowymi jest jednocześnie szybsza i przyjemniejsza. Napisany w całości w Pythonie Brainstorm został zbudowany tak, aby działał płynnie na wielu systemach zaplecza.

Brainstorm zapewnia dwa „handers” lub interfejsy API danych przy użyciu Pythona – jeden dla procesorów z biblioteką Numpy, a drugi do wykorzystania procesorów graficznych za pomocą CUDA. Większość ciężkich zadań jest wykonywana przez skrypty Pythona, co oznacza, że ​​prawie nie ma bogatego interfejsu użytkownika.