[Paper Review] Edge Machine Learning for AI-Enabled IoT Devices: A Review

정해원·2022년 5월 29일
0

IoT

목록 보기
1/3

https://doi.org/10.3390/s20092533

Introduction

2025년까지 750억개 이상의 device가 인터넷에 연결될 것으로 추정

IoT device는 일반적으로 limited compting power, small memory를 가지고 많은 양의 데이터를 생산

sensor를 포함하는 저전력으로 연결된 system들은 집, 도시, 차량, 그리고 산업계 전반에서 사용

Cloud computing은 IoT에 적합할 수 있으나, data transfer 때문에 발생하는 delay가 몇몇 task(health monitoring)에는 수용이 어려울 수 있음
(bandwidth saturation도 포함)

latency가 높고, bandwidth도 감소하고 privacy와 안정성 문제도 있어 cloud로만 데이터를 처리하는 것은 비현실적

따라서, calculation을 최대한 로컬에서 수행하고 cloud traffic을 최소화 하기 위해 end device에 AI를 탑재
이는 device에 "consciousness"를 부여한다는 의미

다양한 edge computing 구현의 최적화를 위해 안정적이고 효과적인 software를 기반으로 하는 여러 framework들이 있지만, 제한적인 resource를 가진 device들의 computational power 때문에 복잡한 ML algorithm을 구현하기에는 제약이 있음

raw data를 cloud에 전송하는 것은 communication cost가 들고, system response에 delay가 생기고 priavte data가 노출될 가능성 존재

이를 해결하는 현실적인 방안으로 data 처리를 좀 더 data 원천에서 가까운 곳에서 수행하고 추가적인 cloud processing이 필요할 때 이를 원격지에 있는 서버에 전송하는 방식이 고려


SVM(support vector machine), deep learning(DL), neural networks(NNs) 같은 AI 알고리즘은 device에 배포가 가능

NNs의 경우 application layer에서는 computational power가 상대적으로 적게 필요
따라서 이 기능이 microcontrollers(MCUs)와 같은 제한된 자원을 가진 device에서 AI 알고리즘을 실행하는데 이용이 가능하고 이는 local data 처리를 가능케 함

반면에 학습 단계에서는, 네트워크의 weight과 bias를 계산하기 위해 상당한 양의 데이터가 사용되기 때문에 이 단계에서는 성능을 낼 수 있는 machine이 필요

일단 학습이 완료되고 네트워크가 훈련되고 나면, 해당 모델은 적은 computational power를 가지고 추론에 사용될 수 있음

weight와 bias가 모두 계산된 후, 해당 계수들은 program memory에 저장되고 적은 용량의 RAM을 가진 device에서 AI 알고리즘이 실행

ML 알고리즘은 smart cities, computer vision, health care, automotive등 분야에서 다양하게 사용


edge device에서 machine learning이 활용되는 예제들


Anandhalli and Baligar in 2017
(A novel approach in real-time vehicle detection and tracking using Raspberry Pi)
video processing algorithm
도로에 차량을 확인하고 차량 수 확인
알고리즘은 Raspberry Pi3(1.2GHz quad-core ARMv8, 1GB of RAM) with a built-in camera에서 OpenCV5를 이용하여 실행


(S.W.Raspberry Pi assisted face recognition framework for enhanced law-enforcement services in smart cities)
스마트 시티에서 법 집행을 위한 face recognition 알고리즘 구현
portable wireless camera가 경찰관 유니폼에 장착되어 있고 이미지를 캡쳐한 후 Raspberry Pi3에 보내서 facial recognition 수행


Viola-Jones algorithm
(Robust Real-Time Object Detection)
이미지에 있는 얼굴을 구분한 후, ORB 알고리즘을 이용하여 얼굴에서 특징(peculiar features)를 추출하고 사람을 구분하기 위해 cloud에 있는 SVM 알고리즘에 전송

일반적으로 IoT 목적으로 device는 특정 작업을 수행하기 충분한 성능을 가져야하기 때문에 특정 분류 알고리즘을 이용하기 위해 AI 알고리즘을 임베디드 device에 추가 가능
ML 알고리즘을 사용하면 IoT 세계에서 근본적인 task들의 하나를 전력 감소를 통해 평균 battery 수명을 늘릴 수가 있음
RBF(radial basis function), kernel function에 기반한 SVM 알고리즘을 이용하고 Sampling Frequency를 변경해서 device의 수명을 2주에서 수년으로 늘릴 수 있음


