Original Title: GRU and XGBoost Performance with Hyperparameter Tuning Using GridSearchCV and Bayesian Optimization on an IoT-Based Weather Prediction System
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ដំណើរការរបស់ GRU និង XGBoost ជាមួយនឹងការកែតម្រូវ Hyperparameter ដោយប្រើ GridSearchCV និង Bayesian Optimization លើប្រព័ន្ធព្យាករណ៍អាកាសធាតុផ្អែកលើ IoT

ចំណងជើងដើម៖ GRU and XGBoost Performance with Hyperparameter Tuning Using GridSearchCV and Bayesian Optimization on an IoT-Based Weather Prediction System

អ្នកនិពន្ធ៖ Hendri Darmawan (Politeknik Elektronika Negeri Surabaya), Mike Yuliana (Politeknik Elektronika Negeri Surabaya), Moch. Zen Samsono Hadi (Politeknik Elektronika Negeri Surabaya)

ឆ្នាំបោះពុម្ព៖ 2023, International Journal on Advanced Science Engineering Information Technology

វិស័យសិក្សា៖ Machine Learning and Meteorology

១. សេចក្តីសង្ខេបប្រតិបត្តិ (Executive Summary)

បញ្ហា (The Problem)៖ ឯកសារនេះដោះស្រាយអំពីបញ្ហាប្រឈមក្នុងការទស្សន៍ទាយអាកាសធាតុឱ្យបានត្រឹមត្រូវដោយសារតែលក្ខណៈចម្រុះនិងស្មុគស្មាញនៃទិន្នន័យអាកាសធាតុ (Weather Data) តាមរយៈការជំនួសវិធីសាស្ត្របុរាណដោយបញ្ញាសិប្បនិម្មិត។

វិធីសាស្ត្រ (The Methodology)៖ វិធីសាស្ត្រនៃការស្រាវជ្រាវត្រូវបានបែងចែកជាបីដំណាក់កាលសំខាន់ៗ រួមមានការរៀបចំទិន្នន័យ ការបង្កើតម៉ូដែល និងការដាក់ឱ្យដំណើរការជាមួយឧបករណ៍ IoT ក្នុងតំបន់ជាក់ស្តែង។

លទ្ធផលសំខាន់ៗ (The Verdict)៖

២. ការវិភាគលើប្រសិទ្ធភាព និងដែនកំណត់ (Performance & Constraints)

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Gated Recurrent Unit (GRU)
ម៉ូដែលបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត Gated Recurrent Unit (GRU)
មានសមត្ថភាពខ្ពស់ក្នុងការស្វែងយល់ពីបរិបទនិងទិន្នន័យតាមលំដាប់លំដោយ (Sequential Data) ដែលជួយកាត់បន្ថយអត្រាការព្យាករណ៍ខុស (False Positives) ក្នុងការទាយទឹកភ្លៀង និងដំណើរការល្អប្រសើរជាមួយទិន្នន័យឧបករណ៍ IoT ជាក់ស្តែង។ ទាមទារពេលវេលាហ្វឹកហាត់យូរ និងត្រូវការទិន្នន័យប្រវត្តិសាស្រ្តវែងជាង (រហូតដល់ ១៤ ថ្ងៃនៃប្រវត្តិទិន្នន័យ) ដើម្បីធ្វើការព្យាករណ៍ ដែលធ្វើឱ្យការគណនាមានភាពយឺតយ៉ាវជាង។ ទទួលបានតម្លៃ RMSE ២.២៣ សម្រាប់ម៉ូដែល Regression (ល្អជាង XGBoost លើទិន្នន័យ IoT) និងទទួលបានពិន្ទុ F1 ០.៨៨ សម្រាប់ការធ្វើចំណាត់ថ្នាក់ទាយទឹកភ្លៀង។
Extreme Gradient Boosting (XGBoost)
ក្បួនដោះស្រាយ Extreme Gradient Boosting (XGBoost)
មានល្បឿនលឿន និងទាមទារទិន្នន័យប្រវត្តិសាស្រ្តត្រឹមតែ ៧ ថ្ងៃប៉ុណ្ណោះសម្រាប់ការទស្សន៍ទាយ ព្រមទាំងដំណើរការបានល្អបំផុតនៅពេលប្រើជាមួយទិន្នន័យស្តង់ដារពីស្ថានីយឧតុនិយមធំៗ។ ងាយនឹងជួបប្រទះបញ្ហាវិមាត្រទិន្នន័យ (Dimensionality Issues) នៅពេលទិន្នន័យមានទំហំធំ និងមានអត្រាទាយខុសថាមានភ្លៀងខ្ពស់ជាង GRU បន្តិចនៅពេលសាកល្បងជាមួយទិន្នន័យប្រែប្រួល។ ទទួលបានតម្លៃ RMSE ១.២៧ សម្រាប់ម៉ូដែល Regression (ល្អជាង GRU លើទិន្នន័យស្ថានីយស្តង់ដារ) និងទទួលបានពិន្ទុ F1 ០.៨៦ សម្រាប់ការធ្វើចំណាត់ថ្នាក់។

