실습해야 할 C++의 상위 3개 머신 러닝 라이브러리

게시 됨: 2020-12-10

오늘날 우리가 보는 모든 곳에서 기계 학습 은 어떤 형태로든 우리 주변에 있습니다. 인공 지능의 이 하위 집합은 업계의 모든 유사점에서 다양한 응용 프로그램을 발견했으며 당연히 그렇습니다. 기계 학습은 신흥 분야이지만 탐색할 가능성이 많이 열려 있습니다.

이제 질문은 기계 학습 프로젝트에 사용할 프로그래밍 언어는 무엇입니까?

Python과 C++는 가장 널리 사용되는 프로그래밍 언어 중 두 가지입니다. 이 두 언어 모두 활성 커뮤니티, 전용 도구 지원, 광범위한 라이브러리 에코시스템 및 훌륭한 런타임 성능을 자랑합니다. 그러나 오늘 포스트의 초점은 C++의 머신 러닝이 될 것입니다.

목차

머신 러닝에 C++를 사용해야 하는 이유

머신 러닝이 강력한 CPU 성능을 요구한다는 것은 잘 알려진 사실이며, 이것이 바로 C++에서 보장하는 것입니다. 속도와 성능 면에서 C++는 Python, Java, 심지어 C#까지 뒤쳐져 있습니다. 머신 러닝에 C++를 사용할 때의 또 다른 주요 이점은 포인터 지원 기능이 있다는 것입니다.

C++에서 머신 러닝을 성공적으로 구현하려면 가장 먼저 해야 할 일은 C++ 라이브러리에 익숙해지는 것입니다. 고맙게도 C++에는 Shark, MLPack 및 GRT(Gesture Recognition Toolkit)를 포함하여 Machine Learning을 위한 몇 가지 훌륭한 라이브러리가 있습니다.

이제 C++의 기계 학습 라이브러리에 대한 논의를 살펴보겠습니다.

C++의 머신 러닝 라이브러리

1. 상어

Shark는 C++의 오픈 소스 모듈식 라이브러리입니다. 선형 회귀, k-평균, 신경망 및 클러스터링과 같은 지도 학습 알고리즘을 광범위하게 지원하므로 머신 러닝을 위한 완벽한 라이브러리입니다.

또한 Shark에는 선형 및 비선형 최적화, 커널 기반 학습 알고리즘, 수치 최적화 및 기타 여러 ML 기술을 위한 수많은 방법이 포함되어 있습니다. 연구 및 실제 응용 프로그램 구축 모두에 이상적인 도구입니다. Shark는 뛰어난 문서를 보유하고 있으며 Linux, Windows 및 macOS와 호환됩니다.

상어를 설치하는 방법?

Shark를 설치하려면 공식 다운로드 페이지 에서 소스 패키지를 가져와야 합니다 . 그런 다음 다음 코드를 작성하여 라이브러리를 빌드해야 합니다.

mkdir 상어/빌드/

CD 상어/빌드

../

만들다

Shark에는 Boost CMake 라는 두 가지 종속성이 있다는 것을 알아야 합니다 . Linux 광고 Windows에서는 일반적으로 ATLAS가 사용되지만 macOS에서는 Accelerate가 기본 선형 대수 라이브러리입니다. macOS에서는 다음과 같이 MacPorts를 사용하여 필요한 패키지를 얻을 수 있습니다.

sudo 포트 설치 부스트 cmake

그러나 Ubuntu에서는 다음 명령문을 사용하여 필요한 패키지를 설치해야 합니다.

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

Shark 설치 단계는 다음과 같습니다.

  • 먼저 d ownloads 페이지 에서 소스 패키지를 다운로드 하고 압축을 풉니다.
  • CMake GUI 실행
  • "소스 코드는 어디에 있습니까?"를 선택하여 압축을 푼 상어 위치에 대한 경로를 설정합니다.
  • Visual Studio 프로젝트 파일을 저장할 경로를 설정하려면 "디렉토리를 빌드할 위치"를 선택합니다.
  • "항목 추가" 옵션을 선택합니다. 이제 PATH 유형의 BOOST_ROOT 항목을 추가하고 이를 부스트 설치 디렉토리로 설정하십시오.
  • 다시 PATH 유형의 BOOST_LIBRARYDIR 항목을 추가하고 이를 부스트 라이브러리 디렉토리로 설정하십시오.
  • 마지막으로 적절한 Visual Studio 컴파일러를 선택하고 "구성" 옵션을 두 번 클릭한 다음 "생성" 옵션을 클릭합니다.

