TinyML이란?
TinyML(초소형 머신러닝)은 머신러닝의 하위 개념으로 마이크로컨트롤러 및 기타 저전력 에지 기기에 모델을 배포하는 데 초점을 둡니다. 이를 통해 네트워크 시스템의 에지에 AI를 활성화하여 클라우드 연결 없이도 기기에서 직접 에너지 효율적인 실시간 저지연 추론을 실행할 수 있습니다. 강력한 에지 서버 및 IoT 기기를 포괄할 수 있는 더 넓은 범위의 에지 AI와 달리 TinyML은 종종 밀리와트 전력 버짓 단위로 실행되는 스펙트럼 상의 가장 작은 기기를 타겟으로 합니다. 이 분야의 엔지니어들은 전력 소비 및 점유 공간을 최소화하면서 성능을 유지할 수 있도록 알고리즘과 모델을 최적화하고 초소형 기기와 센서에서 지능형 기능을 실현하는 데 주력합니다.
TinyML 워크플로 내의 필수적인 단계는 다음과 같습니다.
- 모델 개발 및 훈련: 전처리된 데이터를 사용하여 선택한 모델을 훈련시키고, 전이 학습 또는 데이터 증대와 같은 기법을 채택하여 타겟 기기의 제한 사항을 고려하면서 원하는 정확도를 달성할 수 있습니다.
- 모델 최적화 및 평가: 훈련된 모델을 최적화하여 리소스 효율성을 높이고, 양자화, 가지치기, 투영 및 데이터형 변환과 같은 기법을 채택하여 정확도를 크게 희생하지 않고 메모리와 연산 요구사항을 줄일 수 있습니다.
- 배포: 최적화된 모델을 타겟 기기에 배포하여, 낮은 지연 시간으로 실시간 추론이 가능한지를 확인할 수 있습니다.
- 테스트 및 검증: 대표 데이터를 사용하여 타겟 기기에 배포된 모델을 테스트하고 검증함으로써 실제 시나리오에서의 성능을 확인하고 잠재적 문제 또는 제한 사항을 파악할 수 있습니다.
MATLAB 및 Simulink를 사용한 TinyML
MATLAB®은 머신러닝 알고리즘의 프로토타이핑과 실험을 위한 고급 프로그래밍 환경을 제공합니다. Simulink®는 시스템 모델의 설계 및 시뮬레이션을 위한 블록 다이어그램 환경을 제공하여 하드웨어로 넘어가기 전에 반복과 검증을 용이하게 합니다. 아래에서 TinyML 워크플로를 가능하게 해주는 MATLAB 및 Simulink 기능에 대한 자세한 설명을 볼 수 있습니다.
- 모델 개발 및 훈련
앱과 고급 언어 및 블록 다이어그램 모델링 환경을 통해 머신러닝과 딥러닝을 제공하는 MATLAB 및 Simulink를 사용하여 TinyML 신경망을 개발하고 훈련시킬 수 있습니다. Deep Learning Toolbox™를 사용하면 TensorFlow™, PyTorch® 및 ONNX의 신경망을 가져와 신경망 개발 및 훈련 속도를 높일 수 있습니다.
- 모델 최적화
Deep Learning Toolbox를 사용하면 리소스 제한적인 에지 기기를 위한 머신러닝 모델을 최적화할 수 있습니다. MATLAB 및 Simulink에는 모델 양자화, 투영, 가지치기 및 데이터형 변환을 위한 툴이 있어 허용 가능한 정확도를 유지하면서 모델의 메모리 사용량과 연산 요구사항을 줄일 수 있습니다. 이를 통해 모델의 성능을 희생하지 않고도 저전력 기기에서 효율적으로 실행할 수 있습니다.
- 코드 생성 및 배포
Embedded Coder
®
를 사용하여 훈련된 모델에서 최적화된 C/C++ 코드를 생성할 수 있습니다. 생성된 코드에는 마이크로컨트롤러 또는 임베디드 시스템에 바로 배포할 수 있는 프로세서 특정 최적화와 기기 드라이버를 포함할 수 있으며 이를 통해 TinyML을 효율적으로 배포할 수 있습니다. MathWorks는 파트너 반도체 기업들과 협력하여 널리 사용되는 마이크로컨트롤러 플랫폼을 광범위하게 지원하여 여러분의 특정 하드웨어를 손쉽게 타겟팅할 수 있습니다. - 실시간 테스트 및 검증
HIL(Hardware-in-the-Loop) 시뮬레이션을 통해 실시간으로 TinyML 모델을 시뮬레이션하고 테스트할 수 있습니다. 이를 통해 하드웨어에 배포하기 전에 물리 시스템을 나타내는 가상 실시간 환경에서 모델의 성능을 검증할 수 있습니다. MATLAB 및 Simulink를 사용하면 시뮬레이션과 배포를 통합할 수 있으며, 이를 통해 타겟 HSP(하드웨어 지원 패키지)를 통해 안정적이고 정확한 결과를 보장할 수 있습니다.
예제 및 방법
소프트웨어 참조
참조: AutoML, 임베디드 시스템, 검증, 확인 및 테스트, 머신러닝 모델, 딥러닝 모델, MATLAB 코드 생성