brunch

You can make anything
by writing

C.S.Lewis

by 황소흠 Nov 22. 2021

꼭 대단한 프로젝트를 하지 않아도 괜찮아

배우고, 부딪히고, 여러 방법을 시도해볼 수 있는 우메오의 학업 환경

인턴십에서 돌아온 후 학교는 익숙하고 편안했다. 

1년 동안의 인턴십을 끝내고 다시 돌아온 우메오의 첫날, 학교 전체 미팅에서 학과장님은 이렇게 말씀하셨다. "It's okay to fail. In fact, it's not even called a failure. UID (Umeå Institute of Design) is an academic environment and therefore you should focus on achieving learning goals." 인턴십을 가기 전에도 매 프로젝트가 끝날 때마다 교수님은 해당 수업의 학습 목표(learning goal)를 달성했는지, 그리고 달성하는 과정은 어땠는지를 중점적으로 평가했다. 사실 매년 각종 디자인 어워드에서 많은 상을 받는 학교에서 듣기 어색한 말이었다. 


처음에는 교수님들의 이런 말씀이 듣기 거북했다. 아무리 저렇게 말씀하셔도 나중에는 결과물의 퀄리티를 따지시는 것 아닐까? 아니면 교수님 말대로 학습 목표만 따르는 것은 너무 이상적인 것 아닐까? 그래도 디자인 어워드에서 상을 하나라도 받아야지 학교 밖에서도 실력 있는 디자이너로 인정받는 것 아닐까?라는 생각을 떨쳐낼 수 없었다. 


이런 불안감과 초조함 때문인지 첫 1년간 진행한 프로젝트들은 모두 스스로 생각하기에 완성도가 높았고 포트폴리오에 넣어도 어색하지 않았다. 그리고 1년 동안의 인턴십 후에 우메오에서 듣는 첫 수업에서 나는 처음으로 "학습 목표 달성"에만 충실한 프로젝트를 했고, 포트폴리오에는 들어갈만한 퀄리티는 아니지만 그 어떤 결과물보다 만족스러웠다. 




첫 수업: 머신러닝과 딥러닝을 사용하는 인터랙션 디자이너가 되어보기 

이번 수업은 인터랙션 디자이너로서 다양한 프로토타입핑 기법에 대해 배우는 수업으로 일주일 동안 머신러닝과 딥러닝을 활용한 프로젝트를 진행했다. 디자이너가 프로토타입 수준으로 구현할 수 있도록 p5.js, Teachable Machine, Runway 등 다양한 툴을 활용했고, 이는 개발자 수준의 완벽한 코딩을 요구하지는 않았지만 구현하는 프로젝트 성격에 따라 데이터 활용 혹은 알고리즘에 대한 이해와 기본적인 코딩은 필요했다. 첫 이틀은 교수님과 함께 프로토타입핑 툴을 배웠다면, 나머지 이틀은 2인 1조로 머신러닝이나 딥러닝을 활용한 서비스를 구현하고 나머지 하루는 프로젝트를 발표하고 서로 피드백을 받는 스케줄이었다. 


나는 다른 친구와 함께 지도를 머신러닝 혹은 딥러닝 모델에 넣어보기로 했다. 특별한 이유는 없었고 우리 둘 다 지도가 갖고 있는 시각적인 부분과 이를 설계하기 위한 논리, 그리고 사용성을 고려한 부분이 매력적으로 다가왔기 때문이다. 또한, 이 지도를 통해 수백 년 동안 인류가 구축한 도시의 모습과 AI가 디자인한 도시의 모습은 어떻게 다를지 막연하게 궁금했고 실제로 AI-Cartography에 관련한 몇몇 프로젝트에 영감을 받기도 했다. 하지만 놀랍게도 Style-GAN에 넣어본 구글 맵의 스크린샷은 우리가 상상했던 것과 너무 달랐다. 구글 맵의 지도는 길, 공원, 강 등 지형에 따라 색상이 너무 다양했고, 지하철 역, 길 혹은 동네에 붙는 텍스트도 모두 다양했기 때문에 Style-GAN이 이 모든 것을 이해하려면 방대한 데이터가 필요했다. 

