입자와 결
AI는 어떻게 비슷한 것을 찾을까?
다 아는 수학으로 풀어보는 인공지능 ②
AI는 어떻게 비슷한 것을 찾을까?
좌표와 거리로 이해하는 AI
“사과와 가장 비슷한 과일은 무엇일까?”
사람이라면 배나 복숭아를 떠올릴 수 있다. 하지만 컴퓨터는 사과를 먹어본 적도, 맛을 느껴본 적도 없다.
그런데 AI는 어떻게 두 대상이 비슷하다고 판단할까?
의외로 우리가 학교에서 배운 좌표와 거리에서 시작할 수 있다.
교실 바닥을 모눈종이라고 생각해보자. 철수의 자리가 (2, 3), 영희가 (3, 3), 민수가 (9, 8)에 있다면 철수와 가장 가까운 사람은 영희다.
좌표를 알면 두 사람이 얼마나 가까운지 계산할 수 있기 때문이다.
AI에서도 비슷한 생각을 사용한다. 다만 사람의 위치 대신 대상의 특징을 좌표로 만든다.
과일을 예로 들어 가로축을 ‘단맛’, 세로축을 ‘단단함’이라고 해보자.
사과가 (7, 6), 배가 (7, 5), 레몬이 (2, 4)에 있다면 배는 레몬보다 사과 가까이에 놓인다.
두 특징만 놓고 보면 AI는 배와 사과가 상대적으로 비슷하다고 계산할 수 있다.
지난 시간에 하나의 대상을 여러 숫자로 표현한 것을 벡터(Vector)라고 했다. 과일도 다음과 같이 표현할 수 있다.
사과 = [단맛, 단단함, 신맛, 크기, …]
특징이 두 개라면 종이에 좌표를 그릴 수 있고 세 개라면 3차원으로 생각할 수 있다. 특징이 100개가 되면 사람이 그림으로 그리기는 어렵지만 컴퓨터는 100개의 숫자를 가진 벡터로 계산할 수 있다.
여기서 AI의 재미있는 능력이 시작된다.
과일뿐 아니라 단어와 문장도 숫자로 표현할 수 있다. AI가 많은 데이터를 학습하면서 ‘고양이’, ‘강아지’, ‘자동차’ 같은 단어를 각각 숫자 벡터로 표현한다고 생각해보자.
고양이와 강아지는 동물, 반려동물 등 서로 관련된 특징이 많다. 잘 학습된 숫자 공간에서는 두 단어가 서로 비슷한 관계를 갖도록 표현될 수 있다. 자동차는 상대적으로 다른 곳에 위치할 것이다.
이처럼 단어나 문장 등의 의미를 컴퓨터가 계산할 수 있는 벡터로 표현하는 방법을 임베딩(Embedding)이라고 한다.
그래서 AI에게 ‘비슷하다’는 것은 단순한 느낌이 아니다.
대상을 숫자로 표현하고 → 숫자 사이의 관계를 계산하고 → 가까운 것을 찾아내는 과정으로 생각해볼 수 있다.
우리가 사용하는 검색이나 추천 서비스에서도 이러한 아이디어가 활용된다. 내가 입력한 문장과 의미가 비슷한 내용을 찾거나, 내가 관심을 보인 상품과 비슷한 상품을 추천하는 데 벡터의 유사성을 이용할 수 있다.
하지만 여기에는 중요한 함정이 하나 있다.
사과와 배를 단맛과 단단함만으로 비교하면 매우 비슷할 수 있다. 그런데 색깔이나 가격을 중요한 특징으로 추가하면 결과가 달라질 수 있다.
즉, 무엇을 숫자로 표현하고 무엇을 중요하게 보느냐에 따라 ‘비슷하다’의 의미도 달라진다.
AI가 “두 사람이 비슷하다”, “두 문장이 비슷하다”, “이 상품이 당신에게 적합하다”고 판단했을 때도 마찬가지다. 결과만 볼 것이 아니라 무엇을 기준으로 비슷하다고 판단했는가를 살펴볼 필요가 있다.
결국 우리가 중학교에서 배운 좌표와 거리에는 AI의 중요한 생각 하나가 숨어 있었다.
좌표를 알면 거리를 계산할 수 있고, 대상을 벡터라는 숫자의 좌표로 표현하면 AI는 대상 사이의 비슷함도 계산할 수 있다.
그렇다면 AI는 이 숫자들을 받아 어떻게 새로운 결과를 만들어낼까?
다음 시간에는 우리가 이미 배운 함수에서 그 답을 찾아보자.
×