바로가기 메뉴
본문 바로가기
대메뉴 바로가기

TECH M

창작자를 위한 인공지능 공부법

2017-05-01민세희 데이터 시각화 아티스트

 


[테크M = 민세희 데이터 시각화 아티스트] 구글의 빅픽처그룹(Big Picture Group)은 기계학습 과정을 시각화하는 연구소다. 이 팀을 이끄는 페르난다 비에가스와 마틴 와텐버그는 데이터 시각화 분야에서 유명하기도 하지만 2016년 구글 브레인팀에 소속되면서 이전보다 적극적으로 인공지능 환경, 특히 딥러닝 알고리즘에서의 데이터 변화를 시각화하는 데 집중하고 있다.

지난해 11월 쯤, 필자 역시 기계가 학습하고 인지하는 과정을 시각화 하는 프로젝트에 참여하고 싶다는 의사를 전달했다. 몇 주후 긍정적 답변을 받고 논의를 진행하던중 마틴 와텐버그로부터 안타깝지만 연구소의 방향이 바뀌어 더 이상 디자이너 출신 시각화 인력이 필요하지 않다는 답변이 왔다.

이 과정을 통해 한 가지 생각은 분명해졌다. 더 이상 필드에서는 디자이너 혹은 아티스트 출신으로 어느 정도 프로그래밍을 할 줄 아는 사람이 필요하지 않다는 것이다.

대신 기계학습 알고리즘을 정확히 이해하고 다룰 수 있는 숙련된 프로그래머로 예술적 감각을 갖춘 사람을 선호하는 것이 현실이다.

창작자는 인공지능 환경에서 도대체 얼마나 더 학습하고 배워야 살아남을 수 있는 것일까?

그리고 계속 도전하면 인공지능 환경에 익숙해지는 것이 가능한 것일까?

아마 이런 고민은 컴퓨터 환경에서 창작을 하는 사람들이라면 모두 어느정도 갖고 있을 듯하다. 그리고 인공지능 환경에서 그 고민은 더 커질 수밖에 없다. 그만큼 진입 장벽이 높기 때문이다.

2016년 아트센터 나비가 개최한 ‘AI와 휴머니티 : 아직도 인간이 필요한 이유’ 참가 작가인 진 코겐(Gene Kogan)이 3시간 정도의 워크숍을 진행했다.

참가자들에게는 원활한 진행을 위해 사전에 몇 가지 라이브러리를 미리 설치해 올 것을 주문했다. 워크숍에서 다룰 내용이 컨볼루션 뉴럴 네트워크 실험부터 T-SNE 알고리즘을 이용한 데이터 시각화까지 다소 많은 양이었기 때문에 가능한 모두가 환경설정을 미리 맞춰올 것을 당부했다.

현실은 5명 남짓의 참가자만 사전 설치를 해왔으며 그 외의 사람들은 워크숍에 와서 도움을 받아 설치할 수밖에 없었다.

이 분야에 관심은 있으나 익숙하지 않은 사람들에게는 라이브러리 설치조차 장벽이었던 것이다. 결국 워크숍은 기획했던 내용을 다 소화하지 못했고 진 코겐이 미리 준비해온 파이썬 파일을 돌려보는 것으로 마무리됐다.

물론 이 정도만 해도 만족하는 사람도 있었을 것이고, 이제 어떻게 시작해야 하는지를 경험한 사람도 있을 것이다.

하지만 대부분은 기술 환경, 인공지능 환경의 알고리즘에 대해서 자신 앞에 놓인 커다란 벽을 마주했을 것이고 우리 모두가 살아남을 수는 없을 것이라는 사실을 어렴풋이는 인지했을 것이다.

기술의 장벽은 점점 높아져만 가고, 소수의 사람만 그 벽을 넘고 있기 때문이다.

그럼에도 불구하고 온갖 난관과 장애물을 이겨내고 창작자 스스로 기술의 장벽을 넘고자 한다면 방법이 아예 없는 것은 아니다. 시간과 끈기만 있다면 누구나 스스로 학습할 수 있는 정보와 자료를 손쉽게 얻을 수 있다는 것 또한 지금 우리가 갖고 있는 기술의 혜택이기도 하니까 말이다.


머신러닝과 친해지기

