TinyML นำพลังของ Deep Learning มาใช้กับไมโครคอนโทรลเลอร์
การเรียนรู้ของเครื่องเป็นศาสตร์ที่ต้องใช้ทรัพยากรมาก เติบโตได้ดีในระบบคลาวด์และศูนย์ข้อมูล ขับเคลื่อนด้วย GPU และอินเทอร์เน็ตความเร็วสูง แต่จะเป็นอย่างไรถ้าเราสามารถนำความชาญฉลาดนั้นมาใช้กับอุปกรณ์ที่ใช้ แบตเตอรี่แบบเหรียญ และมีหน่วยความจำน้อยกว่ารูปถ่ายได้
นั่นคือที่ มาของ TinyML ซึ่งเป็นสาขาที่มีการเติบโตอย่างรวดเร็ว ซึ่ง ผสมผสาน ระบบฝังตัวการเรียนรู้เชิงลึกและ การประมวลผลแบบเอจ เพื่อเปิดใช้งานแอปพลิเคชัน AI แบบเรียลไทม์และใช้พลังงานต่ำบนไมโครคอนโทรลเลอร์
TinyML (Tiny Machine Learning) หมายถึงการปรับใช้ โมเดลการเรียนรู้ของเครื่อง บนอุปกรณ์ฮาร์ดแวร์ขนาดเล็กที่ประหยัดพลังงาน เช่น ไมโครคอนโทรลเลอร์ (MCU) ที่มีข้อจำกัดด้านหน่วยความจำ การประมวลผล และพลังงานอย่างรุนแรง
ลักษณะเฉพาะทั่วไปของระบบ TinyML:
แม้จะมีข้อจำกัดเหล่านี้ แต่ด้วยการออกแบบและเพิ่มประสิทธิภาพโมเดลที่มีประสิทธิภาพ คุณสามารถดำเนินการ งานอนุมาน ได้ เช่น:
นี่คือเหตุผลว่าทำไมสิ่งนี้ถึงเป็นมากกว่าความอยากรู้อยากเห็นทางวิชาการ:

ตามการวิจัยของ ABI พบว่า อุปกรณ์มากกว่า 2.5 พันล้านเครื่อง จะมาพร้อมกับความสามารถ TinyML ภายในปี 2030
ความเข้าใจที่ชัดเจนเกี่ยวกับเวิร์กโฟลว์ TinyML จะช่วยรวบรวมทุกอย่างเข้าด้วยกัน ตั้งแต่การรวบรวมข้อมูลจนถึงการปรับใช้ขั้นสุดท้าย
นี่คือภาพตัวแทนของกระบวนการ:

1. การรวบรวมข้อมูล
- รวบรวมข้อมูลเซ็นเซอร์ (เช่น เสียงจากไมโครโฟน การสั่นสะเทือนจากเครื่องวัดความเร่ง)
2. การประมวลผลเบื้องต้นและการสกัดคุณลักษณะ
- แปลงสัญญาณดิบเป็นคุณสมบัติที่ใช้งานได้ เช่น MFCC สำหรับเสียงหรือ FFT สำหรับการสั่นสะเทือน
3. การฝึกอบรมแบบจำลอง
- ใช้กรอบงานเช่น TensorFlow/Keras เพื่อฝึกเครือข่ายประสาทเทียมแบบกะทัดรัดหรือโมเดล ML แบบคลาสสิก
4. การเพิ่มประสิทธิภาพโมเดล
- ลดขนาดและความซับซ้อนโดยใช้การวัดปริมาณ การตัดแต่ง หรือการกลั่น
5. การแปลงเป็นรูปแบบการใช้งาน
- แปลงโมเดลที่ผ่านการฝึกอบรมเป็น อาร์เรย์ .tflite, .onnx, หรือ C (สำหรับการใช้งานระดับต่ำสุด)
6. การปรับใช้บน MCU
- แฟลชโมเดลลงในไมโครคอนโทรลเลอร์ (เช่น Arduino Nano, ESP32, STM32) สำหรับการอนุมานบนอุปกรณ์
7. การอนุมานและผลลัพธ์แบบเรียลไทม์
- MCU ทำการทำนายทันทีโดยใช้ข้อมูลเซ็นเซอร์สด
มาสร้างโมเดล TinyML ที่สามารถจดจำคำว่า "ใช่" จากเสียงกัน
ขั้นตอนที่ 1: ติดตั้งข้อกำหนด
pip install tensorflow tensorflow-model-optimizationขั้นตอนที่ 2: ฝึก CNN ง่ายๆ
import tensorflow as tf
from tensorflow.keras import layers
model = tf.keras.Sequential([
layers.Input(shape=(49, 10, 1)), # 49 MFCC frames, 10 coefficients
layers.Conv2D(8, (3, 3), activation='relu'),
layers.MaxPooling2D(),
layers.Conv2D(16, (3, 3), activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(32, activation='relu'),
layers.Dense(2, activation='softmax') # yes/no
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])ฝึกอบรมโดยใช้ชุดข้อมูลที่ประมวลผลโดย MFCC (เช่น คำสั่งเสียงของ Google)
ขั้นตอนที่ 3: การหาปริมาณสำหรับไมโครคอนโทรลเลอร์
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
with open("yes_model.tflite", "wb") as f:
f.write(tflite_model)ตอนนี้โมเดลของคุณมีขนาดประมาณ 20–50 KB — พร้อมที่จะปรับใช้แล้ว!
ขั้นตอนที่ 4: แฟลชเป็น Arduino Nano 33 BLE Sense
ใช้ไลบรารี Arduino_TensorFlowLite และแฟลชโมเดล .tflite ตอนนี้คุณสามารถรันการตรวจหาคำสำคัญบนอุปกรณ์ด้วยอินพุตเสียงแบบเรียลไทม์จากไมโครโฟนในตัวได้แล้ว


ด้วยการเพิ่มขึ้นของ ตัวเร่งความเร็วฮาร์ดแวร์ Edge TPUและ ระบบนิเวศโอเพนซอร์สอนาคตของ TinyML ดูมีแนวโน้มดี:
TinyML กำลังนิยามใหม่ว่าระบบอัจฉริยะจะอยู่ที่ไหนและทำงานอย่างไร แทนที่จะแค่ฝึกอบรมโมเดลที่ชาญฉลาดขึ้น ตอนนี้เรากำลังสร้างอุปกรณ์ที่ชาญฉลาดขึ้น
TinyML ไม่ได้เป็นแค่ "ML เวอร์ชันย่อ" เท่านั้น แต่มันคือการเปลี่ยนแปลงอย่างสิ้นเชิงในมุมมองของเราเกี่ยวกับการนำปัญญาประดิษฐ์ไปใช้ในโลกแห่งความเป็นจริง TinyML ช่วยให้สามารถใช้ งาน AI แบบเรียลไทม์ เป็นส่วนตัว และประหยัดพลังงาน ปลดล็อกแอปพลิเคชันที่เคยคิดว่าเป็นไปไม่ได้มาก่อน
ไม่ว่าคุณจะเป็นนักวิจัย ผู้สร้าง หรือผู้ที่ชื่นชอบ ML TinyML ถือเป็น ขอบเขตอันทรงอิทธิพล ที่สุด ที่ควรสำรวจในขณะนี้