Runway를 사용해서 Style-Gan에 구글맵의 스크린샷을 넣은 결과

그래서 생각한 두 번째 방법은 크롤링이었다. 파이선에서 셀레니움을 활용하여 자동으로 스크린샷을 찍을 수 있는 코드만 있으면 데이터는 모두 구해지고 이를 알고리즘에 넣기만 하면 되는 것이었다. 학부생 때 얕게 공부했던 파이선과 주피터 노트북을 켜서 수없이 구글링을 시도한 결과, 끙끙되면서 크롤링 코드를 구현했지만, 정작 이 코드로 구글 맵에서 텍스트 제거 필터를 적용한 스크린샷을 찍을 수 없었다. 텍스트 제거 필터를 적용하기 전과 후의 웹 사이트 주소가 똑같았기 때문에 셀리니움 코드가 필터가 적용된 지도를 인식하지 못했기 때문이다. 

구글 맵에서 텍스트 제거 필터를 적용한 모습

물론 여기서 포기하지 않고 온갖 방법을 동원해서 완벽한 크롤링을 위한 파이선 코드를 만들어 약 3,000개의 스크린샷을 만든 후, Style-GAN 모델을 돌리면 유의미한 결과가 조금이라도 나올 수 있었을 것이다. 하지만 점점 나는 내가 파이선과 크롤링의 기초를 배우고 있는 컴퓨터공학의 학부생인가?라는 의문이 들었고, 이 수업의 목표는 머신러닝/딥러닝의 프로토타입을 만들어보는 것이지, 완성도가 높은 머신러닝 프로젝트를 하는 것이 아니라는 점을 깨달았다. 




마감일 하루 전에 프로젝트는 다시 원점으로 

우리는 프로젝트 마감일이 하루 남은 시점에서 다시 처음부터 돌아갔다. 더 이상 데이터 수집에 많은 시간과 노력을 투자할 수 없었기에 Kaggle에 올라와있는 이미지 데이터 리스트를 훑어보기 시작했다. 이미지 데이터 수집에 2-3일을 투자한 결과, 바로 사용할 수 있는 정제된 데이터가 있다면 머신러닝 모델을 사용하기 훨씬 수월하다는 점을 배웠기 때문이다. 그러던 중 "Biggest gender/face recognition dataset"라는 여자와 남자 얼굴에 대한 이미지 데이터를 목록에서 찾았고, 이를 보자마자 "잠깐, 네가 이 사람이 여자인지 남자인지 어떻게 알아?"라는 생각이 문득 들었다. 특히 최근 패션과 뷰티업계에서 이슈가 되고 있는 "젠더리스" 트렌드를 생각했을 때, 성별이 단순 외모 하나만으로 평가할 수 있는 분야일지 Object Detection 모델을 사용해서 한 번 확인해보고 싶었다. 꼭 유의미한 결과를 도출해서 남성과 여성을 얼굴 사진으로만 평가할 수 없을지라도, 이 시도 자체로 사람들에게 외모와 성별에 대한 궁금증을 던지고 싶었다. 


단 하루밖에 시간이 남지 않았지만, 프로젝트 목표와 범위가 정해졌으니 빨리 실행에 옮겼다. models.com 웹 사이트에 등록되어 있는 모델들의 프로필 사진을 사용해서 여성, 남성 그리고 젠더리스 (non-binary) 모델들의 프로필 사진을 캡처한 이미지 데이터로 모델을 훈련시켰다. 데이터 자체는 객관적인 지표이지만 이를 어떻게 해석하는지에 따라 개인의 주관이 들어갈 수 있는 점을 알고 있었기에 데이터 수집에 조금은 객관적인 기준이 있기를 바랐다. 다행히도 models.com에 모델들이 자기 스스로를 등록할 때 여성, 남성 그리고 젠더리스 중에서 고르는 칸이 있어고, 이것을 기준으로 모델들의 성별을 구분했다. 