ការចំណាយលើធនធាន (Resource Cost)៖ ការអនុវត្តប្រព័ន្ធនេះទាមទារការរួមបញ្ចូលគ្នារវាងឧបករណ៍ផ្នែករឹង (Hardware) សម្រាប់ការប្រមូលទិន្នន័យផ្ទាល់ និងផ្នែកទន់ (Cloud/Software) សម្រាប់រក្សាទុក និងដំណើរការម៉ូដែលម៉ាស៊ីនរៀនសូត្រ។

៣. ការពិនិត្យសម្រាប់បរិបទកម្ពុជា/អាស៊ីអាគ្នេយ៍

ភាពលំអៀងនៃទិន្នន័យ (Data Bias)៖

ការសិក្សានេះប្រើប្រាស់ទិន្នន័យអាកាសធាតុពីស្ថានីយឧតុនិយម BMKG នៅខេត្ត Sidoarjo ប្រទេសឥណ្ឌូនេស៊ី ដែលជាតំបន់ត្រូពិចមានលក្ខណៈអាកាសធាតុស្រដៀងនឹងប្រទេសកម្ពុជា។ ទោះជាយ៉ាងណាក៏ដោយ លក្ខណៈភូមិសាស្ត្រមីក្រូ (Microclimate) អាចមានភាពខុសគ្នា ដូច្នេះការយកមកអនុវត្តនៅកម្ពុជាទាមទារការបង្ហាត់ម៉ូដែលឡើងវិញជាមួយទិន្នន័យប្រវត្តិសាស្រ្តក្នុងស្រុកពីក្រសួងធនធានទឹក និងឧតុនិយម ទើបអាចធានាបាននូវភាពត្រឹមត្រូវខ្ពស់។

លទ្ធភាពនៃការអនុវត្ត (Applicability)៖

ការរួមបញ្ចូលគ្នារវាងបច្ចេកវិទ្យា IoT តម្លៃថោក និងបញ្ញាសិប្បនិម្មិតសម្រាប់ការទស្សន៍ទាយអាកាសធាតុ គឺជាដំណោះស្រាយដ៏ស័ក្តិសម និងមានសក្តានុពលខ្ពស់សម្រាប់កម្ពុជា។

សរុបមក ប្រព័ន្ធនេះផ្តល់នូវលទ្ធភាពឱ្យប្រទេសកម្ពុជាអាចកសាងបណ្តាញស្ថានីយឧតុនិយមខ្នាតតូច (Micro-weather stations) ដែលមានតម្លៃសមរម្យនៅទូទាំងប្រទេស ដើម្បីគាំទ្រដល់ការអភិវឌ្ឍសេដ្ឋកិច្ចនិងសង្គមប្រកបដោយចីរភាព។