(Designing wearable sensing platforms for healthcare in a residential environment)
wearable sensor platform은 사람의 활동을 sedentary,moderate,sportive 3가지로 분류
수집된 자료는 MCU로 보내지고, 처리된 데이터는 microcontroller에 의해서 advertisement mode를 이용하여, BLE(Bluetooth Low Energy) 주파수를 통해 smart home에서 central unit으로 전송

(A micropower support vector machine based seizure detection architecture for embedded medical devices)
환자의 발작(seizure)을 예측하는데 ML 알고리즘이 보다 효율적이고 저비용으로 구현이 가능케 함

(Learning in intelligent embedded systems)
embedded 장치에서 Neural Network 활용
운동 감각 작업을 수행하기 위해 구성된 저비용 로봇에 학습 알고리즘을 사용
로봇은 특히 물체의 특이점을 구분해서 물체를 추적하기 위해 학습
이 알고리즘은 CNN(Convolutional Neural Network)을 활용하여, Supervised ML 알고리즘을 사용하여 학습이 수행되는 동안 색상, 밝음, 움직임, 소리 정보를 조합
이미지는 불필요한 입력 데이터를 제거하기 위해 분석


위 논문들에서 보듯이, ML 알고리즘은 제한된 컴퓨팅 파워를 가진 장치에서 구현이 가능하고, IoT 분야를 위해 사용되어 Edge Computing을 활성화
유사한 용어인 Fog Computing은 클라우드가 IoT의 단말 장치까지 확장되는 아키텍처를 의미하며, 이를 통해 가까운 Network Edge에서 연산을 수행해서 latency와 security를 향상

Fog Computing은 연산 단계가 Fog Node 또는 IoT Gateway인 LAN 수준에서 수행되는 반면에,
Edge Computing은 Sensor가 연결되어 있는 장치에서 직접 데이터 연산이 주로 처리
Sensor에 가까울수록, 데이터 전송을 위한 에너지가 덜 필요하기 때문에 기밀성과 전력 소모 측면에서 효과적

Section2
Edge Computing에서 구현 가능한 ML 알고리즘 비교

Section3
Edge로 ML을 가져오는 절차에 대한 분석

Section4
Edge 서버 기반 아키텍처

Section5
AI 처리가 가능한 IoT 장치를 위한 wireless 표준 소개

Section6
offloading 기술을 위한 edge 특화 솔루션

Section7
보안 이슈, 데이터 업로드 시 사용자 정보 보호

Section8
Edge에서 ML 훈련 단계 구현

Section9
Edge ML 구현 예시

Machine Learning Algorithm

Network edge에서 제한된 자원하에서 사용될 수 있는 ML 알고리즘

Deep Learning

Deep Learning 모델은 weight과 bias의 조합
이 매개변수들은 모델의 예측력을 측정하는 손실 함수 또는 보상 함수 기반의 최적화 함수에 따라 서로 다름

훈련 단계 동안, AI 알고리즘은 input data의 기능으로 값을 예측하는 data간의 underlying pattern을 구분

훈련 단계에 따라, 다양한 학습 기술
1) Supervised Learning
Input과 Output 모두 알고리즘에 제공

2) Unsupervised Learning
Input만 알고리즘에 제공

3) Reinforcement Learning
강화 함수 최대화

추론 단계 동안, input data는 여러 layer를 겨처서 전달되며, 개별 layer는 matrix multiplication을 수행

Deep Neural Network은 input과 output 간에 여러 layer를 가지고 있고, 활성화 함수로 linear 또는 nonlinear 함수를 사용

CNN(Convolutional Neural Network)은 DNN의 특별한 유형으로 image와 video 분석을 위해 convolutional filter와 matrix multiplication을 수행
CNN은 input 변수가 아주 많은 경우에 사용

Time series 예측을 위해 설계된 DNN을 RNN(Recurrent Neural Networ)이라 함

