Original Title: Optimized Deep Learning Classification Model for Intelligent Edge devices
Source: doi.org/10.25103/jestr.173.11
Disclaimer: Summary generated by AI based on the provided document. Please refer to the original paper for full scientific accuracy.

ម៉ូដែលចំណាត់ថ្នាក់ Deep Learning ដែលបានធ្វើឱ្យប្រសើរឡើងសម្រាប់ឧបករណ៍ Edge ឆ្លាតវៃ

ចំណងជើងដើម៖ Optimized Deep Learning Classification Model for Intelligent Edge devices

អ្នកនិពន្ធ៖ Soumyalatha Naveen (Manipal Academy of Higher Education), Manjunath R Kounte (REVA University)

ឆ្នាំបោះពុម្ព៖ 2024, Journal of Engineering Science and Technology Review

វិស័យសិក្សា៖ Computer Science

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

បញ្ហា (The Problem)៖ ការដាក់ពង្រាយម៉ូដែល Deep Learning លើឧបករណ៍ Edge (IoT) ជួបប្រទះនឹងបញ្ហាប្រឈមដោយសារដែនកំណត់នៃថាមពលដំណើរការ អង្គចងចាំ និងថាមពលថ្ម ដែលទាមទារឱ្យមានការកាត់បន្ថយទំហំម៉ូដែលដោយមិនធ្វើឱ្យបាត់បង់ភាពត្រឹមត្រូវ។

វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវក្របខ័ណ្ឌបង្ហាប់បណ្តាញសរសៃប្រសាទសិប្បនិម្មិត (Neural network compression framework) ដោយប្រើប្រាស់វិធីសាស្ត្រចម្បងៗរួមមាន៖

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

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

វិធីសាស្ត្រ (Method) គុណសម្បត្តិ (Pros) គុណវិបត្តិ (Cons) លទ្ធផលគន្លឹះ (Key Result)
Baseline Models (ResNet34 & VGG16)
ម៉ូដែលដើម (ResNet34 និង VGG16)
មានភាពត្រឹមត្រូវខ្ពស់ក្នុងការចំណាត់ថ្នាក់រូបភាព និងមានសមត្ថភាពទាញយកលក្ខណៈពិសេសបានល្អ។ ត្រូវការទំហំអង្គចងចាំធំ ប្រើប្រាស់ថាមពលច្រើន និងយឺតក្នុងការដំណើរការលើឧបករណ៍ IoT។ ភាពត្រឹមត្រូវ 79% សម្រាប់ ResNet34 និង 83.55% សម្រាប់ VGG16 លើសំណុំទិន្នន័យ CIFAR-10។
Proposed Compressed Framework (Pruning + K-means + 8-bit Quantization)
ក្របខ័ណ្ឌបង្ហាប់ដែលបានស្នើ (ការកាត់តម្រង + K-means + កង់ទិច 8-bit)
កាត់បន្ថយទំហំម៉ូដែលបានយ៉ាងច្រើន សន្សំសំចៃអង្គចងចាំ និងថាមពលថ្ម ស័ក្តិសមបំផុតសម្រាប់ឧបករណ៍ Edge។ ទាមទារការកែសម្រួលម៉ូដែល (Fine-tuning) យ៉ាងប្រុងប្រយ័ត្នដើម្បីកុំឱ្យបាត់បង់ភាពត្រឹមត្រូវច្រើន និងមានការថយចុះភាពត្រឹមត្រូវបន្តិចបន្តួច។ កាត់បន្ថយប៉ារ៉ាម៉ែត្របាន 80 ដង ខណៈរក្សាភាពត្រឹមត្រូវ 78.01% (ResNet34) និង 82.34% (VGG16) ដោយខាតបង់ភាពត្រឹមត្រូវតិចជាង 1%។

ការចំណាយលើធនធាន (Resource Cost)៖ ការសិក្សានេះប្រើប្រាស់ភាសា Python និងបណ្ណាល័យកូដចំហសម្រាប់ការបង្ហាត់ និងបង្ហាប់ម៉ូដែល ដែលទាមទារកម្លាំងម៉ាស៊ីន (GPU) សម្រាប់វគ្គបង្ហាត់ តែប្រើប្រាស់ធនធានតិចតួចបំផុតសម្រាប់ការដាក់ពង្រាយ។

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

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

ការសិក្សានេះប្រើប្រាស់សំណុំទិន្នន័យ CIFAR-10 ដែលជាទិន្នន័យរូបភាពទំហំតូច (32x32 ភីកសែល) សម្រាប់ការស្រាវជ្រាវទូទៅ។ ទិន្នន័យនេះមិនឆ្លុះបញ្ចាំងពីស្ថានភាពជាក់ស្តែងនៅក្នុងប្រទេសកម្ពុជានោះទេ ដូចជារូបភាពផ្លូវថ្នល់ យានយន្ត ឬបរិស្ថានក្នុងស្រុក ដែលទាមទារឱ្យមានការប្រមូលទិន្នន័យជាក់ស្តែងបន្ថែមដើម្បីយកមកប្រើប្រាស់ផ្ទាល់។

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