2. ml팩

mlpack은 성능을 위해 명시적으로 설계된 C++ 라이브러리입니다. 선구적인 ML 알고리즘의 빠르고 확장 가능한 구현을 제공할 것을 약속합니다. 이 C++ 라이브러리의 고유한 측면은 ML 알고리즘을 간단한 명령줄 프로그램, Python 바인딩, Julia 바인딩 및 C++ 클래스로 제공한다는 것입니다. 이 모든 것을 대규모 ML 솔루션에 통합할 수 있습니다.

mlpack을 설치하는 방법?

MLPack의 설치 프로세스는 플랫폼마다 다릅니다.

Python의 경우 다음과 같이 pip 또는 conda를 통해 소스 패키지를 가져올 수 있습니다.

핍 설치 mlpack

conda install -c conda-forge mlpack

자세한 내용은 Python 빠른 시작 가이드 mlpack 을 참조하세요.

Julia의 경우 다음과 같이 Pkg를 통해 소스를 얻을 수 있습니다.

수입 패키지;

패키지.add("mlpack")

Ubuntu, Debian, Fedora 및 Red Hat의 경우 패키지 관리자를 사용하여 mlpack을 설치할 수 있습니다. mlpack 명령줄 빠른 시작 가이드 는 시작하기에 좋은 곳입니다. Linux 빌드 자습서 에 따라 소스에서 빌드할 수도 있습니다 .

Windows의 경우 사전 빌드된 바이너리 – Windows 64비트 – MSI 설치 프로그램 Windows 64비트 – ZIP 을 다운로드할 수 있습니다 . vcpkg 와 같은 패키지 관리자를 사용하여 설치 하거나 Windows 빌드 자습서 에 따라 소스에서 빌드할 수도 있습니다 .

macOS에서는 다음과 같이 homebrew를 통해 라이브러리를 설치할 수 있습니다.

양조 설치 mlpack

읽기: 가장 높은 급여를 받는 기계 학습 작업

3. GRT(제스처 인식 툴킷)

GRT 또는 Gesture Recognition Toolkit은 오픈 소스 크로스 플랫폼 C++ 라이브러리입니다. 실시간 제스처 인식을 위해 특별히 설계되었습니다. 여기에는 깔끔하고 사용하기 쉬운 GUI(그래픽 사용자 인터페이스)로 더욱 강화된 포괄적인 C++ API가 포함됩니다.

GRT는 초보자에게 친숙할 뿐만 아니라 기존 C++ 프로젝트에 통합하기도 매우 쉽습니다. 모든 센서/데이터 입력과 호환되며 고유한 제스처로 훈련할 수 있습니다. 또한 GRT는 필요할 때 맞춤형 처리 또는 특징 추출 알고리즘에 적응할 수 있습니다.

GRT를 설치하는 방법?

가장 먼저 해야 할 일은 GRT 패키지다운로드 하는 것입니다. 그런 다음 기본 제스처 인식 툴킷 폴더에서 GRT 폴더를 찾아 원하는 프로젝트에 GRT 폴더(모든 하위 폴더 포함)를 추가해야 합니다.

GRT 폴더에 저장된 전체 코드를 C++ 프로젝트에 추가하여 GRT 사용을 시작할 수 있습니다. VisualStudio 또는 XCode와 같은 IDE를 사용하는 경우 " 파일 -> 프로젝트에 파일 추가 " 경로를 따라 프로젝트에 GRT 폴더 파일을 추가할 수 있습니다 . GRT 폴더(Finder 또는 Windows 탐색기에서)를 IDE로 끌어서 GRT 폴더의 모든 파일을 프로젝트에 추가할 수도 있습니다.