NN 모델은 다양하게 설계 가능
Network의 다양한 hyperparameter는 다른 정확도를 제공
특히 높은 정확도의 모델은 매개변수 개수 때문에 더 많은 메모리를 요구

정확도를 측정하는 메트릭은 ML 알고리즘이 적용되는 도메인 별로 다른데,
Object Detection의 경우 정확도는 mAP(mean average predection)에 의해 측정

RNN, GAN, K-NN

RNN에서는 output value가 이전 층의 input value로 활용
이러한 상호 작용을 통해 layer 중 하나를 state memory로 사용
input으로 temporal sequence를 제공해서 동적인 temporal behavior를 모델링 가능
handwriting recognition이나 speech recognition같은 data sequence에서 예측 분석에 활용

RNN의 유형 중 하나인 LSTM(Long Short-Term Memory)
LTSM은 cell, input gate, output gate, forget gate로 구성
cell은 특정 기간 동안 값을 기억하고,
gate는 cell로 들어가고 나가는 정보의 흐름을 제어
특히 forget gate는 훈련 단계 동안, 정보가 유지되는지 사라지는지 학습

또 다른 유형으로는 GAN(Generative Adversarial Network)
두 가지 네트워크로 구성 : Generator, Discriminator
Generator는 학습 데이터셋에
서 데이터 분포를 학습한 후에 데이터를 생성
Discriminator는 Generator가 생성한 가짜 데이터에서 진짜 데이터를 분류

K-NN 알고리즘은 Pattern Recognition 분야에서 활용
K-NN 알고리즘은 가장 가까운 거리에 있는 Object의 특성을 기반으로 판별
Classification과 Regression 모두에서 사용
Edge에서 K-NN을 활용하는데 주된 문제점은 훈련 데이터 사이즈와 예측 시간 그리고 Distance Metric의 선택
K-NN의 발전된 버전 중 하나인 ProtoNN은 이 문제를 해결하기 위해 불필요한 데이터를 제외하고 더 작은 훈련 데이터셋을 이용

Tree-Based ML Algorithms

Tree-Based ML 알고리즘은 IoT 분야에서 주로 다루는 classification과 regression 문제에 사용
하지만 장치의 제한된 자원 때문에, 전반적인 Tree 알고리즘이 사용되지는 못함
최근에 만들어진 Bonsai 알고리즘
(Hybrid Neural-Tree Networks for HIghly Constrained IoT Applications)
은 심하게 자원 제한이 있는 IoT 장치를 위해 특별히 설계되었고, 모델 크기와 예측 비용을 최소화하여 예측 정확도를 유지
우선, 모델 크기를 줄이는 Single Sparse Tree를 학습하고 internal node와 leaf node를 통해 nonlinear prediction을 수행
결과적으로 Bonsai는 sparse matrix를 학습하고 모든 data를 tree가 학습할 수 있는 저차원 공간에 위치시킴
이는 알고리즘이 IoT 장치들과 같은 정말 작은 장치에서 구동이 가능토록 함

SVM

embedded에서 널리 사용되는 ML 알고리즘 중 하나
SVM은 supervised learning 알고리즘으로 classification과 regression 문제 모두에 사용
이 알고리즘은 모든 클래스를 구분할 수 있는 최적의 hyperplane을 정의해서 두 개 이상 분류의 데이터의 차이를 확인
Support vector는 hyperplane에 가장 가까운 data로 만약 support vector가 제거되면, hyperplane이 재정의 됨
이러한 이유 때문에 support vector가 데이터셋에 중요한 요소로 여겨짐
SVM에서는 손실 함수로 주로 Hinge loss를 사용하고, 최적화 함수로는 descending gradient를 사용

SVM은 kernel trick을 이용하여 효과적으로 classification을 수행
input space에서 single line으로 두 개의 클래스를 구분할 수 없는 경우,
데이터를 고차원으로 이동시키면, 데이터를 구분할 수 있는 hyperplane을 찾을 수 있음
Kernel은 연산 비용을 많이 증가시키지 않으면서, 고차원에서 hyperplane을 찾을 수 있도록 해줌

Bringing Machine Learning to the Edge

Architectures