វិធីសាស្ត្រនៃការបង្ហាប់ម៉ូដែលនេះមានអត្ថប្រយោជន៍យ៉ាងខ្លាំងសម្រាប់ប្រទេសកម្ពុជា ពិសេសក្នុងការអភិវឌ្ឍប្រព័ន្ធ IoT ឆ្លាតវៃដែលមានតម្លៃទាប និងសន្សំសំចៃថាមពល។

ជារួម បច្ចេកវិទ្យានេះជួយកាត់បន្ថយការពឹងផ្អែកលើប្រព័ន្ធ Cloud ដែលមានតម្លៃថ្លៃ និងអ៊ីនធឺណិត ដែលស័ក្តិសមបំផុតសម្រាប់ការដាក់ពង្រាយបច្ចេកវិទ្យា AI ក្នុងតម្លៃថោកនៅទូទាំងប្រទេសកម្ពុជា។

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

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

  1. សិក្សាមូលដ្ឋានគ្រឹះនៃ CNN និងការបង្ហាត់ម៉ូដែល: ចាប់ផ្តើមរៀនសរសេរកូដបង្កើតម៉ូដែល ResNet និង VGG សម្រាប់ការចំណាត់ថ្នាក់រូបភាព ដោយប្រើប្រាស់បណ្ណាល័យ PyTorch
  2. អនុវត្តការកាត់តម្រងម៉ូដែល (Filter Pruning): ប្រើប្រាស់មុខងារ torch.nn.utils.prune របស់ PyTorch ដើម្បីសាកល្បងលុបប៉ារ៉ាម៉ែត្រ (Weights) ដែលមិនសំខាន់ចេញពីម៉ូដែល រួចធ្វើការកែសម្រួល (Fine-tuning) ដើម្បីរក្សាភាពត្រឹមត្រូវ។
  3. អនុវត្តចំណាត់ចង្កោម និងធ្វើកង់ទិច (Quantization): ប្រើប្រាស់ scikit-learn សម្រាប់ធ្វើ K-Means Clustering លើទម្ងន់របស់ម៉ូដែល និងប្រើប្រាស់ PyTorch Quantization API ដើម្បីបំប្លែងទិន្នន័យពី 32-bit ទៅ 8-bit។
  4. ប្រមូល និងរៀបចំទិន្នន័យក្នុងស្រុករបស់កម្ពុជា: ថតរូបភាពជាក់ស្តែងនៅក្នុងប្រទេសកម្ពុជា (ឧទាហរណ៍៖ ស្លាកសញ្ញាចរាចរណ៍កម្ពុជា ឬ ប្រភេទយានយន្តនៅលើដងផ្លូវ) និងរៀបចំជាសំណុំទិន្នន័យដើម្បីយកមកបង្ហាត់ម៉ូដែលឡើងវិញ (Transfer Learning)។
  5. ដាក់ពង្រាយលើឧបករណ៍ Edge ជាក់ស្តែង: បម្លែងម៉ូដែលដែលបានបង្ហាប់រួចទៅជាទម្រង់ TensorFlow LiteOpenVINO ហើយដាក់ឱ្យដំណើរការលើឧបករណ៍ខ្នាតតូចដូចជា Raspberry Pi ជាដើម ដើម្បីវាស់ស្ទង់ល្បឿន និងការប្រើប្រាស់ថាមពលផ្ទាល់។

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

