거대사를 통괄하는 산업혁명 클래스
자 그럼 이번엔 여러분이 직접 머신 러닝을 손쉽게 실습해볼 수 있는 좋은 툴을 소개해볼까 해요. 바로 구글이 오픈한 ‘티처블 머신(Teachable Machine)’인데요. 티처블 머신은 공부하기도 어렵고 가르치기도 까다로운 머신러닝을 PC를 사용할 수 있는 사람이라면 누구라도 쉽게 배우고 활용할 수 있도록 해주는 학습 도구입니다. 특히 단순한 학습 도구에 머물지 않고 프로젝트 과정에서 생성한 학습 모델을 다양한 방법과 용도로 활용하는 것도 가능하지요. 저는 9살 딸과 종종 티처블 머신을 이용해 놀이 시간을 보내는데요. 직관적이고 쉬운 인터페이스가 아이들에게도 금방 익숙해져 재미를 붙일 수 있으니 가족과 꼭 같이 해보시기를 추천 드립니다.
티처블 머신은 이미지뿐만 아니라, 소리와 자세(poses) 인식과 학습 기능을 갖추고 있는데 인공지능이나 머신 러닝에 대한 사전 지식과 코딩 능력이 없어도, 누구나 티처블 머신을 활용할 수 있어요. 티처블 머신은 웹 기반으로 동작하기 때문에, 별도로 프로그램을 설치할 필요 없이 웹 페이지에서 바로 실행됩니다. 웹 페이지에 접속한 후 이미지, 오디오, 자세 세 가지 프로젝트에서 원하는 메뉴를 선택하고 실습해 볼 수 있습니다.
프로젝트는 샘플 수집, 학습(Training), 프리뷰(Preview) 과정으로 이뤄져 있습니다. 예를 들어 이미지 프로젝트를 선택했다면 클래스로 항목에서 먼저 샘플 이미지를 추가해야 합니다. 샘플 이미지는 PC나 노트북에 연결된 웹캠으로 촬영하거나 이미 가지고 있는 사진을 업로드 하는 방식입니다. 이미지 파일은 직접 폴더를 열어 선택하거나, 드래그 앤드 드롭으로 가져올 수도 있고, 구글 드라이브에 저장된 사진을 추가할 수 있지요. 저 같은 경우에는 클래스1에는 제 얼굴을 웹캠으로 여러 각도에서 100여장 찍어 학습시켰고, 클래스2에는 딸의 얼굴을 역시 100여장 찍어서 그 둘을 비교하며 컴퓨터가 얼마나 정확하게 맞추는지 실험해 봤습니다. 거의 정확도 100%에 이르는 놀라운 결과를 보여줬죠.
새로운 클래스는 '클래스 추가(Adds class)' 버튼을 마우스로 클릭하면 추가할 수 있습니다. 하나의 클래스에는 여러 장의 이미지를 등록할 수 있고, 최소한 2개 이상의 클래스에 이미지를 업로드 해야 합니다. 클래스는 일종의 카테고리 또는 이름으로 이해하면 된는데 클래스 이름은 연필 모양의 아이콘을 선택한 후 ‘장미’, ‘국화’, ‘제인’, ‘스티브’처럼 이름을 입력하고 변경하면 됩니다. 학습 버튼을 누르면 이렇게 수집 또는 전송한 샘플 이미지를 학습합니다. 이렇게 만들어진 학습 모델은 프리뷰 기능을 이용해, 바로 다른 이미지와 비교하거나 익스포트 모델(Export Model) 메뉴를 이용해, 텐서플로(Tensorflow.js/Tensorflow/Tensorflow Lite)로 내보내거나 다운로드받을 수 있지요.
예를 들어 프리뷰 모드로 활용한다면 웹캠으로 촬영한 이미지나 파일로 업로드란 사진을 분석한 후, 앞에서 학습한 모델과 가장 유사한 클래스로 분류해서 보여주기도 합니다.
자세 프로젝트도 이미지 프로젝트 생성과 동일한 과정을 거칩니다. 오디오 프로젝트의 경우는 먼저 배경 잡음(Background Noise) 샘플을 등록하고, 샘플로 사용한 오디오를 마이크를 통해 직접 녹음하거나 녹음 파일을 업로드 하면 됩니다. 자세와 오디오 프로젝트 역시 샘플 데이터를 업로드한 후에는 학습 과정을 거치고, 학습 모델이 완성되면 이를 프리뷰 모드로 활용하거나 파일로 내보낼 수 있게 되죠.
이렇게 생성한 머신러닝 모델을 구동할 때는 오픈소스 라이브러리인 텐서플로(Tensorflow.js)를 이용하며, 파일 내보내기 기능을 활용해 웹 사이트나 앱에서 사용할 수 있습니다. 프로젝트를 구글 드라이브에 저장해 두고 학습이나 활용하는 것도 가능합니다. 또한 샘플 수집, 학습, 파일 내보기에 대한 동영상 가이드와 FAQ 등을 웹 페이지 메뉴에서 제공하니 구글의 공유정신은 참 놀랍습니다. 구글 크리에이티브 랩(Google Creative Lab)의 엔지니어인 카일 필립스는 구글 공식 블로그를 통해 밝히기도 했답니다.
“우리는 티처블 머신을 유용한 도구로 만드는 방법을 찾기 위해 모든 종류의 교육자, 예술가, 학생 등과 협력했다. 하지만 티처블 머신은 단지 가르치는 용도로 사용하는 것은 아니다. 접근성 기술 전문가인 스티브 살링은 언어 장애가 있는 사람들의 의사소통을 향상시키는데 티처블 머신을 사용했다. 티처블 머신은 모든 사람이 빠르고 쉽게 머신 러닝에 액세스 할 수 있는 웹 기반 도구다”
티처블 머신은 머신러닝 학습 도구지만, 유튜브를 통해 실생활에서 사용하는 동영상도 공개했는데요. 공개된 동영상에서는 종이컵과 플라스틱 페트병의 구별, 반려동물을 포함한 가족들의 얼굴 인식, 다양한 품종의 장미 이미지에 대한 학습, 장애인을 위한 의사소통 도구 등으로 활용할 수 있다고 밝히고 있습니다.
프로젝트로 만들어진 모델을 물리적인 컴퓨팅 도구와 연동하면, 색상에 따라 사탕을 분류하거나, 집에서 기르는 반려동물을 인식해 자동으로 문을 열어주는 용도로 활용하는 것도 가능하지요. 저도 비슷한 아이디어가 있는데 티처블 머신과 아두이노를 잘 융합하면 안면 인식 기술을 활용해 집 현관의 개폐장치를 직접 개선해 볼 수도 있겠다는 생각입니다. 물론 그 시도 자체가 게으름을 이기고 가능하게 될 것인가가 가장 큰 난제이긴 합니다만.(웃음)
또 다른 재미있는 실험 도구도 있습니다. 퀵, 드로우!(Quick, Draw!)’라는 구글이 개발한 온라인 그림 맞추기 게임의 하나인데요. 플레이어가 제시된 단어를 보고 20초 안에 사물이나 개념에 대한 그림을 그리면 인공신경망 인공지능을 사용하여 해당 낙서가 표현한 바를 추측하게 됩니다. AI는 각 낙서에서 학습을 통해 더 정확히 맞추는 능력을 키워 나가게 되는 머신러닝을 추구합니다. 이 게임은 ‘A.I. Experiments’라는 이름의 프로젝트의 일환으로서 AI 기반으로 구글이 만든 수많은 단순한 프로젝트들 가운데 하나입니다. 저도 제 아이와 가끔 이 게임을 하는데 늘 지기 마련입니다. 어른의 굳어버린 편견에 비춰 아이의 순수한 직관과 창의성이 더 뛰어나다는 반증일까요?(웃음)