[TinyML] Ch. 1부터 3까지 요약

y30n9ju1v·2021년 7월 1일
0

딥러닝

목록 보기
2/2

Ch. 1 서론

이 책은 커맨드 라인 터미널, 코드 편집기를 사용해본 경험만 있다면 어떤 개발자도 임베디드 장치에서 머신러닝을 실행하는 프로젝트를 만들 수 있게 안내하는 것이 목표

TinyML의 예

  • 오디오(픽셀의 Music IQ)
  • 데이터 기반 유지보수(PsiKick 등)
  • 영상처리(퀄컴의 Glance 카메라 모듈)

TinyML은 에너지 비용이 1mW 미만의 하드웨어 플랫폼으로 정의
1mW는 코인 배터리로 1년의 수명을 유지할 수 있다는 의미

임베디드 장치는 제한된 HW/SW 자원으로만 구동됨
수백 킬로바이트의 RAM, 수십 메가헤르츠에 불과한 클록 속도, 불가능한 리눅스 구동(최소 1MB의 RAM과 메모리 컨트롤러가 필요), 운영체제가 있다 해도 POSIX 또는 표준 C 라이브러리 기능 일부 또는 전부를 제공하지 못함

Ch. 2 시작하기

TinyML 프로젝트를 구축하려면 머신러닝과 임베디드 소프트웨어 개발에 대해 어느 정도 알아야 하는데 양쪽을 모두 잘 아는 전문가는 거의 없어 이 책은 독자가 머신러닝과 임베디드 개발에 관한 배경 지식이 없다 가정하고 씀
이 책에서 사용한 HW는 15달러짜리 스파크펀 에지보드
이 책에서 사용한 SW는 마이크로컨트롤러용 텐서플로 라이트 프레임워크를 기반으로 하는데 이것은 텐서플로 라이트 프레임워크를 수십 킬로바이트의 메모리만 사용 가능한 임베디드 장치에서 실행되도록 변형한 것

Ch. 3 머신러닝 빠르게 훑어보기

머신러닝은 컴퓨터를 사용하여 과거 관측치에 따라 사물을 예측하는 기술
일반적인 소프트웨어는 입력을 받고 다양한 규칙을 적용하며 출력을 반환하는 알고리즘을 프로그래머가 설계
머신러닝 프로그램을 만들기 위해 프로그래머는 데이터를 특수한 종류의 알고리즘에 공급하고 알고리즘이 규칙을 스스로 찾게 하는데 이는 프로그래머가 복잡한 데이터를 모두 이해하지 않고도 복잡한 데이터를 기반으로 예측하는 프로그램을 만들 수 있음을 의미
머신러닝 알고리즘은 훈련이라는 과정을 통해 알고리즘에 제공한 데이터를 기반으로 시스템의 모델을 구축하고 모델이 완성되면 여기에 새로운 데이터를 공급하여 예측을 수행하는데 이 과정을 추론이라 함

딥러닝 모델을 구축하는데 다음과 같은 과정이 포함됨

  1. 목표 설정
    공장 기계의 고장 여부를 예측할 것이라면 이러한 과제는 분류(classification) 문제의 일종으로 볼 수 있음

  2. 데이터셋 수집
    가장 관련성이 높은 데이터로 많은 시계열 데이터가 필요하며 정상, 비정상을 작동을 나타내는 데이터를 결정해야 하는데 이를 레이블링이라 함

  3. 모델 아키텍처 설계
    아키텍처를 결정할 때는 해결하려는 문제의 유형, 접근할 수 있는 데이터의 유형, 데이터를 모델에 공급하기 전에 해당 데이터를 변환할 수 있는 방법을 고려해야 함
    딥러닝 모델은 텐서 형태로 입력을 받고 출력을 생성하는데 숫자나 다른 텐서를 포함할 수 있는 목록으로 배열과 비슷함

    • 스칼라 - 하나의 숫자
    • 벡터 - 배열과 비슷한 숫자 목록
    • 행렬 - 2차원 배열과 유사한 2D 텐서
    • 고차원 텐서 - 3차원 이상의 행렬

    일반적으로 신경망에 공급하는 데이터는 부동소수점 값 또는 부동소수점으로 채워진 텐서 형태
    훈련 알고리즘이 효과적으로 작동하려면 이러한 부동소수점 값의 크기가 서로 비슷해야 하는데 가장 이상적인 것은 모든 값이 0과 1 사이에 있는 것

  4. 모델 훈련
    훈련은 모델이 주어진 입력 세트로 올바른 출력을 생성하는 방법을 배우는 과정
    모델이란 시뮬레이션된 뉴런의 네트워크인데 이는 여러 레이어에 걸친 숫자 배열로 표현됨
    모델이 정확한 예측을 하기 시작한 시점부터는 모델이 수렴(converge)했다고 표현함
    이때 확인하는 일반적인 성능 지표 두가지가 손실(loss)과 정확도(accuracy)임
    가중치나 편향 또는 통칭하여 네트워크의 파라미터라 함
    모델이 수렴하지 못하는 가장 일반적인 이유는 과적합과 과소적합 때문

  5. 모델 변환
    이 책에서는 텐서플로를 사용하여 모델을 빌드하고 학습하는데 이는 강력한 데스크톱 컴퓨터와 서버에서 모델을 실행하도록 설계되었기 때문에 그에 맞는 인터프리터가 필요함
    텐서플로 모델을 텐서플로 라이트로 변환해서 사용할 것임

  6. 추론 실행
    마이크로 컨트롤러용 텐서플로 라이트 C++ 라이브러리를 사용하여 모델을 예측하고 수행함

  7. 평가와 문제 해결
    모델이 프로덕션 환경에서 잘 작동하지 않는다면 모델 데이터에 영향을 줄 수 있는 하드웨어 문제(예: 센서 결함 또는 예기치 않는 노이즈)를 배제하고 모델이 배포된 장치에서 일부 데이터를 받아서 원래 데이터셋과 비교하고 동일한 환경인지 확인해야 함
    하드웨어 문제가 아닐 경우 더 많은 데이터를 훈련에 투입해야 하는데 이 과정에서 일반화, 데이터 증식 기술을 적용하면 보유한 데이터를 최대한 활용할 수 있음

0개의 댓글