머신 러닝 모델은 현재 도처에 있습니다. 낮에는 아마도 당신이 생각하는 것보다 훨씬 더 많이 이러한 모델을 활용하게 될 것입니다. 머신 러닝 모델은 소셜 미디어 탐색, 사진 촬영, 날씨 확인과 같은 일반적인 작업에 활용됩니다.
기계 학습 알고리즘이 이 블로그를 추천했을 수 있습니다. 우리는 이러한 모델을 훈련하는 데 얼마나 많은 시간이 소요되는지에 대해 모두 들었습니다. 우리는 모두 이러한 모델을 훈련하는 데 시간이 걸린다는 것을 들었습니다.
그러나 이러한 모델에 대한 추론은 종종 계산 비용이 많이 듭니다.
우리는 기계 학습 서비스를 활용하는 속도를 처리할 수 있을 만큼 충분히 빠른 컴퓨터 시스템이 필요합니다. 결과적으로 이러한 모델의 대부분은 CPU 및 GPU 클러스터(경우에 따라 TPU도 포함)가 있는 대규모 데이터 센터에서 실행됩니다.
사진을 찍을 때 원하는 기계 학습 즉시 개선합니다. 이미지가 데이터 센터로 전송되고 처리되어 반환될 때까지 기다릴 필요가 없습니다. 이 경우 기계 학습 모델을 로컬에서 실행해야 합니다.
"Hey Siri" 또는 "OK, Google"이라고 말하면 가젯이 즉시 응답하기를 원합니다. 귀하의 음성이 평가되고 데이터가 수집되는 컴퓨터로 전송되기를 기다립니다.
이것은 시간이 걸리고 사용자 경험에 해로운 영향을 미칩니다. 이 경우 기계 학습 모델이 로컬에서도 작동하기를 원합니다. 여기에서 TinyML이 등장합니다.
이 게시물에서는 TinyML, 작동 방식, 용도, 시작하는 방법 등을 살펴보겠습니다.
TinyML?
TinyML은 기계 학습의 혁신적인 잠재력을 소형 장치 및 임베디드 시스템의 성능 및 전력 제한에 적용하는 최첨단 분야입니다.
이 산업에서 성공적으로 배포하려면 응용 프로그램, 알고리즘, 하드웨어 및 소프트웨어에 대한 철저한 이해가 필요합니다. 마이크로 컨트롤러, 디지털 신호 프로세서 또는 기타 초저전력 특수 프로세서를 사용하는 임베디드 시스템에서 딥 러닝 및 머신 러닝 모델을 사용하는 머신 러닝 하위 장르입니다.
TinyML 지원 임베디드 장치는 일반적으로 장치의 일부로 특정 작업에 대해 기계 학습 알고리즘을 실행하기 위한 것입니다. 에지 컴퓨팅.
재충전이나 배터리 교체 없이 몇 주, 몇 달 또는 몇 년 동안 작동하려면 이러한 임베디드 시스템의 전력 소비가 1mW 미만이어야 합니다.
어떻게 진행합니까?
마이크로컨트롤러 및 컴퓨터와 함께 사용할 수 있는 유일한 기계 학습 프레임워크는 TensorFlow Lite. 개발자가 모바일, 임베디드 및 에지 장치에서 모델을 실행할 수 있도록 하여 기계 학습을 즉시 수행할 수 있도록 하는 도구 세트입니다.
마이크로컨트롤러의 인터페이스는 센서(예: 마이크, 카메라 또는 내장형 센서)에서 데이터를 수집하는 데 사용됩니다.
마이크로컨트롤러로 전송되기 전에 데이터는 클라우드 기반 기계 학습 모델에 통합됩니다. 오프라인 모드의 일괄 교육은 일반적으로 이러한 모델을 교육하는 데 사용됩니다. 다음에 사용될 센서 데이터 학습 및 추론 특정 응용 프로그램에 대해 이미 결정되었습니다.
예를 들어 모델이 깨우기 단어를 감지하도록 훈련되는 경우 마이크의 연속 오디오 스트림을 처리하도록 이미 설정되어 있습니다.
TensorFlow Lite의 경우 데이터 세트 선택, 정규화, 모델의 과소적합 또는 과적합, 정규화, 데이터 증대, 교육, 검증 및 테스트를 포함하여 모든 것이 이미 Google Colab과 같은 클라우드 플랫폼의 도움으로 완료되었습니다.
완전히 훈련된 모델은 오프라인 배치 훈련 후에 마이크로컨트롤러, 마이크로컴퓨터 또는 디지털 신호 프로세서로 변환되어 최종적으로 전송됩니다. 모델은 임베디드 장치로 이동된 후 추가 교육이 없습니다. 대신 센서 또는 입력 장치의 실시간 데이터만 사용하여 모델을 적용합니다.
결과적으로 TinyML 머신 러닝 모델은 내구성이 뛰어나야 하며 몇 년 후에 다시 훈련되거나 다시 훈련되지 않을 수 있어야 합니다. 모든 잠재적인 모델 과소적합 및 과적합을 조사하여 모델이 이상적으로는 무기한 연장된 시간 동안 관련성을 유지하도록 해야 합니다.
그러나 TinyML을 사용하는 이유는 무엇입니까?
TinyML은 기본적인 소규모의 클라우드 서비스에 대한 IoT의 의존도를 없애거나 줄이기 위한 노력으로 시작되었습니다. 기계 학습 작업. 따라서 에지 장치 자체에서 기계 학습 모델을 사용해야 했습니다. 다음과 같은 주요 이점을 제공합니다.
- 저전력 소비: TinyML 애플리케이션은 1밀리와트 미만의 전력을 사용하는 것이 좋습니다. 이러한 저전력 소비로 인해 장치는 코인 배터리로 전원을 공급하더라도 몇 달 또는 몇 년 동안 센서 데이터에서 계속해서 결론을 도출할 수 있습니다.
- 저렴한 비용: 저가의 32비트 마이크로컨트롤러 또는 DSP에서 실행되도록 설계되었습니다. 이러한 마이크로컨트롤러는 일반적으로 각각 몇 센트이며 이를 사용하여 개발된 전체 임베디드 시스템은 50달러 미만입니다. 이것은 소규모 기계 학습 프로그램을 대규모로 실행하기 위한 매우 비용 효율적인 옵션이며 기계 학습을 적용해야 하는 IoT 애플리케이션에서 특히 유용합니다.
- 낮은 대기 시간: 애플리케이션은 네트워크를 통해 데이터를 전송하거나 교환할 필요가 없기 때문에 대기 시간이 짧습니다. 모든 센서 데이터는 로컬로 기록되고 이미 훈련된 모델을 사용하여 결론이 도출됩니다. 추론 결과는 로깅 또는 추가 처리를 위해 서버나 클라우드로 전송될 수 있지만 이것이 장치 작동에 필수적인 것은 아닙니다. 이렇게 하면 네트워크 대기 시간이 최소화되고 클라우드 또는 서버에서 기계 학습 작업을 수행할 필요가 없습니다.
- 개인정보보호: 그것은 인터넷과 사물 인터넷의 주요 관심사입니다. TinyML 앱의 기계 학습 작업은 센서/사용자 데이터를 서버/클라우드에 저장하거나 전송하지 않고 로컬에서 수행됩니다. 결과적으로 이러한 응용 프로그램은 네트워크에 연결되어 있는 동안에도 사용하기에 안전하며 개인 정보 위험이 없습니다.
어플리케이션
- 농업 – 언제 농부들이 식물의 사진을 찍으면 TensorFlow Lite의 애플리케이션이 식물의 질병을 감지합니다. 모든 장치에서 작동하며 인터넷 연결이 필요하지 않습니다. 이 절차는 농업 이익을 보호하며 농촌 농민에게 매우 중요합니다.
- 역학 유지 보수 – 저전력 장치에서 TinyML을 사용하면 시스템의 결함을 지속적으로 식별할 수 있습니다. 예측 기반 유지 관리가 수반됩니다. 호주의 신생 기업인 Ping Services는 풍력 터빈 외부에 스스로 부착하여 풍력 터빈을 모니터링하는 IoT 장치를 출시했습니다. 발생 가능한 문제나 오작동을 감지할 때마다 당국에 알립니다.
- 병원 – 더 Solar Scare는 프로젝트입니다. 모기는 뎅기열 및 말라리아와 같은 질병의 확산을 막기 위해 TinyML을 사용합니다. 그것은 태양 에너지로 구동되며 모기 번식을 억제하기 위해 물에 신호를 보내기 전에 모기 번식 조건을 감지합니다.
- 교통 감시 – 작성자 실시간 교통 데이터를 수집하는 센서에 TinyML을 적용하면 교통을 더 잘 안내하고 긴급 차량의 응답 시간을 단축하는 데 사용할 수 있습니다. 예를 들어 Swim.AI는 스트리밍 데이터에 이 기술을 사용하여 승객의 안전을 높이는 동시에 스마트 라우팅을 통해 정체와 배기가스 배출을 줄입니다.
- 법: TinyML은 법 집행 기관에서 기계 학습 및 제스처 인식을 사용하여 폭동 및 절도와 같은 불법 행위를 식별하는 데 사용할 수 있습니다. 유사한 프로그램을 사용하여 은행 ATM을 보호할 수도 있습니다. 사용자 행동을 관찰함으로써 TinyML 모델은 사용자가 거래를 완료하는 실제 소비자인지 또는 ATM을 해킹하거나 파괴하려는 침입자인지 예측할 수 있습니다.
TinyML을 시작하는 방법은 무엇입니까?
TensorFlow Lite에서 TinyML을 시작하려면 호환되는 마이크로컨트롤러 보드가 필요합니다. 마이크로컨트롤러용 TensorFlow Lite는 아래 나열된 마이크로컨트롤러를 지원합니다.
- Wio 터미널: ATSAMD51
- Himax WE-I Plus EVB 엔드포인트 AI 개발 보드
- STM32F746 디스커버리 키트
- Adafruit Edge배지
- Synopsys DesignWare ARC EM 소프트웨어 개발 플랫폼
- 소니 Spresense
- Arduino Nano 33 BLE 센스
- 스파크펀 엣지
- 마이크로컨트롤러용 Adafruit TensorFlow Lite 키트
- Adafruit 서킷 플레이그라운드 블루프루트
- 에스프레소 ESP32-DevKitC
- 에스프레소 ESP-EYE
이들은 기계 학습 모델을 실행하기에 충분한 플래시 메모리, RAM 및 클록 주파수를 가진 32비트 마이크로컨트롤러입니다. 또한 보드에는 임베디드 프로그램을 실행하고 기계 학습 모델을 대상 응용 프로그램에 적용할 수 있는 여러 온보드 센서가 있습니다. 에게 기계 학습 모델 구축, 하드웨어 플랫폼 외에 랩톱이나 컴퓨터가 필요합니다.
각 하드웨어 플랫폼에는 TensorFlow Lite for Microcontrollers 패키지를 사용하는 기계 학습 모델을 구축, 교육 및 이식하기 위한 자체 프로그래밍 도구가 있습니다. TensorFlow Lite는 오픈 소스.
TinyML 및 TensorFlow Lite를 시작하려면 위에서 언급한 임베디드 하드웨어 플랫폼 중 하나, 컴퓨터/노트북, USB 케이블, USB-직렬 변환기 및 임베디드 시스템으로 기계 학습을 연습하려는 욕구만 있으면 됩니다. .
도전
TinyML의 발전이 많은 긍정적인 결과를 가져왔음에도 불구하고 기계 학습 산업은 여전히 상당한 장애물에 직면해 있습니다.
- 소프트웨어 다양성 – 수동 코딩, 코드 생성 및 ML 인터프리터는 모두 TinyML 장치에 모델을 배포하기 위한 옵션이며 각각 다른 시간과 노력이 필요합니다. 그 결과 다양한 퍼포먼스가 나올 수 있다.
- 하드웨어 다양성 – 거기 여러 하드웨어 옵션을 사용할 수 있습니다. TinyML 플랫폼은 범용 마이크로컨트롤러에서 최첨단 신경 프로세서에 이르기까지 무엇이든 될 수 있습니다. 이로 인해 다양한 아키텍처에서 모델 배포에 문제가 발생합니다.
- 문제 해결/디버깅 – 언제 ML 모델은 클라우드에서 성능이 좋지 않습니다. 데이터를 보고 문제가 무엇인지 파악하는 것은 간단합니다. 모델이 수천 개의 TinyML 장치에 분산되어 있고 데이터 스트림이 클라우드로 반환되지 않으면 디버깅이 어려워지고 다른 방법이 필요할 수 있습니다.
- 메모리 제약 – 기존 스마트폰 및 랩톱과 같은 플랫폼에는 기가바이트의 RAM이 필요한 반면 TinyML 장치는 킬로바이트 또는 메가바이트를 사용합니다. 결과적으로 배포할 수 있는 모델의 크기가 제한됩니다.
- 모델 교육 – 비록 TinyML 장치에 ML 모델을 배포하는 데는 몇 가지 장점이 있지만 대부분의 ML 모델은 모델 정확도를 반복하고 지속적으로 개선하기 위해 클라우드에서 여전히 훈련됩니다.
미래
설치 공간이 작고 배터리 소모가 적으며 인터넷 연결에 대한 의존도가 낮거나 제한적인 TinyML은 미래에 엄청난 잠재력을 가지고 있습니다. 인공 지능 에지 장치 또는 독립적인 내장 가젯에서 구현됩니다.
IoT 응용 프로그램을 활용하여 더 개인적이고 안전하게 만들 것입니다. 그렇지만 TensorFlow Lite는 현재 마이크로컨트롤러 및 마이크로컴퓨터를 위한 유일한 기계 학습 프레임워크이며 센서 및 ARM의 CMSIS-NN과 같은 다른 유사한 프레임워크가 작업 중입니다.
TensorFlow Lite는 Google 팀과 함께 훌륭하게 출발한 진행 중인 오픈 소스 프로젝트이지만 주류에 진입하려면 여전히 커뮤니티 지원이 필요합니다.
결론
TinyML은 임베디드 시스템과 머신 러닝을 결합한 새로운 접근 방식입니다. 좁은 AI가 많은 수직 및 영역에서 정점에 도달함에 따라 이 기술은 기계 학습 및 인공 지능에서 두드러진 하위 분야로 부상할 수 있습니다.
IoT 부문과 많은 도메인 특정 분야에 머신 러닝을 적용하는 전문가들이 현재 직면하고 있는 수많은 문제에 대한 솔루션을 제공합니다.
머신 러닝 활용의 개념 소규모 컴퓨팅이 가능한 에지 장치 풋프린트와 전력 소비는 임베디드 시스템과 로봇이 구성되는 방식을 크게 변화시킬 가능성이 있습니다.
댓글을 남겨주세요.