៤. ផែនការសកម្មភាពសម្រាប់និស្សិត (Actionable Roadmap)

ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖

  1. ការរៀបចំផ្នែករឹង និងការតភ្ជាប់ IoT (Hardware Setup): ចាប់ផ្តើមដោយការទិញនិងដំឡើងឧបករណ៍ ESP32 Microcontroller រួចភ្ជាប់វាជាមួយនឹងសេនស័រ BME280 ឧបករណ៍វាស់ល្បឿនខ្យល់ (Anemometer) និងប្រដាប់វាស់ទឹកភ្លៀង។ រៀបចំកូដ C++ / Arduino IDE ដើម្បីឱ្យវាអាចអានទិន្នន័យរៀងរាល់នាទីរួចបញ្ជូនទៅកាន់ Server ។
  2. ការប្រមូល និងសម្អាតទិន្នន័យ (Data Collection & Pre-processing): ស្នើសុំទិន្នន័យអាកាសធាតុប្រវត្តិសាស្ត្រពីស្ថានីយឧតុនិយមក្នុងស្រុក រួចប្រើប្រាស់បណ្ណាល័យ Pandas និង Scikit-learn ក្នុង Python ដើម្បីបំពេញទិន្នន័យដែលបាត់ (Interpolation) កាត់ចោលទិន្នន័យខុសប្រក្រតី (Outliers) និងធ្វើការកែសម្រួលមាត្រដ្ឋានទិន្នន័យ (Min-Max Scaling) ។
  3. ការអភិវឌ្ឍន៍ និងកែតម្រូវម៉ូដែល (Model Development & Tuning): សរសេរកូដបង្កើតម៉ូដែល GRU ដោយប្រើប្រាស់ TensorFlow/Keras និងម៉ូដែល XGBoost តាមរយៈបណ្ណាល័យដើមរបស់វា។ អនុវត្ត GridSearchCV សម្រាប់ម៉ូដែល GRU និង Bayesian Optimization សម្រាប់ XGBoost ដើម្បីស្វែងរកចំនួន Hyperparameters ដែលធ្វើឱ្យកំហុស (RMSE) តូចបំផុត។
  4. ការដាក់ឱ្យដំណើរការប្រព័ន្ធ Cloud API (Cloud API Deployment): អភិវឌ្ឍន៍ Server-side API ដោយប្រើប្រាស់ Python Flask ដើម្បីធ្វើជាច្រកទទួលទិន្នន័យពី ESP32។ បង្កើតកូដដើម្បីបញ្ចូលទិន្នន័យទៅកាន់ MySQL សម្រាប់ទុកជាប្រវត្តិ និងភ្ជាប់ទៅ Firebase Real-time Database សម្រាប់ការបង្ហាញទិន្នន័យបច្ចុប្បន្នភ្លាមៗ។
  5. ការបង្កើតផ្ទាំងគ្រប់គ្រងសម្រាប់អ្នកប្រើប្រាស់ (User Dashboard Creation): បង្កើតគេហទំព័រ ឬកម្មវិធីទូរស័ព្ទ (អាចប្រើ ReactFlutter) ដែលទាញយកទិន្នន័យព្យាករណ៍ ៤ ថ្ងៃទៅមុខពី Firebase មកបង្ហាញជាទម្រង់ក្រាហ្វិកងាយយល់ និងមានមុខងារលោតសារព្រមាន (Push Notifications) នៅពេលដែលម៉ូដែលទាយថាមានភ្លៀងធ្លាក់ខ្លាំង។

