C++'daki En İyi 3 Makine Öğrenimi Kitaplığı Uygulamalı Olarak Kullanmanız Gerekir

Yayınlanan: 2020-12-10

Bugün, nereye baksak, Makine Öğrenimi şu ya da bu biçimde etrafımızdadır. Yapay Zekanın bu alt kümesi, endüstrinin tüm paralellerinde çeşitli uygulamalar buldu ve haklı olarak. Makine Öğrenimi gelişmekte olan bir alan olmasına rağmen, keşfedilecek bir dizi olasılık açtı.

Şimdi soru şu: Makine Öğrenimi projeleri için hangi programlama dili kullanılacak?

Python ve C++ en popüler programlama dillerinden ikisidir. Bu dillerin her ikisi de aktif bir topluluğa, özel araç desteğine, kapsamlı bir kitaplık ekosistemine ve övgüye değer çalışma zamanı performansına sahiptir. Ancak, bugünkü yazının odak noktası C++'da Makine Öğrenimi olacak.

İçindekiler

Neden Makine Öğrenimi için C++?

Machine Learning'in ağır hizmet tipi CPU performansı gerektirdiği iyi bilinen bir gerçektir ve bu tam olarak C++'ın garanti ettiği şeydir. Hız ve performans söz konusu olduğunda, C++ Python, Java ve hatta C#'ı geride bırakır. Makine Öğrenimi için C++ kullanmanın bir diğer önemli avantajı, popüler programlama dillerinin çoğunda bulunmayan bir özellik olan işaretçi desteğine sahip olmasıdır.

C++'da Machine Learning'in başarılı bir şekilde uygulanması için yapılacak en önemli şey, kendinizi C++ kitaplıklarıyla tanıştırmaktır. Neyse ki C++, Shark, MLPack ve GRT (Gesture Recognition Toolkit) dahil olmak üzere Makine Öğrenimi için bazı harika kitaplıklara sahiptir.

Şimdi, C++'daki Machine Learning kitaplıklarının tartışmasına girelim.

C++'da Makine Öğrenimi Kitaplıkları

1. Köpekbalığı

Shark, C++'da açık kaynaklı, modüler bir kitaplıktır. Birkaçını saymak gerekirse, doğrusal regresyon, k-ortalamalar, sinir ağları ve kümeleme gibi denetimli öğrenme algoritmaları için kapsamlı bir desteğe sahip olduğu için Makine Öğrenimi için mükemmel bir kitaplıktır.

Shark ayrıca doğrusal ve doğrusal olmayan optimizasyon, çekirdek tabanlı öğrenme algoritmaları, sayısal optimizasyon ve bir dizi başka ML tekniği için çok sayıda yöntem içerir. Hem araştırma hem de gerçek dünya uygulamaları oluşturmak için ideal bir araçtır. Shark mükemmel belgelere sahiptir ve Linux, Windows ve macOS ile uyumludur.

Köpekbalığı nasıl kurulur?

Shark'ı kurmak için kaynak paketleri resmi indirmeler sayfasından almalısınız . Bundan sonra aşağıdaki kodu yazarak kütüphaneyi oluşturmalısınız:

mkdir Köpekbalığı/yapı/

cd Köpekbalığı/yapı

cmake ../

Yapmak

Shark'ın iki bağımlılığı olduğunu bilmelisiniz - Boost ve CMake . Linux ve Windows'ta genellikle ATLAS kullanılırken, macOS'ta Accelerate varsayılan doğrusal cebir kitaplığıdır. MacOS'ta, aşağıdaki gibi gerekli paketleri elde etmek için MacPorts'u kullanabilirsiniz:

sudo bağlantı noktası yükleme artırma cmake

Ancak Ubuntu altında, aşağıdaki ifadeyi kullanarak gerekli paketleri kurmanız gerekir:

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

