임베디드 딥러닝

[임베디드 딥러닝] Tensorflow Lite

다락공방 2024. 8. 16. 02:15

이름을 정하기가 어려웠는데 아두이노 같은  MCU에서 머신러닝하는 것이 주요기능이기에 임베디드 딥러닝으로 정했다. 

이 과정을 위해 Tensorflow Lite라는 프레임 워크를 사용했는데  텐서플로우 라이트는 무엇일까?

 

텐서플로우 라이트(TensorFlow Lite)는 모바일, 임베디드 디바이스, IoT 기기와 같은 자원 제한적인 환경에서 머신러닝 모델을 실행할 수 있도록 구글이 개발한 경량화된 딥러닝 프레임워크이다. 일반적인 텐서플로우 모델을 작은 사이즈로 변환하고 최적화하여 성능을 높이고 메모리 사용량을 줄이는 데 초점을 맞추고 있다.

주요 기능:

  1. 모델 변환: 텐서플로우 모델을 텐서플로우 라이트 모델로 변환하는 도구를 제공합니다. 이 과정에서 양자화(Quantization)나 프루닝(Pruning) 같은 최적화 기법을 사용할 수 있다.
  2. 경량화된 추론: 텐서플로우 라이트는 최적화된 커널을 사용하여 디바이스의 CPU, GPU, 또는 특별히 설계된 하드웨어 가속기에서 효율적으로 모델을 실행한다.
  3. 크로스 플랫폼 지원: Android, iOS, 리눅스 기반의 임베디드 시스템, 마이크로컨트롤러 등 다양한 플랫폼에서 동작할 수 있다.
  4. Python API와 Interpreter: 모델을 로드하고 추론을 실행할 수 있는 Python API와 C++로 구현된 Interpreter를 제공한다.
  5. Post-training Optimization: 양자화, 프루닝 등 훈련 후 최적화를 통해 모델의 성능을 높이고, 메모리 및 CPU/GPU 자원 사용을 최소화할 수 있다.

구성하려는 모델은 위와 같으며, 하나의 어플리케이션의 입력데이터를 주어지면, 내부에서 TFLITE의 인터프리터 모델이 해당 데이터를 계산하여, 출력하는 일련의 과정을 만들어 보려고한다. 

 

이때 CNN 처리과정을 통해 간단한 손글씨 입력 (MNIST)를 추어, 그 손글씨가 무엇인지 출력하는 실습을 진행하고자 한다. 

 

추가 개념: 

1. 딥러닝과 머신러닝: 

머신러닝: 

머신러닝은 명시적으로 프로그래밍하지 않고 데이터에서 패턴을 학습하여 결정을 내리는 알고리즘과 모델을 개발하는 학문이다. 머신러닝의 기본 목표는 주어진 데이터에서 통계적 패턴을 찾아내고, 이를 기반으로 새로운 데이터에 대한 예측을 수행하는 것이다.

 

딥러닝: 

딥러닝은 머신러닝의 하위 분야로, 인공신경망(Artificial Neural Networks)을 사용하여 데이터를 학습하는 방법을 연구한다. 딥러닝의 핵심은 다층 신경망(Deep Neural Networks)으로, 많은 수의 계층(layer)을 통해 데이터의 복잡한 패턴을 학습할 수 있다. 딥러닝은 특히 대규모 데이터와 복잡한 문제에서 탁월한 성능을 보여준다.

 

 

2. CNN

CNN(Convolutional Neural Network, 합성곱 신경망)은 딥러닝의 한 종류로, 주로 이미지나 비디오 같은 시각 데이터를 처리하는 데 매우 효과적인 모델이다. CNN은 이미지의 공간적 계층 구조를 자동으로 학습하여 객체 인식, 얼굴 인식, 영상 처리와 같은 다양한 컴퓨터 비전 작업에서 뛰어난 성능을 발휘한다.

이에 대해서 뒤에 좀더 이야기할 것 같다. 

딥러닝에는 지도학습, 비지도 학습으로 나눠지고 CNN은 지도 학습의 이미지분류 기능에 속한다.