Top 3 biblioteci de învățare automată în C++ pe care ar trebui să le puneți în practică
Publicat: 2020-12-10Astăzi, oriunde ne uităm, Machine Learning este în jurul nostru într-o formă sau alta. Acest subset de inteligență artificială a găsit diverse aplicații în toate paralelele industriei și pe bună dreptate. Chiar dacă învățarea automată este un domeniu în curs de dezvoltare, a deschis o mulțime de posibilități de explorat.
Acum, întrebarea este ce limbaj de programare să folosiți pentru proiectele de învățare automată?
Python și C++ sunt două dintre cele mai populare limbaje de programare. Ambele limbi se laudă cu o comunitate activă, un suport dedicat pentru instrumente, un ecosistem extins de biblioteci și o performanță lăudabilă la timp de execuție. Cu toate acestea, punctul central al postării de astăzi va fi învățarea automată în C++.
Cuprins
De ce C++ pentru învățare automată?
Este un fapt bine stabilit că Machine Learning necesită performanțe grele ale procesorului și tocmai acest lucru garantează C++. Când vine vorba de viteză și performanță, C++ lasă în urmă Python, Java și chiar C#. Un alt avantaj major al utilizării C++ pentru Machine Learning este că are suport pentru pointer, o caracteristică care nu este disponibilă în multe dintre limbajele de programare populare.
Pentru implementarea cu succes a Machine Learning în C++, cel mai important lucru de făcut este să vă familiarizați cu bibliotecile C++. Din fericire, C++ are niște biblioteci grozave pentru Machine Learning, inclusiv Shark, MLPack și GRT (Gesture Recognition Toolkit).
Acum, să ne aprofundăm în discuția despre bibliotecile de învățare automată în C++.

Biblioteci Machine Learning în C++
1. Rechin
Shark este o bibliotecă open-source, modulară în C++. Este biblioteca perfectă pentru Machine Learning, deoarece are suport extins pentru algoritmi de învățare supravegheată, cum ar fi regresia liniară, k-means, rețelele neuronale și clustering, pentru a numi câteva.
Shark include, de asemenea, numeroase metode de optimizare liniară și neliniară, algoritmi de învățare bazați pe nucleu, optimizare numerică și o serie de alte tehnici ML. Este instrumentul ideal atât pentru cercetare, cât și pentru construirea de aplicații din lumea reală. Shark are o documentație excelentă și este compatibil cu Linux, Windows și macOS.
Cum se instalează Shark?
Pentru a instala Shark, trebuie să obțineți pachetele sursă de pe pagina oficială de descărcări . După aceasta, trebuie să construiți biblioteca scriind următorul cod:
mkdir Shark/build/
cd Shark/build
cma face ../
face
Trebuie să știți că Shark are două dependențe – Boost și CMake . În timp ce pe Linux și Windows, de obicei este utilizat ATLAS, pe macOS, Accelerate este biblioteca implicită de algebră liniară. În macOS, puteți utiliza MacPorts pentru a obține pachetele necesare, astfel:
sudo port install boost cmake
Cu toate acestea, sub Ubuntu, trebuie să instalați pachetele necesare utilizând următoarea declarație:
sudo apt-get install cmake cmake-curses-gui libatlas-base-dev libboost-all-dev
Iată pașii pentru instalarea Shark:
- Mai întâi, descărcați pachetele sursă de pe pagina d ownloads și despachetați-le.
- Lansați CMake GUI
- Selectați „Unde este codul sursă” pentru a seta calea către locația Shark dezambalată.
- Selectați „Unde se construiește directorul” pentru a seta calea în care doriți să stocați fișierele de proiect Visual Studio.
- Alegeți opțiunea „Adăugați o intrare”. Acum, adăugați o intrare BOOST_ROOT de tip PATH și setați-o în directorul de instalare boost.
- Din nou, adăugați o intrare BOOST_LIBRARYDIR de tip PATH și setați-o în directorul bibliotecii dvs. boost.
- În cele din urmă, alegeți compilatorul apt Visual Studio și faceți dublu clic pe opțiunea „Configurare”, urmată de opțiunea „Generare”.
2. mlpack
mlpack este o bibliotecă C++ care este concepută în mod explicit pentru performanță. Promite să ofere implementări rapide și extensibile ale algoritmilor ML de pionierat. Aspectul unic al acestei biblioteci C++ este că oferă algoritmi ML ca simple programe de linie de comandă, legături Python, legături Julia și clase C++, toate pe care le puteți integra în soluții ML la scară mai mare.
Cum se instalează mlpack?
Procesul de instalare a MLPack variază de la platformă la platformă.
Pentru Python, puteți obține pachetul sursă prin pip sau conda, astfel:
pip install mlpack
conda install -c conda-forge mlpack
Puteți consulta pachetul mlpack din ghidul de pornire rapidă Python pentru mai multe detalii.
Pentru Julia, puteți obține sursele prin Pkg, după cum urmează:
import pachet;
Pkg.add(„mlpack”)
Pentru Ubuntu, Debian, Fedora și Red Hat, puteți instala mlpack folosind un manager de pachete. Ghidul de pornire rapidă pentru linia de comandă mlpack este un loc bun pentru a începe. De asemenea, îl puteți construi din sursă urmând tutorialul de construire Linux .