Shark'ı yükleme adımları şunlardır:

  • İlk olarak, d ownloads sayfasından kaynak paketleri indirin ve paketlerini açın.
  • CMake GUI'yi başlatın
  • Paketlenmemiş Shark konumuna giden yolu ayarlamak için "Kaynak kodu nerede" öğesini seçin.
  • Visual Studio proje dosyalarını depolamak istediğiniz yolu ayarlamak için "Dizin oluşturulacak yer" öğesini seçin.
  • “Giriş Ekle” seçeneğini seçin. Şimdi, PATH türünde bir BOOST_ROOT Girişi ekleyin ve bunu boost kurulum dizininize ayarlayın.
  • Yine, PATH türünde bir BOOST_LIBRARYDIR Girişi ekleyin ve bunu boost kitaplığı dizininize ayarlayın.
  • Son olarak, uygun Visual Studio derleyicisini seçin ve “Yapılandır” seçeneğine ve ardından “Oluştur” seçeneğine çift tıklayın.

2. ml paketi

mlpack, performans için özel olarak tasarlanmış bir C++ kitaplığıdır. Öncü ML algoritmalarının hızlı ve genişletilebilir uygulamalarını sunmayı vaat ediyor. Bu C++ kitaplığının benzersiz yönü, tümü daha büyük ölçekli ML çözümlerine entegre edebileceğiniz basit komut satırı programları, Python bağlamaları, Julia bağlamaları ve C++ sınıfları olarak ML algoritmaları sağlamasıdır.

mlpack nasıl kurulur?

MLPack'in kurulum süreci platformdan platforma değişir.

Python için kaynak paketi şu şekilde pip veya conda yoluyla alabilirsiniz:

pip yükleme mlpack

conda kurulumu -c conda-forge mlpack

Daha fazla ayrıntı için Python hızlı başlangıç ​​kılavuzundaki mlpack'e başvurabilirsiniz .

Julia için kaynakları Pkg üzerinden aşağıdaki gibi alabilirsiniz:

Pkg'ı içe aktar;

Pkg.add(“mlpack”)

Ubuntu, Debian, Fedora ve Red Hat için bir paket yöneticisi kullanarak mlpack'i yükleyebilirsiniz. mlpack komut satırı hızlı başlangıç ​​kılavuzu , başlamak için iyi bir yerdir. Ayrıca Linux derleme öğreticisini izleyerek kaynaktan da oluşturabilirsiniz .

Windows için önceden oluşturulmuş ikili dosyaları – Windows 64 bit – MSI Installer ve Windows 64 bit – ZIP indirebilirsiniz . Ayrıca vcpkg gibi bir paket yöneticisi kullanarak da kurabilir veya Windows derleme eğitimini izleyerek kaynaktan oluşturabilirsiniz .

MacOS'a gelince, kütüphaneyi şu şekilde homebrew aracılığıyla kurabilirsiniz:

demlemek mlpack yükleyin

Okuyun: En Yüksek Ödeme Yapan Makine Öğrenimi İşleri

3. GRT (Hareket Tanıma Araç Seti)

GRT veya Gesture Recognition Toolkit, açık kaynaklı, platformlar arası bir C++ kitaplığıdır. Gerçek zamanlı hareket tanıma için özel olarak tasarlanmıştır. Düzgün ve kullanımı kolay bir GUI (Grafik Kullanıcı Arayüzü) ile daha da sağlamlaştırılan kapsamlı bir C++ API içerir.

GRT yalnızca yeni başlayanlar için uygun olmakla kalmaz, aynı zamanda mevcut C++ projelerine entegre edilmesi de son derece kolaydır. Herhangi bir sensör/veri girişi ile uyumludur ve benzersiz hareketlerinizle onu eğitebilirsiniz. Ayrıca, GRT, gerektiğinde ve gerektiğinde özel işleme veya özellik çıkarma algoritmalarınıza uyum sağlayabilir.

GRT nasıl kurulur?

Yapmanız gereken ilk şey GRT paketini indirmek . Bundan sonra, ana hareket tanıma-araç seti klasöründeki GRT klasörünü bulmalı ve GRT klasörünü (tüm alt klasörler dahil) istediğiniz projeye eklemelisiniz.

