맥오에스 내장도구로 딥러닝 학습하기. (무설치, 무코딩, 무고인물)
- 나름 역사가 제법 된, 맥용 딥러닝/머신러닝 개발도구 입니다.
- 처음엔 CoreML 이란 이름을 달고 나왔드랬죠.
- 딥러닝 알고리즘을 몰라도 학습이 가능한 하이엔드 유틸러티로 사용이 쉽고 심플합니다.
- 그림처럼 다양한 딥러닝 학습이 가능한데, 그중 우리는 가장 간단한 이미지 분류를 해 보자구요.
- 참고로 두번째 아이콘인 멀티레이블 이미지 분류기는 이미지 한장에 복수개의 레이블을 갖는 분류기를 말합니다.
- 이 짤엔 트레이닝 데이타 영역에 이미 데이타가 채워진게 보이지만, 당근 원래는 비어있습니다.
- 특이한건, 애플의 앱 답게 이미지들이 들어있는 폴더를 드래그앤 드랍 하기만 하면 학습 데이타셋 입력이 된다는 것이죠~
- 이런식으로 클래스 별로 이미지들이 들어있는 폴더들의 상위폴더(여기선 cat_dog 폴더)를 비어있는 데이타셋 박스에 드래그앤드랍하여 넣기만하면 자동으로 학습쌍, 검증쌍의 데이타가 적절한 비율로 나뉘어져 들어가게 됩니다.
- 참 쉽죠?
- 물론 원하는 파라미터를 선택하거나(데이타 증강 옵션체크) 피쳐추출기를 선택한 후에 학습을 시작해도 됩니다.
- 학습을 누르면 먼져 피쳐추출기(콘볼루셔널 신경망, Convnet)가 피쳐를 추출하게 되는데
- 이 단계에선 똘똘하게도 맥의 GPU가속(뉴럴엔진?)을 이용해 고속으로 피쳐를 추출 합니다.
- 이 과정이 딥러닝 학습에서 제일 오래걸리는 과정이죠.. 딥러닝이 딥한 이유도 피쳐추출기 때문에 깊어져서 그런거라는건 다들 아시죠?
- 파란 막대기창, 이건 맥에 유틸 폴더에 들어있는 활성상태보기 앱이 제공하는 창 이군요.
- 분류기 학습은 피쳐추출보다 더 가벼운 연산이므로 CPU를 사용해서 연산하더군요...
- 이 그래프는 25에포크만 사용했지만 에포크 크기는 앞선 옵션에서 변경이 가능합니다.
- 전체 테스트 데이타셋을 드랙앤 드랍하여 Precision, Recall과 같은 성능분석을 해 볼수도 있습니다.
- 모델 로딩 및 입출력 포맷을 명세해주기 때문에 딥러닝 추론앱 개발이 편리해지며
- Get 메뉴를 눌러서 학습모델을 다운로드 받아 딥러닝 추론용 앱개발에 활용이 가능하게 됩니다.
- 참고로 모델명은 CatDog_Classifyer.mlmodel 이런 형태가 되며 엄청나게 압축된(encoding) 형태로 저장됩니다.
요약 및 후기:
- 맥에서 CreateML 을 이용해 딥러닝모델을 학습하면
엔비댜 글카를 꼽을 필요도 없고, 리눅스같은걸 깔 필요도 없고, 파이토치 나 CUDA툴킷 같은걸 설치할 필요도없고
파이썬을 몰라도 된다.
- GPU로 딥러닝 학습중에도 맥은 뜨겁지도 않고 조용하며 전기를 적게 먹는다.
- 아이폰에서 실시간에 돌아가는 딥러닝 인식앱은 매우 가성비가 높다.
(작은 사이즈, 적은 전력, 내장 고성능 카메라, 실시간 추론속도, 무소음, 와이파이 연동)
- 참 쉽다.