ពាក្យបច្ចេកទេស ការពន្យល់ជាខេមរភាសា (Khmer Explanation) និយមន័យសាមញ្ញ (Simple Definition)
Convolutional neural networks (CNNs) ជាប្រភេទបណ្តាញសរសៃប្រសាទសិប្បនិម្មិតដែលត្រូវបានរចនាឡើងយ៉ាងពិសេសសម្រាប់វិភាគ និងសម្គាល់ទិន្នន័យរូបភាពឬវីដេអូ ដោយប្រើប្រតិបត្តិការបន្ស៊ីគ្នា (convolution) ដើម្បីទាញយកលក្ខណៈពិសេសរបស់រូបភាព។ ដូចជាភ្នែក និងខួរក្បាលមនុស្សដែលមើលឃើញរូបភាពមួយ ហើយដឹងថាវាជាសត្វឆ្មា ឬសត្វឆ្កែដោយសម្គាល់តាមរយៈរូបរាង និងពណ៌។
Edge computing ការដំណើរការនិងវិភាគទិន្នន័យនៅក្បែរប្រភពដែលបង្កើតទិន្នន័យនោះផ្ទាល់ (ដូចជាកាមេរ៉ា ឬទូរស័ព្ទ) ជាជាងការបញ្ជូនទិន្នន័យទាំងអស់ទៅកាន់ម៉ាស៊ីនមេ (Cloud) ដែលនៅឆ្ងាយ។ ដូចជាការគិតលេខនៅក្នុងក្បាលរបស់អ្នកផ្ទាល់ ជាជាងការសរសេរសំណួរផ្ញើតាមសំបុត្រទៅសួរគ្រូនៅសាលា ដើម្បីសន្សំពេលវេលា។
Filter pruning បច្ចេកទេសកាត់បន្ថយទំហំម៉ូដែល AI ដោយលុបបំបាត់តម្រង (filters) ឬប៉ារ៉ាម៉ែត្រណាដែលមានតម្លៃតូច ឬមិនសូវមានឥទ្ធិពលដល់ការសម្រេចចិត្តរបស់ម៉ូដែល ដើម្បីឱ្យម៉ូដែលដំណើរការបានលឿន។ ដូចជាការកាត់មែកឈើដែលងាប់ ឬមិនសូវសំខាន់ចោល ដើម្បីឱ្យដើមឈើលូតលាស់បានល្អ និងមិនសូវធ្ងន់។
8-bit Quantization ដំណើរការកាត់បន្ថយកម្រិតភាពសុក្រឹតនៃទិន្នន័យទម្ងន់ (weights) របស់ម៉ូដែលពី 32-bit (ទំហំធំ) មកត្រឹម 8-bit (ទំហំតូច) ដែលជួយកាត់បន្ថយទំហំអង្គចងចាំបានច្រើនយ៉ាងសន្ធឹកសន្ធាប់ តែនៅតែរក្សាភាពត្រឹមត្រូវដែលអាចទទួលយកបាន។ ដូចជាការបង្រួមរូបភាពទំហំ 4K មកត្រឹម HD ដែលរូបភាពនៅតែអាចមើលយល់ តែស៊ីទំហំផ្ទុកតិចជាងមុនឆ្ងាយ។
K-means Clustering ជាក្បួនដោះស្រាយសម្រាប់រៀបចំទិន្នន័យជាក្រុម (clusters) ដែលមានលក្ខណៈស្រដៀងគ្នា ដោយស្វែងរកចំណុចកណ្តាល (centroids) នៃក្រុមនីមួយៗ ដើម្បីកាត់បន្ថយភាពស្មុគស្មាញនៃទិន្នន័យ។ ដូចជាការរៀបចំសៀវភៅក្នុងបណ្ណាល័យតាមប្រភេទ (ប្រវត្តិវិទ្យា វិទ្យាសាស្ត្រ កំណាព្យ) ដើម្បីងាយស្រួលរក និងចំណេញកន្លែង។
Inference ដំណាក់កាលដែលម៉ូដែល AI ត្រូវបានយកទៅប្រើប្រាស់ជាក់ស្តែង ដើម្បីធ្វើការទស្សន៍ទាយ ឬចំណាត់ថ្នាក់លើទិន្នន័យថ្មី ដែលវាមិនធ្លាប់បានឃើញពីមុនមក ក្រោយពេលដែលវាត្រូវបានបង្ហាត់ (trained) រួចរាល់។ ដូចជាសិស្សដែលរៀនចប់ ហើយចូលប្រឡងដើម្បីដោះស្រាយលំហាត់ថ្មីៗដោយប្រើចំណេះដឹងដែលធ្លាប់រៀន។
Knowledge distillation វិធីសាស្ត្របង្ហាត់ម៉ូដែល AI មួយដែលមានទំហំតូច (Student) ឱ្យរៀនចម្លងតាមការសម្រេចចិត្តរបស់ម៉ូដែលមួយទៀតដែលមានទំហំធំនិងស្មុគស្មាញ (Teacher) ដើម្បីទទួលបានសមត្ថភាពប្រហាក់ប្រហែលគ្នាក្នុងទំហំតូចជាង។ ដូចជាសិស្សក្មេងដែលរៀនសង្ខេបមេរៀន និងយកគំនិតសំខាន់ៗពីសាស្ត្រាចារ្យជើងចាស់ ដើម្បីឱ្យចេះរហ័សនិងពូកែដូចគ្នា។
Memory footprint ទំហំនៃអង្គចងចាំ (RAM) ដែលកម្មវិធី ឬម៉ូដែលមួយត្រូវការដើម្បីដំណើរការប្រកបដោយប្រសិទ្ធភាពនៅលើឧបករណ៍ណាមួយ។ ដូចជាទំហំនៃកាតាបស្ពាយរបស់អ្នក បើកាតាបធំពេក (memory footprint ធំ) អ្នកមិនអាចយកវាចូលទៅក្នុងកន្លែងចង្អៀត (ឧបករណ៍ Edge) បានទេ។

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

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

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