latency 요구 조건을 맞추기 위해서, 빠른 model inference 수행을 위한 아키텍처가 제안
1) on-device computation
DNN이 end device에서 실행
2) edge server-based architectures
데이터가 edge device에서 edge server로 보내진 후에 computation
3) joint computation
end device와 cloud가 같이 연산

Model and Hardware

(Learning in intelligent embedded systems)
(Machine Learning for Embedded Systems: A Case Study)
(Deep Learning With Edge Computing: A Review)
(Hardware for machine learning: Challenges and opportunities)

제한된 자원을 가진 장치에 AI를 구현하는 가능성과 관련된 논문들
장치에서 모델의 Inference 시간을 줄이는 노력
embedded 장치에서 AI 모델을 돌리려면, ML 개발자들이 모델 design과 compression에 적합한 hardware를 선택해야 함

Model Design

ML 개발자들은 DNN 모델의 매개변수 수를 줄이기 위해 모델을 설계하는데 이를 통해 memory와 실행 시간을 줄이고, 동시에 높은 정확성을 유지

MobileNets, SqueezeNet과 같은 저연산, 저전력 장비에서 NN을 실행하기 위해 특별히 디자인된 효율적인 모델들이 있음
--> computer vision 용도

MobileNets는 light-weight deep NN을 만들기 위해 depth-wise convolution을 사용하는 streamlined architecture 기반
SqueezeNet은 특별한 1x1 convolution filter를 이용해서 데이터를 downsampling

Model Compression

(Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding)
model compression을 통해 작은 장치에서 모델 수행 목적

네트워크를 줄이는 두 가지 방법
1) Lower precision
모델 weight은 float32 type 변수
개별 weight마다 4byte라서, 모델이 상당히 커지고 메모리 요구량도 많음
또한, unit8 type 변수에 비해서 실행도 매우 느림
weight type을 float32 -> unit8로 변경하면 NN 크기를 4배로 줄일 수 있음

2) Fewer weights(Pruning)
NN에 유용하지 않은 연결을 제거
computation과 프로그램 메모리 요구가 감소

3) Post-training quantization
정확도의 약간의 손실을 감수하면서 필요한 computing power와 energy consumption을 감소
Tensorflow나 Keras와 같은 ML library들은 quantization 적용 가능

Pruning 관련
(DeepIoT:Compressing Deep Neural Network Structures for Sensing SYstems with a Compressor-Critic Framework)
(Pruning Convolutional Neural Networks for Resource Efficient Inference)
(Compact Deep Convolutional Neural Networks With Coarse Pruning)
(Exploring Sparsity in Recurrent Neural Networks)
(Dynamic network surgery for efficient DNNs)
(Distilling the Knowledge in a Neural Network)

Hardware Choice

Hardware 선택을 위한 metric
정확도
에너지 소모량
Throughput

Microcontroller
AI 용도로 사용될 수 있지만 알고리즘 구현은 어려움
IoT application과 너무 크지 않은 네트워크를 실행하기 위한 선택

Edge Server-Based Architectures

특정 환경에서 연산 과정을 end device에서 더 강력한 device로 전달이 필요한 경우가 있음
edge server가 사용자와 가까이 있기 때문에, 연산과 관련된 문제를 최적화된 시간내에 문제를 해결하기 위한 접근법이 될 수 있음
end device는 data를 근처의 edge server로 보내고, server의 연산처리 후에 그에 대한 결과를 전달받음

Glimpse
(Continuous, Real-Time Object Recognition on MObile Devices Categories and Subject Descriptos)
Glimpse는 object를 구별하여, object를 label과 trace를 하기 때문에 object recognition을 위한 알고리즘이 상당한 computation을 포함해서 Glimpse의 대부분 작업이 server에서 수행
어떤 camera frame이 offload 되는지를 filter하기 위한 change detection을 사용해서 만약 변경 내역이 없으면, Glimpse는 end device에서 frame tracking을 수행

(VideoEdge: Processing camera streams using hierarchical cluster)
DNN hyperparameter를 edge와 cloud server가 같이 computation

Wireless Standards for AI-Enabled IoT Devices

profile
VMware에서 Senior Technical Support Engineer로 일하고 있습니다.

0개의 댓글