본문 바로가기

콘텐츠/강승우의 머신러닝 이야기

[강승우의 머신러닝 이야기] 딥러닝에서 활용도 높은 잠재공간을 누비자

강승우의 머신러닝 이야기] 딥러닝에서 활용도 높은 잠재공간을 누비자

강승우 위데이터랩 AI 연구소 소장

 2018년 2월 가트너는 85%의 머신러닝 프로젝트는 실패할 것이고, 이런 추세는 2022년까지 지속될 것이라 예측했다. 가트너가 예측한 바와 같이 2022년 현재, 많은 머신러닝 프로젝트는 그 가능성을 보여주면서도 실제 업무에 성공적으로 사용되는 경우는 많지 않다.

실패의 원인은 다양하겠지만 업무에 머신러닝을 적용하는 적절한 안내서나 문서가 없는 것도 그중 하나가 될 것이다. 서적이 있다해도 머신러닝 기술 중심으로 쉽게 이해하기 어렵다. 이에 필자는 이 칼럼을 통해 그동안 필자가 진행한 몇 개의 머신러닝 프로젝트의 경험을 바탕으로 업무에 머신러닝을 도입했던 과정에서 겪었던 어려웠던 점과 사용했던 해결 방안을 공유하고자 한다.

업무에 머신러닝을 도입하는 방법은 다양할 것이다. 그런데, 등산길도 다른 사람의 걸어본 길을 참고하듯이, 실제 도입한 과정을 살펴보는 것은 도움이 되리라 생각한다. 그리고, 그 위에 더 나아진 여러분 만의 방법을 찾을 수 있을 것이다.

우선 칼럼 처음의 이야기는 활용도가 높은 잠재공간(Latent Space)에 대해서 이야기 해보겠다.

딥러닝은 이미지와 음성 등 비정형 데이터에 대한 새로운 해석을 더하고 활용도를 높였다. 특히 비정형 데이터의 유사성에 기반한 배치를 만들어주는 잠재공간(Latent Space)은 다양한 응용이 기대되는 분야이다.

잠재공간을 생성하는 딥러닝 모델의 대표적인 예는 Word2Vec이다. ‘Word2Vec’은 단어(Word)를 벡터(Vector)로 부호화(Encoding)해주는 모델로 2013년 구글에서 근무하던 토마스 미콜로브(Tomas Mikolov)가 제안했다. 그는 2개의 층을 가진 간단한 모델을 대량의 문장으로 훈련시켰다. 훈련은 문장 내의 인접 단어가 비슷해 지도록 지도학습 방법을 사용하였다. 훈련의 결과로 만들어진 Word2Vec은 의미의 유사도에 따라 단어가 배치되는 단어의 잠재공간을 형성한다.

이렇게 Word2Vec이 만들어낸 잠재공간에서는 단어 간의 의미 계산이 가능해진다. 예를 들어, 왕(King)이라는 단어에서 남성(Man)의 특성을 빼고, 여성(Woman)의 특성을 넣으면 여왕(Queen)이 된다.

다소 과장되게 표현되기는 했지만 틀리지는 않다. 실제로 위의 계산이 수행되는 방식은 아래와 같다. 아래에서 ‘model’은 훈련된 Word2Vec 모델을 의미한다.

훈련된 모델에 입력되는 단어와 가장 비슷한 것을 찾아 달라는 ‘most_similar’ 명령을 내립니다. 이때 입력으로는 ‘king’과 ‘woman’은 더하고(positive), ‘man’을 뺀(negative) 값를 사용한다. 그 결과로 나오는 출력(Out)에서 ‘queen’이 71.2% (0.7118…)로 Word2Vec 모델은 가장 가깝다고 판단했다.

Word2Vec 모델이 문자에 대한 잠재공간을 생성한다면 오토인코더(AutoEncoder)는 이미지에 대한 잠재공간을 생성한다. 

오토인코더는 입력 자체를 출력으로 하는 딥러닝 모델이다. 그리고, 특이하게도 입력보다 작은 수의 히든 레이어를 가진다. 이 특성은 정보를 압축하는 역할을 한다. ‘보틀넥(bottleneck – 병목)’으로 불리는 이곳에서 생성되는 벡터는 이미지에 대한 잠재공간을 만들어 낸다. 이 잠재공간은 이미지에 대한 의미 계산을 가능하게 한다. 예를 들어 특정 사람 얼굴에 안경을 미소를 추가하든지, 안경을 씌우도록 만들 수 있다. 이에 대한 수식표현과 잠재공간에 의해 생성된 결과는 다음과 같다.

(굳은 얼굴) + n * (미소) = (n 만큼 미소짓는 얼굴)

