웹개발자용 자바스크립트 텐서플로우(TensorFlow.js) 프로그래밍 소개 및 데모

자바스크립트 텐서플로우(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/)에서 확인 가능합니다.



댓글

Designed by JB FACTORY