៥. វាក្យសព្ទបច្ចេកទេស (Technical Glossary)

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Gated Recurrent Unit (GRU) ជាប្រភេទបណ្ដាញសរសៃប្រសាទសិប្បនិម្មិត (Recurrent Neural Network) ដែលមានសមត្ថភាពចងចាំព័ត៌មានពីអតីតកាលក្នុងរយៈពេលវែងដោយប្រើប្រាស់ច្រកត្រួតពិនិត្យ (Update and Reset Gates) ដើម្បីសម្រេចថាព័ត៌មានណាគួររក្សាទុក ឬលុបចោល ដែលស័ក្តិសមបំផុតសម្រាប់រៀនសូត្រពីទិន្នន័យប្រែប្រួលតាមពេលវេលាដូចជាអាកាសធាតុ។ ដូចជាសិស្សម្នាក់ដែលចេះកត់ត្រាតែមេរៀនសំខាន់ៗទុកក្នុងសៀវភៅ និងលុបចោលរឿងមិនសំខាន់ ដើម្បីត្រៀមប្រឡងនៅថ្ងៃស្អែក។
Extreme Gradient Boosting (XGBoost) ជាក្បួនដោះស្រាយម៉ាស៊ីនរៀនសូត្រ (Machine Learning) ដែលបង្កើតមែកធាងសេចក្តីសម្រេច (Decision Trees) តូចៗជាច្រើនបន្តបន្ទាប់គ្នា ដោយមែកធាងនីមួយៗព្យាយាមកែតម្រូវកំហុសរបស់មែកធាងមុនៗ ដើម្បីបង្កើតបានជាម៉ូដែលទស្សន៍ទាយមួយដ៏រឹងមាំ និងសុក្រឹត។ ដូចជាក្រុមសិស្សដែលធ្វើការរួមគ្នា ដោយសិស្សម្នាក់ៗជួយកែចំណុចខ្សោយរបស់សិស្សមុន រហូតទទួលបានលទ្ធផលកិច្ចការស្រាវជ្រាវដ៏ល្អឥតខ្ចោះមួយរួមគ្នា។
Hyperparameter Tuning គឺជាដំណើរការនៃការស្វែងរក និងកែតម្រូវប៉ារ៉ាម៉ែត្រខាងក្រៅនៃម៉ូដែលម៉ាស៊ីនរៀនសូត្រ (ដូចជាល្បឿននៃការរៀនសូត្រ ឬចំនួនស្រទាប់បណ្តាញ) មុនពេលចាប់ផ្តើមហ្វឹកហាត់ ដើម្បីស្វែងរកការកំណត់ដែលធ្វើឱ្យម៉ូដែលនោះដំណើរការបានល្អបំផុត។ ដូចជាការសារ៉េខ្សែហ្គីតាឱ្យត្រូវសម្លេង (Tuning) មុនពេលចាប់ផ្តើមលេងតន្ត្រី ដើម្បីឱ្យបទភ្លេងស្តាប់ទៅពិរោះរណ្តំ។
GridSearchCV ជាវិធីសាស្ត្រមួយក្នុងការស្វែងរកតម្លៃ Hyperparameter ល្អបំផុត ដោយវាធ្វើការសាកល្បងរាល់ការផ្គូផ្គងទាំងអស់នៃប៉ារ៉ាម៉ែត្រដែលយើងបានកំណត់ទុកជាមុន (សាកល្បងមួយជួរម្តងៗ) ដើម្បីរកមើលថាតើការផ្គូផ្គងមួយណាដែលផ្តល់លទ្ធផលកំហុសតិចជាងគេបំផុត។ ដូចជាការសាកល្បងចាក់សោរលេខដោយរាប់តាំងពីលេខ 000 ដល់ 999 មួយម្តងៗតាមលំដាប់ រហូតទាល់តែសោររបូតបើក។
Bayesian Optimization ជាបច្ចេកទេសកែតម្រូវម៉ូដែលដោយប្រើប្រូបាប៊ីលីតេ (Probabilistic Model) ដែលវាប្រើប្រាស់បទពិសោធន៍ពីការសាកល្បងមុនៗ ដើម្បីទស្សន៍ទាយ និងជ្រើសរើសយកតម្លៃប៉ារ៉ាម៉ែត្រថ្មីណាដែលមានឱកាសខ្ពស់ក្នុងការផ្តល់លទ្ធផលល្អ ដែលជួយសន្សំសំចៃពេលវេលាជាងការសាកល្បងទាំងអស់ (Grid Search)។ ដូចជាអ្នកស្វែងរកកំណប់ដែលចេះវិភាគសញ្ញាសម្គាល់ពីកន្លែងដែលខ្លួនធ្លាប់ជីកខុស ដើម្បីតម្រង់ទៅរកកន្លែងថ្មីដែលមានកំណប់ពិតប្រាកដ ដោយមិនចាំបាច់ជីកគ្រប់កន្លែងទាំងអស់នោះទេ។
Fast Fourier Transform (FFT) ជារូបមន្តគណិតវិទ្យាដែលបំប្លែងទិន្នន័យពីទម្រង់ពេលវេលា (Time Domain) ទៅជាទម្រង់ប្រេកង់ (Frequency Domain)។ នៅក្នុងការស្រាវជ្រាវនេះ វាត្រូវបានប្រើដើម្បីចម្រោះយកទិន្នន័យរំខាន (Noise) ចេញពីទិន្នន័យអាកាសធាតុ ជួយឱ្យម៉ូដែលងាយស្រួលចាប់យកលំនាំ (Patterns) ពិតប្រាកដ។ ដូចជាការប្រើប្រាស់ឧបករណ៍ចម្រោះ (Filter) ដើម្បីត្រងយកកករដីចេញពីទឹកល្អក់ ធ្វើឱ្យយើងទទួលបានទឹកថ្លាដែលអាចប្រើប្រាស់បានយ៉ាងមានសុវត្ថិភាព។
Root Mean Square Error (RMSE) គឺជារង្វាស់ស្តង់ដារសម្រាប់វាស់កម្រិតកំហុសរបស់ម៉ូដែលព្យាករណ៍តំរែតំរង់ (Regression) ដោយគណនាពីគម្លាតជាមធ្យមរវាងតម្លៃដែលម៉ូដែលទាយបាន និងតម្លៃពិតប្រាកដដែលកើតឡើងជាក់ស្តែង។ តម្លៃ RMSE កាន់តែតូច បង្ហាញថាម៉ូដែលកាន់តែសុក្រឹត។ ដូចជាការបាញ់ព្រួញទៅកាន់ផ្ទាំងគោលដៅ បើគ្រាប់ព្រួញបាញ់ទៅចំកណ្តាល ឬក្បែរៗចំណុចកណ្តាលច្រើន នោះមានន័យថាអ្នកបាញ់មានកម្រិតកំហុស (RMSE) តូចបំផុត។

៦. ប្រធានបទពាក់ព័ន្ធ (Further Reading)

អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖

ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