맨 왼쪽 사진이 원본이다. 원본에 대한 훈련된 오토인코더의 출력은 ‘0’으로 표시된 가운데 사진이다. 다소 흐릿해졌다. 이는 오토인코더에서 압축이 되면서 일부 정보를 잃어버렸기 때문이다. ‘0’으로 표시된 사진 오른쪽으로는 미소를 추가해 나가는 사진이다. 1만큼, 2만큼 추가할 때마다 얼굴의 미소는 강해진다. 반대로 왼쪽은 미소를 빼 나가는 사진이다.

같은 과정으로 안경을 씌워보겠다.

(안경없는 얼굴) + n * (안경) = (n 만큼 안경 쓴 얼굴)

앞의 Word2Vec 모델과, 오토인코더의 예는 딥러닝 모델이 생성하는 잠재공간의 특성을 잘 보여줍니다. 이제 잠재공간(Latent Space)에 대해 이해했을 것이다.

정리하자면 잠재공간은 그동안 다루기 수학적으로 다루기 어려웠던 언어, 이미지 등과 같은 비정형데이터 속에 잠재(latent)해 있는 특성이 수치화된 공간이다.

이 공간에서는 비정형 데이터의 특성을 더하거나 빼거나 하는 계산을 할 수 있다. 이는 잠재공간에서는 특성이 유사한 항목이 가깝게 존재하기 때문이다. 여기서 설명 드리지는 않겠지만 어떤 특성을 기준으로 유사함을 평가할 것인가가 잠재공간에서의 위치를 결정한다. 

이와 같은 잠재공간을 어디에 활용할 수 있을까? 이미지에 대한 잠재공간은 하나의 의미지가 다른 이미지로 자연스럽게 변화하는 ‘모핑(Morphing)’을 구현하는 데에 사용될 수 있을 것이다.

재미있게 읽었던 영어 소설 중에서 ‘애니모프(Animorph)’라는 책이 있다. 정의로운 청소년들이 착한 외계인으로부터 모핑 능력을 받게 된다. 그리고 악당 외계인의 침략에 대항하는 내용이다. 주인공들은 위기 상황마다 그에 맞는 능력을 가진 동물로 변해서 극복해 나간다.

출처 : https://www.theparisreview.org/blog/2019/01/23/what-was-it-about-animorphs/

잘 만들어진 잠재공간에서는 이러한 모핑 이미지를 자연스럽게 만들 수 있을 것이다.

다음으로 Word2Vec 모델로 응답에 의존하지 않는 여론조사를 생각해 봤다. 여론 조사 대상의 응답을 기다리지 않고 인터넷 상의 글의 감성을 자동으로 분석하여 사회적 평판이 어떤지를 살펴보는 방식이다. 예를 특정 도시에 대해 세계인이 느끼는 감성이 어떤지를 인터넷 상의 글로 확인하는 방식이다.

다음은 서울, 도쿄, 베이징 등 몇 개의 도시에 대해서 ‘사랑(love)’에 대한 유사도를 Word2Vec으로 확인해 본 결과이다. 



‘사랑(love)’에 대해서는 도쿄가 14.84%로 유사도가 가장 높다. 서울은 14.81%로 그 다음의 수치를 보인다.

‘친구(friend)’에 대해서는 다음과 같다.



이번에는 뉴욕이 9.80%로 가장 높으며, 베이징이 8.93%로 그 뒤를 이었다. 이 결과는 기존에 Word2Vec이 훈련된 시점을 반영한 결과로, 한류가 널리 퍼진 지금은 사랑이든 친구든 서울이 전보다 높은 점수를 보였을 것이다.

이와 비슷하게 잠재공간을 활용하면 다음과 같은 질문에 대해 시대별, 연령별 응답을 자동으로 분석할 수도 있을 것이다.

“지난 10년 동안 세계인들의 호감도는 어떻게 변했나요?”

“한국인이 각 여행지에서 느끼는 감정은 어떨까요? 


다시 정리하자면 잠재공간은 현실 공간에서 관찰된 데이터의 특성이 의미 있는 내부 표현으로 인코딩된 추상적인 다차원 공간이다.

필자 강승우 위데이터랩  인공지능연구소장 겸 부사장은 펜타 컴퓨터를 거쳐 BEA, Oracle에서 최고 기술 아키텍트로서 기업의 IT 시스템 문제가 있는 곳의 해결사의 역할을 했다. 글로벌에 통하는 한국 소프트웨어 개발에 대한 열정으로 S전자 AWS 이벤트  로그 분석을 통한 이상징후 탐지, R사의 건축물 균열 탐지 등의 머신러닝 프로젝트를 진행했다. 현재는 딥러닝을 이용한  소프트웨어 취약점 탐지 자동화 연구와 머신러닝과 딥러닝강의를 진행하고 있으며, 비즈니스화에도 노력을 기울이고 있다. 최근 저서로 '머신러닝 배웠으니 활용해볼까요?'가  있다.