자바스크립트 텐서플로우(TensorFlow.js)
머신러닝에 관심이 있지만, 초보개발자는 어디서부터 시작해야할지 막막할 때가 있습니다.
최근 머신러닝 초보자들에게 기쁜소식이 전해졌는데요.
자바스트립트기반의 TensorFlow.js가 공개되면서 앞으로는 자바스크립트로 쉽게(?) 머신러닝을 구현할 수 있게 되었습니다.
TensorFlow.js의 장점은 별도의 드라이버나 라이브러리 설치 없이 바로 개발이 가능하다는 점입니다.
특히 웹개발자들에게 쉽게 머신러닝 개발을 할 수 있는 길이 열렸다고 볼 수 있는습니다.
머신러닝의 경우 많은 컴퓨팅 파워가 필요한데 브라우저에서 그런 연산이 가능할까? 라고 생각하실 수 있는데,
놀랍게도 이 라이브러리는 GPU를 사용하기 때문에(물론 브라우저에서 지원해야함) 속도도 아주 빠릅니다.
또한, 스마트폰 브라우저에서 실행할 경우 자이로스코프나 가속도계같은 센서와 연계할 수 있기 때문에 다양한 응용프로그램 개발이 가능합니다.
TensorFlow.js의 개발 방식은 크게 세가지로 나뉩니다.
1. 기존 훈련된 모델 사용
사전에 훈련 된 기존 모델을 Import 시켜서 사용할 수 있습니다. 이전에 오프라인에서 교육 한 TensorFlow 또는 Keras 모델이있는 경우 TensorFlow.js 형식으로 변환하여 브라우저에로드 할 수 있습니다.
2. 기존 모델 재훈련
기존 훈련된 모델을 다시 트레이닝 시킬 수도 있습니다. 기존 훈련된 모델에 브라우저에서 수집된 소량의 데이터를 전송하여 학습을 시킬 수 있습니다.
3. 브라우저를 통한 학습
TensorFlow.js를 사용하여 Javascript 및 상위 수준의 레이어 API를 사용하여 브라우저에서 모델을 완전히 정의, 교육 및 실행할 수 있습니다. Keras에 익숙하다면 상위 레벨 API를 사용하시는 것이 좋습니다.
이제 자바스크립트로 작성한 브라우저 기반 머신러닝 데모를 살펴보겠습니다.
1. EMOJI SCAVENGER HUNT
이 프로그램은 정해진 시간동안 컴퓨터가 제시한 사물을 스마트폰 카메라로 인식시키는 게임입니다.
머신러닝을 게임으로 체험할 수 있기 때문에, 개발에 관심이 전혀 없는 사람들도 머신러닝을 친숙하게 느낄 수 있습니다.
2. 팩맨
두번째 데모도 '게임'인데요. 우리에게 익숙한 팩맨입니다. 일반 '팩맨'과 다른점은 키보드로 컨트롤하는 것이 아닌
고개짓으로 팩맨을 컨트롤 한다는 점입니다. 위,아래,왼쪽,오른쪽으로 고개를 돌린 상태를 카메라로 찍어서 학습 시킨후 플레이할 수 있습니다.
3. Teachable Machine
이번 데모는 컴퓨터에게 사람이 특정동작을 할 때 보여줘야하는 이미지와 사운드를 학습시키고,
이후 그 동작을 하면 컴퓨터가 정의된 동작을 하는 Teachable Machine 입니다.
4. 인공지능 피아노 연주
마지막 데모는 신경망을 통해 인공지능이 실시간으로 연주하는 피아노 입니다.
인공지능이 실시간으로 연주하는 피아노 치고는 꽤 들을만 합니다. ^^
이상 자바스크립트로 개발하는 텐서플로우(머신러닝)에 대해서 알려드렸는데요.
자세한 사항은 공식홈페이지(https://js.tensorflow.org/)에서 확인 가능합니다.