Teachable Machine 이란?
Teachable Machine은 누구나 머신러닝 모델을 쉽고 빠르고 간단하게 만들 수 있도록 제작된 웹 기반 도구이다.
특별한 전문지식이나 코딩 능력 필요 없이 머신러닝 모델을 간단히 만들 수 있다.
티처블머신이란, 누구나 쉽고 간단하게 나만의 머신러닝 모델을 만들 수 있도록 구글에서 제공하는 웹 기반 도구를 말한다. 티처블머신은 컴퓨터의 웹캠이나 마이크를 활용해 별도의 머신러닝 코드를 작성하지 않아도 이미지, 사운드, 포즈를 인식하여 구별할 수 있도록 학습시킬 수 있다. 티처블머신을 학습시키기 위해서는 먼저 학습시키고자 하는 데이터를 컴퓨터에게 클래스 또는 카테고리로 그룹화 하여 입력해준다. 이후 수집된 자료로 모델을 학습시킨 후 올바르게 학습했는지 테스트한다. 이렇게 만들어진 모델은 다운로드하거나 온라인 상에 업로더를 통해 인공지능 코딩 로봇의 다양한 인공지능 코딩 교육에 활용할 수 있다.
Teachable Machine을 활용하여 머신러닝 모델 만들기
쿠로미, 하츄핑 이미지 분류 모델
[직접 코딩을 할 경우]
기존에 CNN 딥러닝을 가지고 하츄핑과 쿠로미 이미지를 분류하는 머신러닝 모델을 만드는 프로젝트를 진행하고 있었다.
해당 프로젝트를 진행할 때에는
1) 훈련에 쓰일 대량 이미지를 모은다
2) 이미지 전처리
3) 이미지에 라벨링을 해준다
4) CNN 알고리즘 코딩
5) 학습
6) 훈련 및 검증의 반복
등의 작업을 거쳐야 했고, 이는 매우 오랜 시간이 걸린다.
이미지를 수집하는 작업은 웹 스크래핑으로 비교적 간단히 진행할 수 있으나, 지도학습인 분류에 사용될 이미지는 대량이어야 모델의 정확도가 높아지기 때문에 최대한 많은 이미지를 수집해야 한다.
그렇게되면 라벨링 작업(이미지를 분류하고 이름을 붙여주는 작업)에 많은 시간이 소요되는 것은 당연한 수순이다.
또한, 코딩을 짜는 것도 쉽지 않고, 그렇게 짠 코드를 가지고 모델을 점진적으로 반복 학습 시키는 작업도 오랜 시간이 걸릴 것이다.
필자는 이 작업을 진행하다가 중단하였다. (주피터 노트북으로 실행하는데 kernel 이 죽었다는 에러를 계속 받음)
아무튼, 이런 다소 복잡한 작업을 Teachable Machine을 활용하면 아주아주 간단히 할 수 있다.
◆ 먼저 Teachable Machine 홈페이지에 접속
◆ '시작하기' 버튼을 클릭하고, '이미지 프로젝트'를 클릭.
◆ '표준 이미지 모델' 클릭
하단의 이미지를 보면 알 수 있겠지만, 이미지 전처리 때는 보통 resize를 통해 이미지를 일괄적으로 224 * 224 픽셀로 맞추는 듯 하다.
[이미지 전처리 시 이미지의 크기를 224x224 픽셀로 바꾸는 이유]
이미지 전처리 시 이미지의 크기를 224x224 픽셀로 바꾸는 이유는 주로 사전학습된 딥러닝 모델들이 해당 크기의 이미지를 입력으로 받도록 설계되어 있기 때문이다.
- 표준화: 다양한 딥러닝 모델(예: VGG16, ResNet 등)이 훈련 시 224x224 크기의 이미지를 사용한다. 이 크기로 통일하면 여러 모델과 일관된 성능을 비교할 수 있다.
- 모델 호환성: 사전학습된 모델들은 이미 224x224 크기의 이미지를 처리하도록 설정되어 있으므로, 이 크기를 사용하지 않으면 모델이 이미지를 처리하지 못하거나 성능 저하가 발생할 수 있다.
- 메모리 절약: 너무 큰 이미지를 사용하면 메모리 사용량이 커지므로, 성능과 자원 활용 간 균형을 맞추기 위해 적당한 크기로 조정하는 것이 중요하다.
◆ 클래스명 지정하기
'표준 이미지'를 클릭하면 아래와 같은 화면이 나오는데, 여기서 Class는 '데이터 포인트가 속할 수 있는 범주 또는 그룹' 을 뜻한다. 이 모델은 쿠로미와 하츄핑 이미지를 분류하는 모델이므로, 각 클래스명은 쿠로미와 하츄핑이 되는게 적합하다.
따라서, 각 Class 옆에 있는 펜 버튼을 클릭하여 클래스명을 변경해준다.
★ 클래스가 여러 개 일 경우에는, 하단의 '클래스 추가' 버튼을 클릭하여 클래스를 추가해주고 클래스명을 지정해주면 된다.
◆ 학습시킬 이미지 업로드
Teachable Machine은 주로 노트북이나 PC의 웹캠을 이용하여 이미지를 수집 하거나, 기존에 모아둔 이미지들을 업로드하는 방식으로 이미지를 수집 및 분류하고 있다.
이 모델에서는 기존에 모아둔 이미지들을 분류하는 것이 적합하므로, 각 클래스 별로 업로드 버튼을 눌러, 각 클래스에 맞는 이미지를 추가해주면 된다.
◆ 모델 학습 시키기
각 클래스에 수집한 이미지를 추가한 후, '모델 학습시키기' 버튼을 눌러 모델을 학습 시킨다.
학습시키는 데 약 2초 정도 밖에 안 걸렸다.
◆ 모델이 잘 생성되었는지 검증 및 평가하기
학습이 완료되면 우측의 미리보기 탭이 활성화되는데, 웹캠이 기본값으로 되어 있어 본인의 얼굴이 갑자기 나올 수 있다.
빨간색 네모칸의 화살표 부분을 눌러 'web cam' 을 '파일'로 바꿔준 후, 모델 검증 및 평가를 위해 훈련에 사용한 이미지가 아닌, 다른 이미지를 업로드해본다.
하츄핑 이미지를 올리니, 모델이 94%의 확률로 해당 이미지를 하츄핑으로 분류하고 있다.
마찬가지로, 쿠로미 이미지를 올리니, 97%의 높은 확률로 쿠로미로 분류하고 있다.
하츄핑은 33개, 쿠로미는 41개로 모델을 훈련시키기에는 비교적 적은 양의 데이터임에도 불구하고 꽤 높은 정확도를 보인다.
◆ 모델 내보내기
아래 이미지 상으로 보이는 '모델 내보내기'를 누르면, 해당 모델에 대한 코드를 볼 수 있고, 이를 다운받거나 깃허브에 공유하거나, 코드를 복사하는 등 다양한 기능을 이용할 수 있다.
기존에 혼자서 진행했을 때는 몇날 며칠이 걸리던 프로젝트가 30분도 안 되어 완료되었다.
(아마 포스팅을 하지 않고 했으면 10분도 안 걸렸을 것이다.)
다음 내용
다음 과정으로는, 해당 모델을 가지고 실제 사이트를 만들어 배포해볼 예정이다.
'[파이썬 Projects] > <파이썬 딥러닝, 신경망>' 카테고리의 다른 글
[딥러닝] Deep Learning 기본 개념 및 문제 (1) | 2024.09.25 |
---|---|
[Teachable Machine] 코딩없이 머신러닝 모델 만들기 - 2 (1) | 2024.09.24 |
[머신러닝 프레임워크] Keras vs Tensorflow vs Pytorch (0) | 2024.09.09 |
[텐서플로우 설치] X고생한 텐서플로우 import 성공기 (1) | 2024.09.07 |
[CNN 구조] 합성곱 신경망을 사용한 컴퓨터 비전 (2) | 2024.09.06 |