models.com에서 스크린샷 한 모델 사진을 Runway에서 알고리즘을 학습하는 과정

하지만 결국 알고리즘 학습에 사용된 300개의 데이터는 얼굴 사진이었기 때문에 이 적은 양의 데이터로만 얼굴의 미세한 차이를 식별하기에는 너무 어려웠다. (교수님이 주신 피드백 중 하나는 사람의 얼굴에는 미세하게 고려해야 될 변수가 너무 많기 때문에 사실 해당 사진이 사람의 얼굴이라고 판단하는 것조차도 충분히 어렵다는 점이었다.) 또한, 모델의 프로필 사진이었기 때문에 옷 스타일링, 화장법, 사진 편집 기법 등 AI가 고려해야 될 요소가 너무 많았다. 결국 알고리즘은 어떤 실제로 남자인 모델 보고 여자라고 하기도 했고, 나의 얼굴을 보고 1초는 젠더리스 (non-binary)라고 하다가 바로 여자라고 결과를 바꾸기도 했다. 

학습한 알고리즘은 결국 결과가 유의미하지 않았다

물론 300개라는 작은 표본 집단이었기 때문에 일관된 결과를 예측할 수 있는 모델이 나오지는 않았지만, 그 대신 나는 인터랙션 디자이너로서 머신러닝을 활용한 프로토타입핑을 경험함과 동시에 데이터를 수집하고 모델을 학습시키는 일련의 과정을 스스로 겪어볼 수 있었다. 인터랙션 디자이너가 개발자가 해야 될 일을 한다고 생각할 수 있지만, 실제 프로젝트에서 디자이너가 이렇게 프로토타입을 만드는 과정을 먼저 거친다면 개발 단계에서 어떤 데이터를 얼마큼 수집해야 되는지 미리 알 수 있을 것이다. 




사실 프로젝트의 끝은 크게 유의미한 결과이지 않았다

프로젝트의 결과물만 봤을 때는 크게 유의미하지 않았다. 대단한 결과를 낸 것도 아니었고, 비주얼적으로 완성도가 높은 것도 아니었다. 그렇지만 처음부터 젠더리스 (non-binary) 모델을 완벽하게 구분할 수 있는 모델을 바란 것도 아니었고, (실제로 성별이라는 기준 자체도 스스로 정의하는 것이지 외모 하나만으로 결정지을 수 있는 부분이 아니라고 생각한다.) 오히려 머신러닝과 딥러닝 세계에서 디자이너로서 이것저것 여러 시도를 해봐서 더 의미 있는 프로젝트였다. 

훈련한 알고리즘이 Runway 사이트에 업로드된 모습

한 가지 아쉬운 점이라면 더욱 유의미한 AI 모델을 만들기 위해 다른 이미지 데이터를 활용하던가, 다른 알고리즘을 활용해봤다면 프로젝트의 완성도가 더 높아졌을지도 모른다. 그리고 조금 더 완성도 높은 모델이 나온다면 그것을 웹 사이트에 띄워서 사람들이 직접 사용해보고 성별과 AI에 대해 질문을 던질 수 있는 서비스를 만들어 봤으면 더 좋았을 것이다. 하지만 수업의 가장 중요한 학습 목표는 머신러닝을 활용한 서비스를 설계해보고, 이를 위한 프로토타입을 만들어보는 것이었다. 그리고 나는 그 목표를 여러 번의 시행착오 끝에 달성했기에 완성도와 별도로 학습 환경인 학교 내에서 이런 경험을 할 수 있어서 만족스러웠다. 이 프로젝트는 포트폴리오에 절대 업로드할 수 없겠지만, 드디어 석사 2년 차에 교수님의 말씀을 이해할 수 있었다.

매거진의 이전글 스웨덴 우메오에서 인터랙션 디자인 공부하기 - (2)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari