Alternatywy Python OSS dla Matlab Neural Network Toolbox. Jakieś porównania?

16

W swojej pracy naukowej chciałbym być niezależny od oprogramowania komercyjnego. Uzależnienie pakietów komercyjnych, takich jak Matlab i jego zestawy narzędzi, jest dla mnie niezadowalające, ponieważ nie wiem, czy będę mieć dostęp do Matlaba w przyszłości, a ponieważ nie podoba mi się ten język. Dlatego szukam alternatyw.

Na szczęście jestem dość biegły w Pythonie (i uwielbiam ten język), a dzięki procedurom odczytu i zapisu NumPy, SciPy, Matplotlib, Basemap i NetCDF spełnia większość moich potrzeb. Większość - wciąż wracam do Matlaba, kiedy muszę trenować pobieranie satelitów za pomocą wielowarstwowych perceptronów z przekazywaniem, np. Wykorzystują sztuczne sieci neuronowe.

Jak nie jest niczym niezwykłym w przypadku oprogramowania typu open source, istnieje więcej niż jeden pakiet obsługujący sieci neuronowe. Znacznie więcej niż jeden:

  • Jakiś czas temu wypróbowałem PyBrain , „szwajcarski scyzoryk do sieci neuronowych”, ale nie udało mi się uzyskać zadowalających rezultatów w krótkim czasie (zarówno w fazie rozwoju, jak i w czasie wykonywania). Być może nie starałem się wystarczająco mocno, a może nie jest tak naprawdę ukierunkowany na moją potrzebę.

  • Właśnie odkryłem, że istnieje pakiet o nazwie neurolab , który wygląda obiecująco: prosta i potężna biblioteka sieci neuronowych dla Pythona , z interfejsem API takim jak Neural Network Toolbox (NNT) od MATLAB .

  • Istnieje FFnet , szybkie i łatwe w użyciu rozwiązanie do uczenia sieci neuronowej z komunikacją zwrotną dla Pythona

  • Jest prostsze

  • Istnieje Peach , biblioteka dla inteligencji obliczeniowej i uczenia maszynowego

  • Istnieją powiązania Pythona z FANN , biblioteką Fast Artificial Neural Network , opisaną jako de facto standard w tym poście StackOverflow .

  • Prawdopodobnie są inni.

Czy ktoś przeszedł wysiłek porównania różnych opcji na podstawie takich kryteriów, jak łatwość użycia, szybkość itp.? Moim własnym przykładem użycia są wyszukiwania satelitarne, np. Dopasowanie silnie nieliniowej funkcji wielu zmiennych. Jestem bardzo użytkownikiem sieci neuronowych; Nie jestem zainteresowany badaniem ich wewnętrznego działania.

To pytanie dotyczące Stats.SE jest powiązane, ale z innym naciskiem.

gerrit
źródło
Twoje pytanie jest bardzo interesujące, ale myślę, że prosisz o zbyt wiele. Kompleksowa ocena różnych programów sieci neuronowych w pythonie jest zbyt szeroka, aby można było na nie odpowiedzieć na tym forum. Pomocne może być zawężenie zakresu pytania do konkretnego kryterium i interesującego Cię oprogramowania.
Paweł
Ponadto nie możemy migrować Twojego pytania, ponieważ jest ono już za stare . Jeśli uważasz, że inna strona SE jest bardziej odpowiednia dla twojego pytania, musisz ją usunąć i ponownie opublikować na drugiej stronie. Nawet jeśli ponownie odpowiesz na pytanie, nadal uważam, że w twoim najlepszym interesie jest zawężenie zakresu pytania w celu zwiększenia prawdopodobieństwa uzyskania dobrej odpowiedzi.
Paweł
Nie Python, ale obecnie używam caffe do sieci neuronowej. Głównie dla splotowej sieci neuronowej, ale jeszcze łatwiej jest skonfigurować konwencjonalną sieć NN.
Siyuan Ren,
Duplikat krzyżowy
gerrit

Odpowiedzi:

1

Sprawdziłeś scikit-learn ? To zupełnie nie moja domena, ale słyszałem o bardzo pozytywnych doświadczeniach użytkowników ...

GertVdE
źródło
Należy do kategorii Prawdopodobnie są jeszcze inne - dodanie kolejnej biblioteki do listy nie rozwiązuje mojego problemu, ale raczej rozszerza zakres wzajemnych
porównań,
Cóż, z tego co słyszałem i czytałem, zaletą scikit-learn jest to, że jest to framework zawierający wiele metod. Może to ułatwi ci pracę, gdy wykonasz porównanie metod zastosowanych do twojego problemu.
GertVdE
3
scikit-learn nie zawiera metod sieci neuronowej, sztuczny model sieci neuronowej został usunięty w wersji 0.12 i zalecił, aby użytkownicy, którzy potrzebowali tej funkcjonalności, zmienili na PyBrain.
Aron Ahmadia
1

Czy spojrzałeś na Theano ? wydaje się dość potężny .

Alex
źródło
1
Rzeczywiście, Theano jest bardzo potężny. Ale jest to kompilator (lub framework), który pozwala napisać kod Pythona, który następnie jest kompilowany i wykonywany na GPU. Theano można wykorzystać do implementacji NN, ale nie jest to biblioteka ML.
Artem Sobolev
1

Ja również pochodziłem z używania sieci neuronowych w Matlabie do Pythona. Jedną z najpotężniejszych bibliotek w Pythonie jest „Pylearn2” http://deeplearning.net/software/pylearn2/ . Obecnie jest to najbardziej aktywna biblioteka i ma wiele różnych funkcji do eksperymentowania. Opiera się na Theano i jako taki jest szybki i można go uruchomić na GPU. Niestety jest to również jego wada: interfejs API ciągle się zmienia i ma wysoką krzywą uczenia się. Musisz również skonfigurować swoje sieci neuronowe przy użyciu plików YAML. Odniosłem większy sukces przy użyciu PyBrain do tworzenia podstawowych sieci neuronowych. Potrzebowałem rozwiązania problemu regresji, w którym musiałem prognozować obciążenie elektrowni na podstawie czynników pogodowych. Przewodnik tutaj: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ dał mi 90% potrzebnego rozwiązania.

Jednym z problemów, które znalazłem w PyBrain, była prędkość. Jest napisany natywnie w Pythonie. Odkryłem, że trening sieci neuronowej jest ~ 50x wolniejszy niż Matlab. Niektórym udało się przyspieszyć proces szkolenia PyBrain dzięki bibliotece arac.

Diarmaid O Cualain
źródło