แมชชีนเลิร์นนิงเป็นสาขาวิชาที่กว้างใหญ่และน่าตื่นเต้น โดยได้รับความสนใจจากผู้เชี่ยวชาญในหลากหลายสาขา น่าเสียดายที่สำหรับโปรแกรมเมอร์และผู้ที่ชื่นชอบ C++ ดูเหมือนว่าจะขาดการสนับสนุนในด้านการเรียนรู้ของเครื่อง เพื่อเติมเต็มช่องว่างนั้นและตั้งหลักที่แท้จริงให้กับ C++ ในทรงกลม ML ไลบรารีนี้จึงถูกเขียนขึ้น จุดประสงค์ของไลบรารีนี้คือเพื่อทำหน้าที่เป็นทางแยกระหว่างนักพัฒนาระดับต่ำและวิศวกรการเรียนรู้ของเครื่อง
เริ่มต้นด้วยการดาวน์โหลดไฟล์ส่วนหัวสำหรับไลบรารี 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++:
- โครงข่ายประสาทเทียมแบบ Convolutional
- เคอร์เนลสำหรับ SVM
- รองรับการถดถอยเวกเตอร์
สื่อต่างๆ มากมายช่วยฉันในการสร้าง ML++ และฉันอยากจะให้เครดิตกับหลายๆ สื่อที่นี่ บทความนี้โดย TutorialsPoint ช่วยได้มากเมื่อพยายามนำดีเทอร์มิแนนต์ของเมทริกซ์ไปใช้ และบทความนี้โดย GeeksForGeeks ก็มีประโยชน์มากเมื่อพยายามหาค่า adjoint และ inverse ของเมทริกซ์