GRT 폴더에 포함된 코드를 프로젝트에 추가하면 모든 GRT 기능/클래스를 사용할 수 있습니다. GRT 코드를 사용하려는 프로젝트의 헤더 파일 상단에 다음 두 줄의 코드를 추가하기만 하면 됩니다.

#include “GRT/GRT.h”

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

{

// 프로젝트의 메인 코드…

}

이 코드에서 첫 번째 줄은 기본 GRT 헤더 파일(GRT.h)을 프로젝트에 추가합니다. GRT.h 파일에는 모든 GRT 모듈 헤더 파일이 포함되어 있으므로 다른 GRT 헤더 파일을 수동으로 입력할 필요가 없습니다. 그러나 두 번째 줄은 GRT 네임스페이스가 사용 중임을 선언합니다. 이렇게 하면 GRT 클래스를 사용하려고 할 때마다 GRT:: WhatEverClass를 작성할 필요가 없습니다. WhatEverClass를 작성하고 끝낼 수 있습니다.

그러나 사용하는 IDE에 따라 하드 드라이브에서 GRT 폴더를 저장한 물리적 경로를 지정해야 합니다.

더 읽어보기: 기계 학습 경력

결론

이 세 가지 C++ 라이브러리는 거의 모든 ML 요구 사항을 처리하는 데 완벽합니다. C++에서 기계 학습을 마스터하기 위한 핵심은 먼저 이러한 라이브러리를 학습하고 해당 라이브러리의 전문 분야와 기능을 이해한 다음 특정 ML 요구 사항에 구현하는 것입니다.

기계 학습에 대해 자세히 알아보려면 IIIT-B 및 upGrad의 기계 학습 및 AI PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT- B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

머신 러닝에 C++와 Python 중 어느 것이 더 낫습니까?

C++와 Python은 가장 널리 사용되는 프로그래밍 언어 중 두 가지입니다. 그러나 당면한 작업에 따라 사용할 작업을 선택해야 합니다. 게임 제작 및 학습 시스템과 관련하여 C++가 선호되는 언어입니다. 그러나 기계 학습과 관련하여 Python이 최상의 선택입니다. 데이터 시스템과 관련된 작업에도 편리합니다. 또한 Python의 구문은 이해하기 쉽기 때문에 초보자에게 권장됩니다. Python의 또 다른 특징은 해석된 언어라는 것입니다. 즉, Python 코드는 런타임에 기계가 읽을 수 있는 언어로 번역되지 않습니다.

머신 러닝의 도전 과제는 무엇입니까?

데이터는 머신 러닝에서 가장 중요한 입력이므로 머신 러닝 전문가가 직면하는 문제 중 하나는 고품질 데이터의 부족입니다. 데이터가 입력 및 출력 변수와 잘 맞지 않는 경우에도 under-fitting이 발생할 수 있습니다. 데이터는 중요하지만 너무 많은 데이터는 과적합으로 이어져 기계 학습 알고리즘 성능이 저하될 수 있습니다. 머신 러닝 모델을 사용하면 정확한 결과를 찾는 것이 간단하지만 필요한 시간이 엄청나다는 것은 또 다른 어려움입니다.

정적 라이브러리와 동적 라이브러리는 어떻게 다른가요?

크기 면에서 정적 라이브러리와 동적 라이브러리는 서로 다릅니다. 동적 라이브러리의 복사본 하나만 메모리에 보존되거나 저장되기 때문에 동적 라이브러리는 정적 라이브러리보다 크기가 훨씬 작습니다. 실행 파일에는 빌드되거나 링크된 정적 라이브러리가 포함되어 있습니다. 애플리케이션의 구성 요소이며 다른 사람이 사용할 수 없습니다. 동적 라이브러리는 독립적으로 구축, 연결 및 설치되지만 모든 프로그램에서 액세스할 수 있습니다. 이렇게 하면 코드를 숨기면서 프로그램 크기를 줄일 수 있습니다.