머신러닝은 방대하고 흥미로운 분야로, 다양한 분야의 전문가로부터 주목을 받고 있습니다. 불행하게도 C++ 프로그래머와 열광적인 사람들에게는 기계 학습 분야에 대한 지원이 부족한 것 같습니다. 그 공백을 메우고 ML 영역에서 C++에 진정한 발판을 제공하기 위해 이 라이브러리가 작성되었습니다. 이 라이브러리의 목적은 하위 수준 개발자와 기계 학습 엔지니어 사이의 교차로 역할을 하는 것입니다.
ML++ 라이브러리용 헤더 파일을 다운로드하는 것부터 시작하세요. 저장소를 복제하고 그 안에 있는 MLPP 디렉터리를 추출하면 됩니다.
git clone https://github.com/novak-99/MLPP
다음으로 "buildSO.sh" 셸 스크립트를 실행합니다.
sudo ./buildSO.sh
그런 다음 ML++ 소스 파일을 로컬 디렉터리에 유지하고 다음과 같은 방식으로 포함합니다.
# include " MLPP/Stat/Stat.hpp " // Including the ML++ statistics module.
int main (){
...
}
마지막으로 프로젝트 생성을 마친 후 g++를 사용하여 컴파일합니다.
g++ main.cpp /usr/local/lib/MLPP.so --std=c++17
ML++에서는 벡터를 에뮬레이션하기 위해 std::vector<double>
데이터 유형을 사용하고 행렬을 에뮬레이션하기 위해 std::vector<std::vector<double>>
데이터 유형을 사용합니다.
선택한 각 헤더 파일을 포함하여 시작하십시오.
# include " MLPP/LinReg/LinReg.hpp "
다음으로 클래스의 객체를 인스턴스화합니다. 입력 세트와 출력 세트를 매개변수로 전달하는 것을 잊지 마세요.
LinReg model (inputSet, outputSet);
그런 다음 사용하려는 최적화 프로그램을 호출하십시오. 경사하강법과 같은 반복 최적화 도구의 경우 학습률, 에포크 수, UI 패널 활용 여부를 포함합니다.
model.gradientDescent( 0.001 , 1000 , 0 );
좋습니다. 이제 테스트할 준비가 되었습니다! 단일 테스트 인스턴스를 테스트하려면 다음 기능을 활용하십시오.
model.modelTest(testSetInstance);
그러면 해당 예에 대한 모델의 단일 예측이 반환됩니다.
전체 테스트 세트를 테스트하려면 다음 기능을 사용하십시오.
model.modelSetTest(testSet);
결과는 전체 데이터세트에 대한 모델의 예측이 됩니다.
대부분의 프레임워크와 마찬가지로 ML++는 동적이며 끊임없이 변화합니다. 새로운 알고리즘과 기술이 날마다 개발되고 있기 때문에 이는 ML 세계에서 특히 중요합니다. 현재 ML++용으로 개발 중인 몇 가지 사항은 다음과 같습니다.
- 컨볼루셔널 신경망
- SVM용 커널
- 벡터 회귀 지원
ML++를 만드는 과정에서 다양한 자료가 도움이 되었으며, 여기서는 그 중 몇 가지 자료에 감사를 표하고 싶습니다. TutorialsPoint의 이 기사는 행렬의 행렬식을 구현하려고 할 때 큰 도움이 되었고, GeeksForGeeks의 이 기사는 행렬의 수반과 역행렬을 취하려고 할 때 매우 도움이 되었습니다.