3 najlepsze biblioteki uczenia maszynowego w C++, które powinieneś zdobyć

Opublikowany: 2020-12-10

Dzisiaj, gdziekolwiek spojrzymy, uczenie maszynowe jest wokół nas w takiej czy innej formie. Ten podzbiór sztucznej inteligencji znalazł różnorodne zastosowania we wszystkich paralelach w branży i słusznie. Mimo że uczenie maszynowe jest rozwijającą się dziedziną, otworzyło wiele możliwości do zbadania.

Teraz pytanie brzmi, jakiego języka programowania używać w projektach uczenia maszynowego?

Python i C++ to dwa najpopularniejsze języki programowania. Oba te języki mogą pochwalić się aktywną społecznością, dedykowanym wsparciem narzędzi, rozbudowanym ekosystemem bibliotek i godną pochwały wydajnością środowiska uruchomieniowego. Jednak w dzisiejszym poście skupimy się na uczeniu maszynowym w C++.

Spis treści

Dlaczego C++ do uczenia maszynowego?

Powszechnie wiadomo, że uczenie maszynowe wymaga dużej wydajności procesora i właśnie to gwarantuje C++. Jeśli chodzi o szybkość i wydajność, C++ pozostawia w tyle Python, Javę, a nawet C#. Inną ważną zaletą używania C++ do uczenia maszynowego jest obsługa wskaźników, funkcja niedostępna w wielu popularnych językach programowania.

Aby pomyślnie zaimplementować Machine Learning w C++, najważniejszą rzeczą do zrobienia jest zapoznanie się z bibliotekami C++. Na szczęście C++ ma kilka świetnych bibliotek do uczenia maszynowego, w tym Shark, MLPack i GRT (Gesture Recognition Toolkit).

Przejdźmy teraz do dyskusji na temat bibliotek uczenia maszynowego w C++.

Biblioteki uczenia maszynowego w C++

1. Rekin

Shark to modułowa biblioteka typu open source w C++. Jest to idealna biblioteka do uczenia maszynowego, ponieważ ma szerokie wsparcie dla nadzorowanych algorytmów uczenia, takich jak regresja liniowa, k-średnie, sieci neuronowe i klastrowanie, żeby wymienić tylko kilka.

Shark zawiera również liczne metody optymalizacji liniowej i nieliniowej, algorytmy uczenia oparte na jądrze, optymalizację numeryczną i wiele innych technik ML. Jest to idealne narzędzie zarówno do badań, jak i tworzenia rzeczywistych aplikacji. Shark ma doskonałą dokumentację i jest kompatybilny z systemami Linux, Windows i macOS.

Jak zainstalować rekina?

Aby zainstalować Shark, musisz pobrać pakiety źródłowe z oficjalnej strony pobierania . Następnie musisz zbudować bibliotekę, pisząc następujący kod:

mkdir Rekin/budowa/

CD Shark/kompilacja

cmak ../

robić

Musisz wiedzieć, że Shark ma dwie zależności – Boost i CMake . Podczas gdy w systemie Linux w systemie Windows zwykle używany jest ATLAS, w systemie macOS Accelerate jest domyślną biblioteką algebry liniowej. W macOS możesz użyć MacPorts, aby uzyskać niezbędne pakiety, takie jak:

sudo port install boost cmake

Jednak w Ubuntu musisz zainstalować wymagane pakiety, używając następującej instrukcji:

sudo apt-get zainstaluj cmake cmake-curses-gui libatlas-base-dev libboost-all-dev