딥러닝에 깊게 빠지고 싶지는 않지만 머신러닝 환경을 창작에 당장 사용하고 싶다면 레베카 피브링크(Rebecca Fiebrink)가 개발한 ‘위키네이터’(http://www.wekinator.org)를 사용해 보는 것도 좋다.

위키네이터는 2009년 처음 개발돼 오픈소스로 제공되고 있다. 제스처 센싱, 컴퓨터 비전 등 사용자 데이터를 기계학습 알고리즘에 적용해 원하는 창작물을 빠르게 만들어 낼 수 있다. 모델링을 할 수 있는 사용자 인터페이스(UI)가 제공되기 때문에 알고리즘 자체를 직접 제어하거나 설계할 필요 없이 손쉽게 모델을 만들고 사용할 수 있다는 장점이 있다.

위키네이터 소프트웨어를 사용하면 당장은 딥러닝 알고리즘에 대한 정확한 이해 없이 사용자의 입력 데이터에 따라 기계를 학습시키고 모델을 만들어 이를 창작물에 적용할 수 있다.

하지만 그 뒤의 상황들, 정확히 어떻게 데이터들이 어떻게 학습되고 있는지를 알 수 없기 때문에 그만큼의 확장성을 기대하기는 어렵다.

만약 본인이 프로그래밍에 관심이 있고 알고리즘을 이해하는 것에 두려움이 없다면 시간이 좀 걸리더라도 직접 해보길 권한다. 능력 있는 프로그래머와 협업을 해도 좋겠지만 협업을 하더라도 본인의 이해도가 어느 정도냐에 따라서 결과물도 달라지기 마련이다.

 

모델을 만들기 위해 동작을 입력하고(위), 원하는 소리를 동작과 매치해서(가운데) 동작을 이용해 연주할 수 있다.(아래) [출처: 위키네이터 (http://www.wekinator.org)]

 

위키네이터처럼 인터페이스를 제공하는 소프트웨어를 넘어서 직접 기계학습 알고리즘을 다뤄보고 싶다면 앞서 소개한 진 코겐의 ‘아티스트를 위한 머신러닝’(https://ml4a.github.io)을 추천한다. 깃허브와 유튜브에 공개된 그의 수업 자료는 양이 풍부할 뿐만 아니라 기계학습의 개념, 인공신경망의 구조, 데이터의 변화를 직접 시각화할 수 있는 T-SNE를 다뤄볼 수 있도록 했다.

또 진 코겐이 직접 강의했던 뉴욕대(NYU)의 ITP프로그램 수업내용 역시 온라인에서 영상으로 접할 수 있을 뿐만 아리나 다양한 알고리즘에 대한 이해, 구글의 딥드림(deepDream)과 스타일트랜스퍼(styleTransfer)에 대한 설명 역시 살펴볼 수 있다.

진 코겐의 학습 자료의 특징은 바로 아티스트가 스스로 학습했던 방법을 가르쳐준다는 것이다.

교육자가 진행하는 강의는 체계적인 접근이라는 장점이 있지만 실행적인 면에서는 다소 차이가 날 수 있다. 진 코겐의 경우에는 자신의 작업을 하면서 얻은 노하우나 지식을 공유해 주고 있기 때문에 보다 생생한 자료가 될 수 있다. 하지만 기계학습의 일반적인 접근이 아닌 아티스트의 성향에 편향되는 부분도 있다.

보다 광범위한 일반적인 학습이 필요하다면 온라인 교육 프로그램을 단계별로 따라가 보는 것도 방법이다.

창작자들을 위한 온라인 학습 서비스 중 ‘카덴제’(www.kadenze.com)는 웹프로그래밍, 하드웨어 프로그래밍, 컴퓨테이션 크리에티비티에 중점을 두고 다양한 프로그램을 제공한다.

 

진 코겐이 강의했던 뉴욕대 ITP프로그램(위)과 밀란오픈닷랩에서의 수업내용(아래)은 진 코겐의 ‘아티스트를 위한 머신런닝’에서 온라인 영상으로 접할 수 있다. [출처: 아티스트를 위한 머신러닝 (https://ml4a.github.io)]

 

그 중 ‘텐서플로를 이용한 기계학습의 창작적 소프트웨어(Creative Application of Deep Learning with TensorFlow)’라는 프로그램이 유익하다.

카덴제의 코스에서는 기계학습의 기초에 대한 이야기부터 시작해 텐서플로를 설명하고 있다. 특히 다른 기계학습 코스와는 다르게 이미지를 입력 데이터로 사용해 평균, 분산, 표준편차 등을 이미지로 만들어 예시로 들고 있기 때문에 창작자에게는 한층 더 이해가 쉬울 수 있다.

 

카덴제의 코스 중 ‘텐서플로를 이용한 기계학습의 창작적 소프트웨어’ [출처: 카덴제 (www.kadenze.com)]

 

예를 들어 행렬 연산 대신 이미지 100장의 평균 이미지, 표준 편차 이미지를 직접 보여줌으로써 시각적으로 이해를 돕는 부분이 크다. 또 코스의 특징은 온라인 강의와 설명을 포함하고 있는 자료, 스스로 문제를 풀 수 있도록 하는 세션을 함께 제공하고 있는데 아마 텐서플로 온라인 강의 중 창작적 접근을 시도한 것은 이 수업이 유일하지 않을까 한다.

 

>>>

컴퓨테이션 아트나 알고리즘 아트를 시도하려는 창작자들이

직접 프로그래밍을 하는 문턱에서 할 수 있는 사람들과 아닌 사람들로 나눠졌다.

이제는 인공지능 환경에서 또 한 번 걸러짐이 생길 듯하다. 따라가는 자와 멈추는 자들 말이다.


나만의 학습망을 만들자

이처럼 기계학습을 직접 다뤄 보면 이해의 깊이는 분명 더해진다. 하지만 많은 창작자의 발목을 잡는 지점은 수식에 대한 이해, 바로 수학적 지식에 대한 부족함이다. 기계학습을 제대로 이해하려면 행렬연산, 마르코프 연쇄(Markovian Chain), 고유벡터, 정보이론, 통계, 확률 등 창작에서 다루지 않는 수학에 대한 이해가 많이 필요하다. 대부분의 창작자에겐 아마 가장 어렵고 힘든 지점이 아닐까 한다.

수학적 이해도를 높이기 위한 특별한 방법은 없다. 그렇다고 수학을 학교에서 배우듯이 하나씩 하나씩 배우기에는 필요한 양이나 분야가 어마어마하게 넓고 많다. 차라리 그때그때 모르는 부분을 검색해 이해하는 것이 도움이 될 것이다.

인터넷에서 찾을 수 있는 많은 자료들 중에서 ‘칸아카데미’(https://www.khanacademy.org)의 코스는 수학적 이해를 높이는데 아주 유용하다. 칸아카데미에서는 특정 주제에 관해 단계적으로 설명하기 때문에 영상을 보면서 이해하기가 쉬울 뿐더러 대부분의 영상이 10~20분 내외의 짧은 분량이라 자투리 시간에 필요한 부분만 선별해 가볍게 보기 편하다.

 

칸 아카데미(Khanacademy)는 수학적 이해를 돕기 위한 동영상 서비스를 제공한다. [출처: 칸 아카데미 (www.khanacademy.org)]

 

처음 기계학습을 접했을 땐 다들 추천했던 코세라의 앤드류 응 수업을 따라해 봤다. 그때는 기계학습에서 많이 쓰는 용어 자체도 제대로 이해 못할 때였고 ‘num.py’같은 라이브러리는 처음 사용해 보는 것이라 3주차에서 아쉽게도 멈춰 버렸다.

특히 컴퓨터공학에서 다루는 코스들은 모두 수치 데이터로 시작하기 때문에 정확하게 어떻게 계산되는지조차 눈에 잡히지 않아 어려움이 컸다.

이 후 매주 모이는 스터디 모임에서 리더의 학습을 따라가면서 조금씩 알아가기 시작했고 개별적으로는 카덴제의 수업을 따라하면서 어떻게 해서든지 극복하려 하지만 여전히 쉽지 않다.

컴퓨테이션 아트나 알고리즘 아트를 시도하려는 창작자들이 직접 프로그래밍을 하는 문턱에서 이미 할 수 있는 사람들과 아닌 사람들로 나눠졌었는데, 이제는 인공지능 환경에서 또 한 번 걸러짐이 생길 듯하다. 따라가는 자와 멈추는 자들 말이다.

창작자로써 과연 이 문턱을 넘을 수 있을지, 그래서 나만의 창작 작업에 인공지능 환경을 잘 접목해서 쓸 수 있을지는 아직까지 미지수다. 아마 많은 창작자가 허들에 걸려 멈추고 말텐데. 그리고 그 벽을 넘고자 한다

하더라도 해야 할 일이 너무 많아 작은 작업 하나를 완성하기도 전에 지칠지도 모르는 일일텐데. 그럼에도 불구하고 도전하고 싶다면 벽을 넘지는 못하더라도 적어도 그 벽 너머에는 무엇이 있는지는 알 수 있지 않을까 하는 긍정적 기대를 하고 있기는 하지만 힘든 건 사실이다.

최근에 수업을 하는 곳에서 학생 한명이 질문을 했다. 기계학습을 제대로 공부해 보고 싶은데 막상 시작하려고 하니 너무 방대한 양에 어디서부터 시작할지를 모르겠다면서 “좋은 스승을 만나서 리스크가 조금 더 적은 방향으로 공부를 하고 싶은데 어떻게 해야 하나요?”라고 물었다. 리스크가 적은 방향이라는 게 있기나 한지 모르겠다.

지금의 기술 환경에서 학습은 단계별 학습이 아니라 내게 필요한 학습 내용을 여기저기에서 찾아내고 그 정보를 연결해 거대한 나만의 학습망을 만드는 것이 아닐까. 마치 네트워크 환경이 생긴 모습 그대로 말이다. 모두가 함께 갈 수 없는 길이긴 하지만 그래도 가고자 한다면 지금부터라도 시작하자. 자신만의 학습망을 만들어 가면서.

 

<본 기사는 테크M 제48호(2017년 4월) 기사입니다>