GRT klasöründe saklanan kodun tamamını C++ projenize ekleyerek GRT'yi kullanmaya başlayabilirsiniz. VisualStudio veya XCode gibi IDE'leri kullanmanız durumunda, GRT klasör dosyalarını şu yolu izleyerek projenize ekleyebilirsiniz – “ Dosya -> Projeye Dosya Ekle ”. GRT klasöründeki tüm dosyaları projenize eklemek için GRT klasörünü (Finder veya Windows Gezgini'nden) IDE'ye de sürükleyebilirsiniz.

GRT klasöründe bulunan kodu projenize ekledikten sonra tüm GRT fonksiyonlarını/sınıflarını kullanabilirsiniz. Tek yapmanız gereken, GRT kodunu kullanmak istediğiniz projede başlık dosyasının en üstüne aşağıdaki iki kod satırını eklemek:

#include “GRT/GRT.h”

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

{

//Projenizin ana kodu…

}

Bu kodda, ilk satır projeye ana GRT başlık dosyasını (GRT.h) ekler. GRT.h dosyası, tüm GRT modülü başlık dosyalarını içerir ve bu nedenle, başka herhangi bir GRT başlık dosyasını manuel olarak girmeniz gerekmez. Ancak ikinci satır, GRT ad alanının kullanıldığını bildirir. Bu, bir GRT sınıfını her kullanmak istediğinizde GRT:: WhatEverClass yazma ihtiyacını ortadan kaldırır – WhatEverClass yazıp onunla işiniz bitebilir.

Ancak, kullandığınız IDE'ye göre GRT klasörünü sabit sürücünüzde sakladığınız fiziksel yolu belirtmeniz gerektiğini unutmayın.

Ayrıca Okuyun: Makine Öğreniminde Kariyer

Çözüm

Bu üç C++ kitaplığı, neredeyse tüm ML ihtiyaçlarınızı karşılamak için mükemmeldir. C++'da Machine Learning'de uzmanlaşmanın anahtarı, önce bu kitaplıkları öğrenmek, uzmanlıklarını ve işlevlerini anlamak ve ardından bunları belirli ML gereksinimlerine uygulamaktır.

Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT- sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka PG Diplomasına göz atın. B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Makine öğrenimi için hangisi daha iyi - C++ veya Python?

C++ ve Python, en yaygın kullanılan programlama dillerinden ikisidir. Ancak, eldeki göreve bağlı olarak, hangisini kullanacağını seçmelidir. Oyun oluşturma ve öğrenme sistemleri söz konusu olduğunda, C++ tercih edilen dildir. Ancak konu makine öğrenimi olduğunda Python en iyi seçenektir. Veri sistemlerini içeren görevler için de kullanışlıdır. Ayrıca, Python'un sözdizimini kavramak kolay olduğu için yeni başlayanlar için önerilir. Python'un bir diğer ayırt edici yönü, yorumlanmış bir dil olmasıdır; bu, Python kodunun çalışma zamanında makine tarafından okunabilir hale dönüştürülmediği anlamına gelir.

Makine öğrenimindeki bazı zorluklar nelerdir?

Veri, makine öğreniminde en önemli girdi olduğundan, makine öğrenimi uzmanlarının karşılaştığı sorunlardan biri, yüksek kaliteli veri eksikliğidir. Veriler giriş ve çıkış değişkenleri ile tam olarak uyuşmuyorsa eksik uydurma da meydana gelebilir. Veriler hayati öneme sahiptir, ancak çok fazla veri aşırı uyum sağlayarak makine öğrenimi algoritmasının performansının düşmesine neden olabilir. Makine öğrenimi modelleriyle doğru sonuçları bulmak kolaydır, ancak gereken süre çok büyüktür, bu da başka bir zorluktur.

Statik ve dinamik kitaplıklar birbirinden nasıl farklıdır?

Boyut olarak, statik ve dinamik kitaplıklar birbirinden farklıdır. Dinamik bir kitaplığın yalnızca bir kopyası korunduğundan veya bellekte saklandığından, dinamik kitaplıkların boyutu statik kitaplıklardan önemli ölçüde daha küçüktür. Yürütülebilir dosya, oluşturulmuş veya bağlantılı bir statik kitaplık içerir. Bu, uygulamanızın bir bileşenidir ve başka hiç kimse onu kullanamaz. Dinamik kitaplık bağımsız olarak oluşturulur, bağlanır ve kurulurken, herhangi bir program tarafından erişilebilir. Bu, kodu gizlerken program boyutunu küçültür.