Oto kroki instalacji Shark:

  • Najpierw pobierz pakiety źródłowe ze strony d ownloads i rozpakuj je.
  • Uruchom GUI CMake
  • Wybierz „Gdzie jest kod źródłowy”, aby ustawić ścieżkę do rozpakowanej lokalizacji Shark.
  • Wybierz "Gdzie skompilować katalog", aby ustawić ścieżkę, w której chcesz przechowywać pliki projektu programu Visual Studio.
  • Wybierz opcję „Dodaj wpis”. Teraz dodaj wpis BOOST_ROOT typu PATH i ustaw go w katalogu instalacyjnym boost.
  • Ponownie dodaj wpis BOOST_LIBRARYDIR typu PATH i ustaw go w katalogu biblioteki boost.
  • Na koniec wybierz kompilator apt Visual Studio i kliknij dwukrotnie opcję „Konfiguruj”, a następnie opcję „Generuj”.

2. mlpakiet

mlpack to biblioteka C++ zaprojektowana specjalnie pod kątem wydajności. Obiecuje oferować szybkie i rozszerzalne implementacje pionierskich algorytmów ML. Unikalnym aspektem tej biblioteki C++ jest to, że udostępnia ona algorytmy ML w postaci prostych programów wiersza poleceń, powiązań Pythona, powiązań Julii i klas C++, z których wszystkie można zintegrować z rozwiązaniami ML na większą skalę.

Jak zainstalować mlpack?

Proces instalacji MLPack różni się w zależności od platformy.

W przypadku Pythona pakiet źródłowy można pobrać przez pip lub conda, tak jak poniżej:

pip zainstaluj mlpack

conda install -c conda-forge mlpack

Więcej informacji można znaleźć w przewodniku szybkiego startu mlpack w Pythonie .

W przypadku Julii źródła można uzyskać za pośrednictwem pakietu Pkg w następujący sposób:

importuj paczki;

Pkg.add("mlpack")

W przypadku Ubuntu, Debian, Fedory i Red Hat możesz zainstalować mlpack za pomocą menedżera pakietów. Przewodnik szybkiego startu dla wiersza polecenia mlpack to dobre miejsce na rozpoczęcie. Możesz również zbudować go ze źródła, postępując zgodnie z samouczkiem dotyczącym budowania systemu Linux .

W przypadku systemu Windows można pobrać gotowe pliki binarne — Windows 64 bit — Instalator MSI i Windows 64 bit — ZIP . Można go również zainstalować za pomocą menedżera pakietów, takiego jak vcpkg , lub zbudować ze źródła zgodnie z samouczkiem dotyczącym budowania systemu Windows .

Jadąc do macOS, możesz zainstalować bibliotekę przez homebrew, na przykład:

napar zainstaluj mlpack

Przeczytaj: Najwyżej płatne prace związane z uczeniem maszynowym

3. GRT (zestaw narzędzi do rozpoznawania gestów)

GRT lub Gesture Recognition Toolkit to wieloplatformowa biblioteka C++ typu open source. Jest specjalnie zaprojektowany do rozpoznawania gestów w czasie rzeczywistym. Zawiera kompleksowy interfejs C++ API, który jest dodatkowo wzmocniony przez schludny i łatwy w użyciu GUI (Graphical User Interface).

GRT jest nie tylko przyjazny dla początkujących, ale także niezwykle łatwy do zintegrowania z istniejącymi projektami C++. Jest kompatybilny z dowolnym czujnikiem / wejściem danych i możesz go trenować za pomocą unikalnych gestów. Ponadto GRT może w razie potrzeby dostosować się do niestandardowych algorytmów przetwarzania lub wyodrębniania funkcji.

Jak zainstalować GRT?

Pierwszą rzeczą, którą musisz zrobić, to pobrać pakiet GRT. Następnie musisz zlokalizować folder GRT w głównym folderze zestawu narzędzi do rozpoznawania gestów i dodać folder GRT (wraz ze wszystkimi podfolderami) do żądanego projektu.

Możesz zacząć korzystać z GRT, dodając pełny kod przechowywany w folderze GRT do projektu C++. Jeśli korzystasz z IDE, takich jak VisualStudio lub XCode, możesz dodać pliki folderu GRT do swojego projektu, podążając tą ścieżką – „ Plik -> Dodaj pliki do projektu ”. Możesz także przeciągnąć folder GRT (z Findera lub Eksploratora Windows) do IDE, aby dodać wszystkie pliki z folderu GRT do swojego projektu.

