# TinyML: 초저전력 머신러닝 기술

> Clean Markdown view of GeekNews topic #12905. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=12905](https://news.hada.io/topic?id=12905)
- GeekNews Markdown: [https://news.hada.io/topic/12905.md](https://news.hada.io/topic/12905.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-01-17T10:09:01+09:00
- Updated: 2024-01-17T10:09:01+09:00
- Original source: [ikkaro.net](https://www.ikkaro.net/what-tinyml-is/)
- Points: 3
- Comments: 1

## Topic Body

### TinyML이란 무엇인가  
  
- **TinyML**은 **마이크로컨트롤러에서의 머신 러닝 사용**을 의미함.  
- 전통적인 ML에서 사용되는 시스템과 달리, CPU와 RAM이 매우 적고, 전력 소비가 밀리와트 또는 마이크로와트 수준인 시스템에서 사용됨.  
- 큰 모델을 축소하여 자원이 매우 적은 장비와 마이크로컨트롤러에서 사용할 수 있도록 하는 작업을 수행함.  
- TinyML 재단의 공식 웹사이트는 https://www.tinyml.org/  
- 하버드 대학에서 무료로 제공하는 3개의 강좌 시리즈가 있음:  
  1. _TinyML의 기초_ (무엇을 만들고, 왜 만들며, 어떤 문제가 있는지)  
  2. _TinyML의 응용_ (데이터 기반, 편향 등)  
  3. _TinyML 배포_ (모델을 어디에 배치할지, 보안 및 개인 정보 보호)  
  
### TinyML의 기본 원리  
  
- 마이크로컨트롤러를 사용하는 임베디드 시스템은 최대 256kB의 메모리를 가지고 있어 큰 모델을 작동시킬 수 없음.  
- 마이크로컨트롤러와 함께 사용할 수 있는 몇 가지 운영 시스템 예시:  
  * FreeRTOS  
  * Mbed OS  
- 머신 러닝은 데이터에서 패턴을 찾는 알고리즘으로 구성됨.  
- TinyML에서는 이러한 알고리즘을 압축하여 데이터에서 패턴을 효과적으로 찾을 수 있도록 함.  
- IoT에서 하루에 생성되는 데이터는 5퀸틸리언 바이트이며, 이 중 1% 미만만 분석됨.  
  
### 알고리즘 압축 기법  
  
- **가지치기(Pruning)**  
  - **Synapsis 가지치기:** 모델에서 네트워크 연결을 제거함. 때때로 정확도가 감소할 수 있음.  
  - **Neurons 가지치기:** 모델에서 전체 뉴런을 제거하여 네트워크의 계산 요구를 줄임.  
  
- **양자화(Quantization)**  
  - 값들을 작은 범위 내에서 이산화함. 예를 들어, 부동 소수점을 -128에서 127 범위 내로 이산화하면 256개의 값만 탐색하면 됨.  
  - 4바이트에 저장되는 부동 소수점 값을 1바이트에 저장되는 정수 값으로 바꾸면 크기가 4배 줄어듦.  
  - 제한된 자원 때문에 TinyML에서 양자화는 매우 중요함.  
  
- **지식 증류(Knowledge distillation)**  
  - 지식과 노하우를 적용하여 모델을 작게 만듦.  
  
### 도구  
  
- **TensorFlow Lite** 사용.  
- TensorFlow는 ML 연구자에 초점을 맞춘 반면, TensorFlow Lite는 애플리케이션 개발자를 위함.  
  
### TinyML의 사용  
  
- DIY, 메이커, 해커 세계에 특화된 TinyML의 사용 사례를 이 웹사이트에서 찾을 수 있음.  
  
### 산업에서의 TinyML 사용  
  
- 산업 분야에서는 유지보수에 사용되어 진동이 발생할 때 고장이 날 것을 경고함으로써 효율성을 높이고 비용을 절감함.  
- 정확도 문제로 인해 거짓 경보가 발생할 수 있으며, 거짓 경보의 책임은 운영자 또는 시스템에 있음.  
  
### 환경에서의 TinyML  
  
- 데이터를 수집한 후 처리하는 대신, TinyML을 사용하면 환경 변화에 대한 실시간 답변을 얻을 수 있음. 예를 들어 야생 동물의 생활에서 변화를 실시간으로 알 수 있음.  
  
### 인간을 위한 TinyML  
  
- 장애가 있는 사람들이 손을 사용하지 않고도 더 많은 작업을 수행할 수 있도록 도움.  
- 애플리케이션의 UI와 UX를 개선하여 사용하기 쉽게 만듦.  
- 기술은 인간의 경험을 향상시키기 위해 만들어짐. 기술은 사람들을 도와야 함.  
  
### 위험성과 단점  
  
- 모든 인구 집단에서 잘 작동할 것인가?  
- 데이터의 개인 정보 보호가 보장되는가?  
- 이 데이터를 보호할 수 있는가?  
- 인간 중심의 AI를 기반으로 기술을 만들어야 함. 설계, 개발, 배포 과정에서 이를 고려해야 함.  
  
---  
  
##### GN⁺의 의견  
  
- TinyML은 자원이 제한된 환경에서도 머신 러닝을 가능하게 하는 혁신적인 기술로, IoT 기기의 효율성과 지능을 크게 향상시킬 수 있음.  
- 가지치기, 양자화, 지식 증류와 같은 알고리즘 압축 기법은 머신 러닝 모델을 소형화하여 저전력 장치에서도 실행 가능하게 만드는 핵심 요소임.  
- TinyML의 적용은 산업 유지보수, 환경 모니터링, 장애인 지원 등 다양한 분야에서 인간의 삶을 개선하는 데 기여할 수 있으며, 이는 기술이 사회에 미치는 긍정적인 영향의 좋은 예임.

## Comments



### Comment 22315

- Author: neo
- Created: 2024-01-17T10:09:01+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39014866) 
- **Rust TinyML 컴파일러 개발**
  - 마스터 논문 프로젝트로 Rust 기반 TinyML 컴파일러를 개발함.
  - Rust 프로시저 매크로를 사용하여 컴파일 시간에 모델을 평가하고, 주어진 모델에 대한 추론을 수행하는 `predict()` 함수를 생성함.
  - TensorFlow Lite for Microcontrollers 및 기타 엔진보다 훨씬 더 작은 바이너리 크기를 달성함.
  - 8비트 ATmega328 (Arduino Uno)에서 음성 명령 인식기(TinyConv)를 실행하는 데 성공함.

- **TinyML 분야의 매력**
  - TinyML은 매우 작은 하드웨어에서도 많은 것을 할 수 있는 멋진 분야임.
  - 예를 들어, esp32-s3를 사용하여 실시간 컴퓨터 비전 시스템을 구축할 수 있음(가격은 약 2달러).
  - AutoML과 같은 솔루션을 통해 TinyML 분야에 쉽게 접근할 수 있음.
  - 하드웨어 회사들이 소비 전력을 최소화하기 위해 NPU를 탑재한 MCU를 제공하기 시작함.
  - TinyML은 앞으로 더 많은 주목을 받을 가능성이 높음.

- **LLM을 이용한 인프라 타겟 바이러스**
  - LLM(Large Language Models)을 사용하여 인프라를 대상으로 하는 바이러스를 상상함.
  - 소형 장치를 전력망에 숨겨 네트워크 트래픽을 수집하고 시스템을 파괴하려고 시도할 수 있음.
  - 이러한 장치는 네트워크 장비에 숨겨져 외부 트래픽을 필요로 하지 않으므로 탐지하기 어려움.

- **Edge Impulse의 TinyML / Edge ML 설명**
  - Edge Impulse는 ML 모델을 구축하고 에지 디바이스에 배포할 수 있는 플랫폼을 구축함.
  - 사용자는 계정을 만들고 키워드 스팟팅 모델을 구축한 후 WASM에서 직접 실행할 수 있음.
  - 임베디드 가속기 ASICs/NPUs의 등장이 Edge ML의 채택을 주도하고 있음.

- **Hacker Box의 ESP32 및 Tensor Flow Lite와 Edge Impulse 사용 예**
  - 최근 Hacker Box에서 ESP32와 Tensor Flow Lite, Edge Impulse를 사용한 자세한 예제를 제공함.

- **TinyML의 현재와 미래**
  - TinyML은 저전력 임베디드 디바이스에서 머신 러닝을 실행하는 것을 의미함.
  - 모든 휴대폰에는 "Hey Google" 또는 "Hey Siri"와 같은 키워드를 감지하는 저전력 DSP 칩이 탑재되어 있음.
  - TinyML은 에지 AI의 하위 집합으로, 네트워크 가장자리에 위치한 모든 유형의 장치를 포함함.
  - 이 분야는 매우 흥미롭고, 다양한 문제를 해결하고, 거의 모든 공간에 적용될 수 있는 기술임.

- **TinyML에 대한 다양한 의견**
  - TinyML 분야는 제약이 있는 솔루션을 만드는 것이 중요한 영향을 미칠 것이라는 의견이 있음.
  - TinyML은 IoT와 유사하게, 미래의 중요한 기술로 간주되지만, 실제로는 느리게 발전하고 있음.
  - TinyML 분야의 추가 콘텐츠를 찾는 이들을 위해 아시아 2023 컨퍼런스의 비디오들이 제공됨.