Pentru Windows, puteți descărca fișiere binare prefabricate – Windows pe 64 de biți – MSI Installer și Windows pe 64 de biți – ZIP . De asemenea, îl puteți instala folosind un manager de pachete, cum ar fi vcpkg , sau puteți construi din sursă urmând tutorialul de construire Windows .
Venind la macOS, puteți instala biblioteca prin homebrew, astfel:
brew install mlpack
Citiți: Locuri de muncă de învățare automată cele mai plătite
3. GRT (Setul de instrumente pentru recunoașterea gesturilor)
GRT sau Gesture Recognition Toolkit este o bibliotecă C++ open-source, multiplatformă. Este special conceput pentru recunoașterea gesturilor în timp real. Include un API C++ cuprinzător, care este consolidat și mai mult de o interfață grafică de utilizator (Interfață grafică de utilizator) îngrijită și ușor de utilizat.
GRT nu este doar prietenos pentru începători, dar este și extrem de ușor de integrat în proiectele C++ existente. Este compatibil cu orice senzor/dată de intrare și îl poți antrena cu gesturile tale unice. În plus, GRT se poate adapta la algoritmii dvs. de extracție personalizați sau caracteristici, după cum este necesar.
Cum se instalează GRT?
Primul lucru pe care trebuie să-l faceți este să descărcați pachetul GRT. După aceasta, trebuie să localizați folderul GRT în folderul principal gesture-recognition-toolkit și să adăugați folderul GRT (inclusiv toate subfolderele) la proiectul dorit.
Puteți începe să utilizați GRT adăugând codul complet stocat în folderul GRT la proiectul dvs. C++. În cazul în care utilizați IDE-uri precum VisualStudio sau XCode, puteți adăuga fișierele folderului GRT la proiect, urmând această cale - „ Fișier -> Adăugați fișiere la proiect ”. De asemenea, puteți trage folderul GRT (din Finder sau Windows Explorer) în IDE pentru a adăuga toate fișierele din folderul GRT la proiect.
Odată ce ați adăugat codul conținut în folderul GRT la proiectul dvs., puteți utiliza toate funcțiile/clasele GRT. Tot ce trebuie să faceți este să adăugați următoarele două linii de cod în partea de sus a fișierului antet în proiectul în care doriți să utilizați codul GRT:
#include „GRT/GRT.h”
int main (int argc, const char * argv[])
{
//Codul principal pentru proiectul dvs....
}

În acest cod, prima linie adaugă fișierul antet GRT principal (GRT.h) la proiect. Fișierul GRT.h conține toate fișierele antet al modulului GRT și, prin urmare, nu trebuie să introduceți manual alte fișiere antet GRT. Cu toate acestea, a doua linie declară că spațiul de nume GRT este utilizat. Acest lucru elimină necesitatea de a scrie GRT:: WhatEverClass de fiecare dată când doriți să utilizați o clasă GRT - puteți scrie WhatEverClass și ați terminat.
Totuși, rețineți că trebuie să specificați calea fizică în care ați stocat folderul GRT pe hard disk, în funcție de IDE-ul pe care îl utilizați.
Citește și: Carieră în Machine Learning
Concluzie
Aceste trei biblioteci C++ sunt perfecte pentru a face față aproape tuturor nevoilor dvs. de ML. Cheia pentru stăpânirea Machine Learning în C++ este mai întâi de a învăța aceste biblioteci, de a înțelege specialitățile și funcțiile lor și apoi de a le implementa la cerințele ML specifice.
Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Diploma PG de la IIIT-B și upGrad în Învățare automată și AI, care este concepută pentru profesioniști care lucrează și oferă peste 450 de ore de pregătire riguroasă, peste 30 de studii de caz și sarcini, IIIT- B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.
Care dintre ele este mai bună pentru învățarea automată - C++ sau Python?
C++ și Python sunt două dintre cele mai utilizate limbaje de programare. Cu toate acestea, în funcție de sarcina la îndemână, trebuie să alegeți pe care să o utilizați. Când vine vorba de crearea de jocuri și sistemele de învățare, C++ este limbajul preferat. Cu toate acestea, când vine vorba de învățarea automată, Python este cea mai bună opțiune. Este, de asemenea, la îndemână pentru sarcini care implică sisteme de date. În plus, deoarece sintaxa lui Python este ușor de înțeles, este recomandată pentru începători. Un alt aspect distinctiv al lui Python este că este un limbaj interpretat, ceea ce înseamnă că codul Python nu este tradus într-un limbaj care poate fi citit de mașină în timpul execuției.
Care sunt unele dintre provocările în învățarea automată?
Deoarece datele sunt cea mai importantă intrare în învățarea automată, una dintre problemele cu care se confruntă profesioniștii în învățarea automată este lipsa datelor de înaltă calitate. Sub-adaptarea poate apărea și dacă datele nu se potrivesc bine cu variabilele de intrare și de ieșire. Datele sunt vitale, dar prea multe date pot duce la supraadaptare, ceea ce duce la o performanță slabă a algoritmului de învățare automată. Găsirea unor rezultate precise este simplă cu modelele de învățare automată, dar timpul necesar este enorm, ceea ce reprezintă o altă dificultate.
Cum sunt bibliotecile statice și dinamice diferite una de cealaltă?
În ceea ce privește dimensiunea, bibliotecile statice și dinamice diferă unele de altele. Deoarece doar o copie a unei biblioteci dinamice este păstrată sau stocată în memorie, bibliotecile dinamice sunt substanțial mai mici ca dimensiune decât bibliotecile statice. Executabilul conține o bibliotecă statică care a fost construită sau legată. Este o componentă a aplicației dvs. și nimeni altcineva nu o poate folosi. În timp ce biblioteca dinamică este construită, conectată și instalată independent, ea poate fi accesată de orice program. Acest lucru reduce dimensiunea programului, ascunzând și codul.