Po dodaniu kodu zawartego w folderze GRT do projektu możesz korzystać ze wszystkich funkcji/klas GRT. Wszystko, co musisz zrobić, to dodać następujące dwa wiersze kodu na górze pliku nagłówkowego w projekcie, w którym chcesz użyć kodu GRT:

#dołącz „GRT/GRT.h”

int main (int argc, const char * argv[])

{

//Główny kod Twojego projektu…

}

W tym kodzie pierwsza linia dodaje główny plik nagłówkowy GRT (GRT.h) do projektu. Plik GRT.h zawiera wszystkie pliki nagłówkowe modułu GRT, dzięki czemu nie trzeba ręcznie wprowadzać żadnych innych plików nagłówkowych GRT. Jednak druga linia deklaruje, że używana jest przestrzeń nazw GRT. Eliminuje to potrzebę pisania GRT:: WhatEverClass za każdym razem, gdy chcesz użyć klasy GRT – możesz napisać WhatEverClass i skończyć z tym.

Pamiętaj jednak, że musisz określić fizyczną ścieżkę, w której przechowywałeś folder GRT na dysku twardym, w oparciu o używane IDE.

Przeczytaj także: Kariera w uczeniu maszynowym

Wniosek

Te trzy biblioteki C++ są idealne do obsługi prawie wszystkich Twoich potrzeb związanych z ML. Kluczem do opanowania uczenia maszynowego w C++ jest najpierw poznanie tych bibliotek, zrozumienie ich specjalizacji i funkcji, a następnie wdrożenie ich zgodnie z określonymi wymaganiami ML.

Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Który z nich jest lepszy do uczenia maszynowego — C++ czy Python?

C++ i Python to dwa najczęściej używane języki programowania. Jednak w zależności od zadania należy wybrać, którego użyć. Jeśli chodzi o systemy tworzenia gier i uczenia się, preferowanym językiem jest C++. Jednak jeśli chodzi o uczenie maszynowe, najlepszą opcją jest Python. Przydaje się również do zadań związanych z systemami danych. Ponadto, ponieważ składnia Pythona jest łatwa do zrozumienia, jest zalecana dla początkujących. Innym wyróżniającym aspektem Pythona jest to, że jest to język interpretowany, co oznacza, że ​​kod Pythona nie jest tłumaczony na czytelny maszynowo w czasie wykonywania.

Jakie są niektóre wyzwania związane z uczeniem maszynowym?

Ponieważ dane są najistotniejszym wkładem w uczeniu maszynowym, jednym z problemów, z którymi borykają się profesjonaliści zajmujący się uczeniem maszynowym, jest brak wysokiej jakości danych. Niedopasowanie może również wystąpić, jeśli dane nie pasują dobrze do zmiennych wejściowych i wyjściowych. Dane są niezbędne, ale zbyt duża ich ilość może prowadzić do nadmiernego dopasowania, co skutkuje słabą wydajnością algorytmu uczenia maszynowego. Znalezienie dokładnych wyników jest proste dzięki modelom uczenia maszynowego, ale wymagany czas jest ogromny, co stanowi kolejną trudność.

Czym różnią się od siebie biblioteki statyczne i dynamiczne?

Pod względem wielkości biblioteki statyczne i dynamiczne różnią się od siebie. Ponieważ tylko jedna kopia biblioteki dynamicznej jest zachowywana lub przechowywana w pamięci, biblioteki dynamiczne mają znacznie mniejszy rozmiar niż biblioteki statyczne. Plik wykonywalny zawiera bibliotekę statyczną, która została zbudowana lub dołączona. Jest to składnik Twojej aplikacji i nikt inny nie może z niego korzystać. Chociaż biblioteka dynamiczna jest budowana, linkowana i instalowana niezależnie, dostęp do niej może mieć dowolny program. Zmniejsza to rozmiar programu, jednocześnie ukrywając kod.