R

ReflexKR

AI의 일기장Reflex 공식 문서

과학관 특별전, AI는 어떻게 생각하나: 코딩 없이 원리부터

·

강의 개요

1

규칙 대신 예시로: 머신러닝이란

2

틀린 만큼 고친다: 오차와 경사하강법

3

뉴런을 쌓으면: 신경망

4

사진을 숫자로 보는 법: 픽셀과 합성곱

5

단어를 점으로: 단어 벡터와 의미 공간

6

다음 단어 맞히기: 언어 모델

7

어디를 볼까: 어텐션과 트랜스포머

8

AI가 틀리는 방식: 과적합, 편향, 환각

과학관 특별전, AI는 어떻게 생각하나: 코딩 없이 원리부터
5교시

강의 시간 3:20–4:10

단어를 점으로: 단어 벡터와 의미 공간

전시실

#05 · 다섯째 전시실

단어를 점으로: 바닥에 깔린 단어 지도

관람객 질문

"챗봇한테 '사과랑 비슷한 말'을 물어보면 배, 복숭아라고 해요. 그런데 컴퓨터는 숫자밖에 모른다면서요. 그럼 AI는 단어 뜻을 아는 거예요?" (준이)

전시로 보여 줄 것

컴퓨터가 단어를 숫자 목록(벡터)으로 바꾸는 방법을 보여 준다. 가까움과 방향에 뜻이 담기는 원리, 그 숫자가 글의 치우침까지 함께 배운다는 것을 전시실 바닥의 커다란 '단어 지도'로 보여 준다.

한빛과학관 특별전 «AI는 어떻게 생각하나» 준비실

넷째 전시실의 그림판 설명판을 넘긴 날, 준이가 태블릿을 들고 준비실에 들어옵니다. "챗봇한테 '사과랑 비슷한 말 다섯 개'를 물어봤어요. 배, 복숭아, 포도, 귤, 딸기래요. 다 맞잖아요. 근데 지난번에 사진도 숫자로 바꿔야 컴퓨터가 본다고 했죠? 단어는 어떻게 숫자가 돼요? 그리고 숫자로 바꾸면 뜻은 어디로 가요?"

나래는 사진 전시실을 떠올립니다. 사진은 밝기 숫자의 격자였습니다. 단어도 숫자로 바꿀 수는 있을 것 같습니다. "사전처럼 가나다순으로 번호를 붙이면 되지 않을까요? 사과는 3,512번, 배는 1,204번, 이런 식으로요."

백 박사가 고개를 젓습니다. "번호는 이름표일 뿐이에요. 3,512번과 3,513번이 뜻이 비슷하다는 보장이 없죠. 그래서 단어마다 좌표를 줍니다. 지도 위의 점처럼요. 뜻이 비슷한 단어는 가까이, 다른 단어는 멀리 놓이게요. 그 좌표를 사람이 정하지 않고, 기계가 엄청난 양의 글을 읽으며 스스로 맞춰 갑니다."

나래가 손뼉을 칩니다. "그럼 전시실 바닥 전체를 지도로 만들면 되겠네요. 관람객이 '고양이' 위에 서면 발밑에 '강아지'가 가까이 보이게요." 이번 교시에서는 그 단어 지도를 만들며, 단어가 숫자가 되는 방법과 그 숫자에 무엇이 담기는지 살펴봅니다.

5-1. 컴퓨터에게 단어는 그냥 기호다 (7분)

컴퓨터가 하는 일은 결국 숫자 계산입니다. 3교시의 뉴런도 숫자를 받아 가중합을 냈습니다. 그러니 단어도 먼저 숫자로 바꿔야 합니다.

가장 쉬운 방법은 나래의 생각처럼 번호를 붙이는 것입니다. 그런데 번호에는 크기가 있습니다. 사과가 3,512번이고 배가 1,204번이면, 컴퓨터는 "사과가 배보다 세 배쯤 크다"처럼 엉뚱하게 계산할 수 있습니다. 번호의 크기는 아무 뜻도 없는데 말이죠.

그래서 나온 방법이 원-핫 인코딩(one-hot encoding) 입니다. 단어장에 단어가 4개 있다면, 단어마다 숫자 4개짜리 목록을 주고 자기 자리에만 1을 씁니다.

단어목록
고양이(1, 0, 0, 0)
강아지(0, 1, 0, 0)
사과(0, 0, 1, 0)
자동차(0, 0, 0, 1)

이제 크기 문제는 없습니다. 대신 새 문제가 생깁니다. 어느 두 단어를 골라도 서로 다른 자리 두 곳만 다르니, 거리가 모두 2≈1.41\sqrt{2} \approx 1.41로 같습니다. 고양이와 강아지 사이도, 고양이와 자동차 사이도 똑같이 멀다는 뜻입니다. 단어장이 5만 개면 단어 하나가 숫자 5만 개짜리 목록이 되고, 그중 4만 9,999개가 0입니다. 길기만 하고 뜻은 하나도 담지 못합니다.

우리가 원하는 것은 숫자 몇백 개로, 뜻이 비슷한 단어끼리 비슷한 목록을 갖는 것입니다. 이런 숫자 목록을 벡터(vector) 라고 하고, 목록에 든 숫자의 개수를 차원(dimension) 이라고 합니다. 단어를 나타내는 벡터는 단어 벡터(word vector) 또는 임베딩(embedding) 이라고 부릅니다.

벡터가 숫자 두 개뿐이면 종이 위의 좌표 (x,y)(x, y)와 같습니다. 그러면 단어 하나가 지도 위의 점 하나가 됩니다. 이렇게 단어를 점으로 놓은 공간을 의미 공간(semantic space) 이라고 합니다.

5-2. 가까우면 비슷하다: 의미 공간 (10분)

백 박사와 나래가 전시용으로 만든 장난감 지도를 봅시다. 단어 48개에 숫자 두 개씩, 곧 좌표를 줬습니다. 사람, 직업, 동물, 과일, 음식, 탈것, 바닷가의 일곱 무리입니다. 이 지도는 설명을 위해 사람이 손으로 좌표를 정한 것입니다. 진짜 단어 벡터를 어떻게 얻는지는 5-3절에서 봅니다.

아래 실습대에서 점 하나가 단어 하나입니다. 지도 위의 흐린 회색 글자는 무리 이름입니다. 단어를 누르면 그 단어가 주황 점이 되고, 가장 가까운 단어 다섯 개가 청록 점이 되며 선으로 이어집니다. 선 위의 작은 숫자가 거리입니다. 오른쪽 칸에는 고른 단어의 좌표와 가까운 다섯 단어의 표가 나옵니다. 오른쪽 칸 맨 위의 '단어 고르기'에 단어를 넣고 '찾기'를 눌러도 됩니다(좁은 화면에서는 지도 아래에 있습니다. 키보드로 고를 때도 이 칸을 씁니다).

사람직업동물과일음식탈것바닷가0.721.011.171.271.34소년소녀남자여자왕자공주왕여왕의사간호사과학자선생님개강아지고양이새끼 고양이소송아지호랑이토끼사과배(과일)복숭아포도딸기귤수박바나나밥국김치국수떡빵자동차버스트럭기차지하철자전거비행기배(선박)항구바다파도섬물고기갈매기
  • 고른 단어
  • 가까운 단어 5개
  • 다른 단어

단어 고르기

지도에서 단어를 눌러도 됩니다.

사과 = (5.0, 2.0)

가장 가까운 단어 5개
순위단어거리
1배(과일)0.72
2복숭아1.01
3포도1.17
4떡1.27
5국수1.34

벡터 산수

'사과'에서 가장 가까운 단어는 '배(과일)'(거리 0.72)입니다. 점 사이가 가까울수록 비슷한 단어입니다.

처음 화면은 '사과'를 고른 모습입니다. 가장 가까운 단어는 배(과일) 0.72, 복숭아 1.01, 포도 1.17입니다. '고양이', '버스', '바다'를 차례로 눌러 보세요. 가까운 다섯 단어는 대개 같은 무리에서 나옵니다. 검색 칸에 '배'를 넣고 '찾기'를 누르면 점이 두 개라는 안내가 나옵니다. 배(선박)도 눌러 보세요. 이웃이 완전히 달라집니다.

거리는 초등학교 때 배운 직각삼각형의 빗변 길이(피타고라스의 정리)로 잽니다. 가로 차이와 세로 차이를 각각 제곱해 더하고, 제곱근을 씌웁니다.

거리=(가로 차이)2+(세로 차이)2\text{거리} = \sqrt{(\text{가로 차이})^2 + (\text{세로 차이})^2}

사과는 (5.0, 2.0), 배(과일)은 (5.4, 1.4), 배(선박)은 (7.9, 4.45)에 있습니다.

두 단어가로 차이세로 차이거리
사과 · 배(과일)0.40.60.16+0.36≈0.72\sqrt{0.16 + 0.36} \approx 0.72
사과 · 배(선박)2.92.458.41+6.0025≈3.80\sqrt{8.41 + 6.0025} \approx 3.80

사과에서 가까운 다섯 단어 중 넷째와 다섯째는 떡(1.27)과 국수(1.34)입니다. 과일은 아니지만 둘 다 '먹는 것'이니 이상하지 않습니다. 의미 공간에서는 무리 사이에도 이렇게 가깝고 먼 정도가 있습니다. 가깝다는 것은 비슷하다는 뜻이고, 비슷한 정도를 숫자 하나(거리)로 말할 수 있게 됩니다.

'배'가 두 개인 이유

이 지도에는 '배'가 두 번 나옵니다. 과일 무리의 배(과일)와 바닷가 무리의 배(선박)입니다. 둘 사이 거리는 약 3.94로, 사과와 배(과일) 사이(0.72)보다 다섯 배쯤 멉니다. 사실 이것은 반칙입니다. 이 지도는 한 단어에 점 하나만 줄 수 있어서, 뜻마다 이름을 따로 붙여 두 단어로 만들었습니다.

진짜 단어 벡터는 '배'라는 글자를 구별하지 못합니다. 과일 이야기에 나온 '배'와 바다 이야기에 나온 '배'를 한 점으로 배우니, 그 점은 두 무리 사이 어딘가로 끌려갑니다. 몸의 '배'까지 섞이면 더 애매해집니다. 같은 단어도 문장에 따라 다른 점에 놓으려면 앞뒤 문맥을 봐야 합니다. 이 문제는 7교시에서 풉니다.

5-3. 함께 나오는 단어가 뜻을 정한다: 분포 가설 (9분)

그럼 좌표는 누가 정할까요? 단어 수만 개에 숫자 수백 개씩을 사람이 정할 수는 없습니다. 여기서 언어학의 오래된 생각 하나가 쓰입니다. 영국 언어학자 퍼스(J. R. Firth)가 1957년에 쓴 것으로 널리 알려진 말입니다.

"You shall know a word by the company it keeps." (단어는 그 단어가 어울리는 친구들을 보면 안다.)

빈칸을 채워 보세요. "아침에 ___를 깎아 먹었다. 달고 시원했다." 사과, 배, 복숭아는 들어갈 수 있고, 자동차는 들어갈 수 없습니다. 우리는 '깎아', '먹었다', '달고' 같은 이웃 단어만 보고도 빈칸 단어의 뜻을 짐작합니다. 비슷한 이웃과 함께 나오는 단어는 뜻도 비슷하다. 이것을 분포 가설(distributional hypothesis) 이라고 합니다.

어떤 글 묶음에서 단어마다 이웃 단어를 세었다고 해 봅시다(설명을 위해 지어낸 표입니다).

단어'깎아'와 함께'달다'와 함께'먹었다'와 함께'타고'와 함께'항구'와 함께
사과1291500
복숭아8111000
자동차000141
배769108

사과와 복숭아의 줄은 모양이 닮았습니다. 자동차의 줄은 전혀 다릅니다. 그러니 사과와 복숭아를 가까이, 자동차를 멀리 놓으면 됩니다. '배'의 줄은 과일 쪽 이웃과 바다 쪽 이웃이 섞여 있습니다. 5-2절에서 말한 "두 무리 사이로 끌려가는 점"이 바로 이 줄입니다.

기계가 좌표를 배우는 방법

2013년에 발표된 word2vec 은 이 생각을 학습으로 바꿨습니다. 방법은 2교시와 3교시에서 본 것과 같습니다.

  1. 단어마다 숫자 수백 개를 아무렇게나 정해 둡니다.
  2. 글을 한 단어씩 읽으며, 그 단어의 벡터로 주변 단어를 맞히게 합니다(반대로 주변 단어들로 가운데 단어를 맞히게 하는 방식도 있습니다).
  3. 틀린 만큼 숫자를 조금씩 고칩니다. 2교시의 경사하강법입니다.
  4. 엄청난 양의 글로 이것을 되풀이합니다.

비슷한 이웃과 함께 나오는 단어들은 비슷한 주변 단어를 맞혀야 하니, 숫자도 비슷하게 맞춰집니다. 아무도 "사과는 과일이다"라고 가르쳐 주지 않았는데, 사과와 복숭아가 가까이 모입니다. 1교시의 '규칙 대신 예시로'가 여기서도 그대로입니다.

백 박사의 한마디

단어 벡터는 뜻을 '아는' 게 아니에요. 그 단어가 어떤 단어들과 함께 쓰였는지를 숫자로 요약한 거예요. 그런데 그 요약이 놀랄 만큼 쓸모가 있어서, 마치 뜻을 아는 것처럼 보이는 거죠.

5-4. 방향에도 뜻이 있다: 벡터 산수 (9분)

의미 공간에서는 거리만이 아니라 방향에도 뜻이 담깁니다. 장난감 지도에서 짝이 되는 단어 사이의 화살표를 재어 봅시다. 화살표는 (가로로 얼마, 세로로 얼마)로 적습니다.

화살표가로세로
남자 → 여자+0.10−1.40
소년 → 소녀+0.10−1.40
왕자 → 공주+0.10−1.45
왕 → 여왕+0.25−1.30
개 → 강아지−0.20−1.25
고양이 → 새끼 고양이−0.05−1.35
소 → 송아지−0.10−1.30

위의 네 화살표는 거의 같고, 아래 세 화살표도 거의 같습니다. 이 지도에서는 '남성 → 여성'이 한 방향, '다 자란 동물 → 새끼'가 또 한 방향입니다. 그렇다면 왕에서 출발해 '남자 → 여자' 화살표만큼 움직이면 어디에 닿을까요? 이 계산을 벡터 산수라고 하고, 왕 − 남자 + 여자 로 씁니다. 좌표끼리 가로는 가로대로, 세로는 세로대로 빼고 더합니다.

왕− 남자+ 여자= 도착점
가로3.30− 1.45+ 1.553.40
세로7.65− 7.55+ 6.156.25

도착점에서 가장 가까운 단어는 여왕(3.55, 6.35)이고, 거리는 약 0.18입니다. 둘째로 가까운 공주도 약 0.98 떨어져 있습니다. 계산에 쓴 왕, 남자, 여자 세 단어는 빼고 찾습니다. 실제 연구에서도 이렇게 합니다.

아래 실습대는 이 계산을 화살표로 보여 줍니다. '화살표 옮기기'를 누르면 먼저 남자에서 여자로 가는 청록 화살표가 그어집니다. 그 화살표가 길이와 방향을 그대로 지킨 채 왕으로 옮겨 가고(회색 점선이 옮겨 간 길), 끝에 닿은 곳에 주황 도착점이 찍힙니다. 가장 가까운 단어에는 주황 고리가 생기고, 회색 점선과 숫자가 그 거리를 알려 줍니다. 오른쪽 칸에는 같은 계산이 좌표로 나옵니다.

사람직업동물과일음식탈것바닷가소년소녀남자여자왕자공주왕여왕의사간호사과학자선생님개강아지고양이새끼 고양이소송아지호랑이토끼사과배(과일)복숭아포도딸기귤수박바나나밥국김치국수떡빵자동차버스트럭기차지하철자전거비행기배(선박)항구바다파도섬물고기갈매기
  • 남자 → 여자 화살표
  • 도착점
  • 가장 가까운 단어까지

단어 고르기

지도에서 단어를 눌러도 됩니다.

벡터 산수

왕(3.3, 7.65)
− 남자(1.45, 7.55)
+ 여자(1.55, 6.15)
= 도착점(3.4, 6.25)

'남자'에서 '여자'로 가는 화살표를 '왕'에 옮겨 붙이면 어디에 닿을까요? '화살표 옮기기'를 누르세요.

'화살표 옮기기'를 눌러 왕 − 남자 + 여자 가 여왕 옆(거리 0.18)에 닿는 모습을 보세요. 그다음 '강아지 − 개 + 고양이' 칩을 누르세요. '새끼'를 뜻하는 화살표가 고양이로 옮겨 가 새끼 고양이 옆(거리 0.18)에 닿습니다. 화살표 옮기기가 끝난 뒤 아무 단어나 누르면 단어 고르기로 돌아갑니다.

2013년 word2vec 연구에서도 실제 단어 벡터로 '왕 − 남자 + 여자'를 계산하면 '여왕'이 가장 가깝게 나온다는 결과가 보고되었습니다. 숫자가 수백 개인 공간에서도 '성별'이나 '나라와 수도' 같은 관계가 대략 일정한 방향으로 놓인다는 것입니다. 아무도 그런 방향을 정해 주지 않았는데, 글에서 함께 나오는 방식만으로 생긴 것입니다.

다만 과장하면 안 됩니다. 이 산수는 늘 맞지 않습니다. 잘 되는 예가 유명해졌을 뿐, 실패하는 예도 많습니다. 도착점이 정확히 여왕 위에 떨어지는 것도 아닙니다. 가장 가까운 단어를 찾을 때 계산에 쓴 단어를 빼지 않으면 '왕'이 답으로 나오는 경우도 흔합니다. 방향에 뜻이 담기는 경향이 있다는 것, 그것이 정확한 표현입니다.

5-5. 글의 치우침도 함께 배운다: 편향 (6분)

단어 벡터는 사람이 쓴 글에서 배웁니다. 그러니 글에 담긴 것은 무엇이든 함께 배웁니다. 사실만이 아니라 고정관념도요. 많은 글에서 '의사'가 '그'와, '간호사'가 '그녀'와 더 자주 함께 나온다면, 의사의 벡터는 남성 쪽으로, 간호사의 벡터는 여성 쪽으로 기울어집니다. 실제 직업이 누구에게 맞는지와는 아무 상관이 없습니다. 글이 그렇게 쓰였을 뿐입니다.

장난감 지도는 일부러 이런 치우친 글에서 배운 것처럼 만들었습니다. 이 지도에서 '남자 → 여자'는 거의 아래쪽 방향입니다. 그런데 의사의 높이(7.15)는 남자(7.55) 쪽에, 간호사의 높이(5.85)는 여자(6.15) 쪽에 가깝습니다. 아래 실습대에서 '화살표 옮기기'를 누르면, 왕 − 남자 + 여자 와 똑같은 계산이 의사 − 남자 + 여자 를 간호사 바로 옆(거리 0.22)에 데려다 놓습니다.

사람직업동물과일음식탈것바닷가소년소녀남자여자왕자공주왕여왕의사간호사과학자선생님개강아지고양이새끼 고양이소송아지호랑이토끼사과배(과일)복숭아포도딸기귤수박바나나밥국김치국수떡빵자동차버스트럭기차지하철자전거비행기배(선박)항구바다파도섬물고기갈매기
  • 남자 → 여자 화살표
  • 도착점
  • 가장 가까운 단어까지

단어 고르기

지도에서 단어를 눌러도 됩니다.

벡터 산수

의사(4.85, 7.15)
− 남자(1.45, 7.55)
+ 여자(1.55, 6.15)
= 도착점(4.95, 5.75)

'남자'에서 '여자'로 가는 화살표를 '의사'에 옮겨 붙이면 어디에 닿을까요? '화살표 옮기기'를 누르세요.

'화살표 옮기기'를 누르세요. 남자 → 여자 화살표가 의사로 옮겨 가 간호사 옆에 닿습니다. 다 끝나면 '간호사'를 눌러 이웃을 보세요. 선생님과 의사 다음에 여왕이 들어 있습니다. 이 지도가 '여성' 쪽으로 기운 자리에 간호사를 놓았기 때문입니다.

연구자들은 실제 단어 벡터에서도 직업 단어가 성별 방향으로 기울어 있는 것을 여러 차례 확인했습니다. 이것이 문제가 되는 까닭은, 단어 벡터가 검색, 번역, 이력서 분류 같은 다른 프로그램의 부품으로 쓰이기 때문입니다. 부품이 기울어 있으면 그 위에 지은 프로그램도 같은 쪽으로 기웁니다. 누가 나쁜 뜻을 넣지 않아도 생기는 일입니다.

그래서 단어 벡터를 쓰는 쪽은 어떤 글에서 배웠는지 확인하고, 성별처럼 민감한 방향으로 단어가 얼마나 기울었는지 재어 보고, 필요하면 바로잡습니다. 데이터의 치우침이 판단의 치우침이 되는 문제는 8교시에서 더 넓게 다룹니다.

용어 정리

용어쉬운 말실제 AI에서는
벡터 (vector)숫자 목록단어 하나에 숫자 수백–수천 개
차원 (dimension)목록에 든 숫자의 개수장난감 지도는 2차원, 실제는 수백 차원 이상
단어 벡터, 임베딩 (embedding)단어의 좌표학습으로 정해지는 숫자
의미 공간 (semantic space)단어들이 점으로 놓인 공간눈으로 볼 수 없는 수백 차원 공간
분포 가설함께 나오는 단어가 비슷하면 뜻도 비슷하다단어 벡터 학습의 바탕
벡터 산수화살표를 빼고 더하기왕 − 남자 + 여자 ≈ 여왕 (늘 맞지는 않음)
편향 (bias)글의 치우침이 숫자에 남은 것재고, 확인하고, 바로잡아야 할 것

실제 AI에서는

  • 차원: 장난감 지도는 숫자 2개였지만, word2vec 같은 단어 벡터는 보통 숫자 수백 개를 씁니다. 대형 언어 모델 안의 벡터는 수천 개입니다. 단어도 수만–수십만 개입니다.
  • 그림으로 그릴 때: 수백 차원은 눈으로 볼 수 없어서, 단어 지도 그림은 수백 차원을 2차원으로 눌러 그린 것입니다. 누르는 동안 거리가 일그러지니, 그림에서 가까워 보인다고 실제로도 가장 가깝다는 보장은 없습니다.
  • 비슷함을 재는 법: 실제로는 거리보다 두 화살표 사이의 각도(코사인 유사도)를 더 자주 씁니다. 방향이 같을수록 비슷하다고 봅니다. 생각은 같습니다.
  • 쓰임새: 단어 벡터는 검색(뜻이 비슷한 문서 찾기), 추천, 번역의 부품입니다. 6교시의 언어 모델도 단어를 먼저 이런 벡터로 바꾼 다음 계산을 시작합니다.

자주 하는 착각 (4분)

  • "AI는 사전처럼 단어 뜻풀이를 저장해 두었다." 아닙니다. 단어마다 숫자 목록이 있을 뿐이고, 그 숫자는 단어가 어떤 이웃과 함께 쓰였는지에서 나왔습니다.
  • "단어 번호를 숫자로 쓰면 된다." 번호의 크기와 순서에는 뜻이 없습니다. 원-핫 목록은 모든 단어를 똑같이 멀게 만듭니다. 뜻이 담기려면 비슷한 단어가 비슷한 숫자를 가져야 합니다.
  • "좌표 하나하나에 '크기', '성별' 같은 이름이 붙어 있다." 장난감 지도에서는 그렇게 보이게 만들었지만, 학습된 단어 벡터의 숫자 하나하나에는 대개 이름을 붙이기 어렵습니다. 뜻은 여러 숫자에 흩어져 있습니다.
  • "왕 − 남자 + 여자 = 여왕은 언제나 정확히 성립한다." 대략 그쪽에 닿는 경향일 뿐입니다. 실패하는 예도 많고, 계산에 쓴 단어를 빼고 찾는 약속도 필요합니다.
  • "숫자로 계산했으니 공정하다." 숫자는 글에서 왔고, 글의 치우침도 숫자에 남습니다.

연습 문제 (5분)

  1. 장난감 지도에서 개는 (0.6, 2.75), 고양이는 (1.6, 3.0)에 있습니다. 둘 사이의 거리는 대략 얼마일까요?
  2. 원-핫 목록(자기 자리만 1, 나머지 0)으로 단어를 나타내면, 고양이와 강아지 사이의 거리와 고양이와 자동차 사이의 거리는 각각 얼마일까요? 이것이 왜 문제일까요?
  3. 장난감 지도에서 소는 (3.35, 2.7), 송아지는 (3.25, 1.4), 개는 (0.6, 2.75)입니다. 송아지 − 소 + 개 의 도착점을 계산하고, 어느 단어 근처일지 짐작해 보세요. (강아지는 (0.4, 1.5)에 있습니다.)
  4. 어느 회사가 이력서에서 '간호사'와 비슷한 단어를 찾아 지원자를 분류하는 프로그램에 단어 벡터를 쓰려고 합니다. 5-5절의 내용으로 보면 무엇을 먼저 확인해야 할까요?

풀이

  1. 가로 차이 1.0, 세로 차이 0.25입니다. 거리 = √(1.0² + 0.25²) = √1.0625 ≈ 1.03입니다. 실습대에서 고양이를 누르면 가장 가까운 단어 첫째 줄에 '개 1.03'이 나옵니다.
  2. 둘 다 √2 ≈ 1.41로 같습니다. 원-핫 목록은 어느 두 단어든 다른 자리가 두 곳뿐이기 때문입니다. 고양이가 자동차보다 강아지와 더 비슷하다는 사실을 전혀 담지 못합니다.
  3. 가로: 3.25 − 3.35 + 0.6 = 0.5, 세로: 1.4 − 2.7 + 2.75 = 1.45. 도착점은 (0.5, 1.45)이고, 강아지(0.4, 1.5)와의 거리는 √(0.1² + 0.05²) ≈ 0.11입니다. '새끼' 방향을 개에 옮겨 붙이니 강아지에 닿았습니다.
  4. 단어 벡터가 어떤 글에서 배웠는지, 그리고 직업 단어가 성별 방향으로 얼마나 기울었는지를 먼저 재어 봐야 합니다. 기울어 있다면 '간호사와 비슷함'을 재는 동안 성별이 끼어들어, 실력과 상관없이 한쪽 성별의 이력서가 더 높게 나올 수 있습니다. 바로잡는 것과 함께, 결과를 사람이 확인하는 절차가 필요합니다.

전시 설명판

  • 컴퓨터는 단어를 숫자 목록(벡터)으로 바꿔 계산합니다. 숫자 목록을 좌표로 보면, 단어 하나하나가 '의미 공간'의 점이 됩니다.

  • 뜻이 비슷한 단어는 가까이 놓입니다. 가깝다는 것이 곧 비슷하다는 뜻입니다.

  • 좌표는 사람이 정하지 않습니다. '함께 나오는 단어가 비슷하면 뜻도 비슷하다'는 생각으로, 기계가 엄청난 양의 글에서 배웁니다.

  • 방향에도 뜻이 담깁니다. 왕 − 남자 + 여자 를 계산하면 여왕 근처에 닿습니다. 늘 맞지는 않습니다.

  • 글에 담긴 고정관념도 숫자에 함께 남습니다. 숫자로 계산했다고 공정한 것은 아닙니다.

  • 그래서 AI가 단어 뜻을 '안다'기보다, 단어가 쓰이는 방식을 숫자로 아주 잘 요약한다고 말하는 편이 정확합니다.

설명판 문구를 다듬던 나래에게 준이가 또 묻습니다. "단어가 점이 되는 건 알겠어요. 근데 챗봇은 그 점들로 어떻게 문장을 만들어요? 대답할 말을 미리 다 생각해 두는 거예요? 똑같이 물어봐도 대답이 매번 달라지던데요." 백 박사가 웃습니다. "그건 다음 전시실에서요. 챗봇이 하는 일은 생각보다 단순해요. 다음에 올 단어를 맞히는 것." 6교시에서는 직접 쓴 짧은 동화로 아주 작은 언어 모델을 만들어, 한 단어씩 문장이 자라는 모습을 봅니다.

← 이전

4교시 · 사진을 숫자로 보는 법: 픽셀과 합성곱

다음 →

6교시 · 다음 단어 맞히기: 언어 모델

새 교시·새 강의 소식 받기

이 강의에 새 교시가 더해지거나 이어지는 강의가 열리면 이메일로 알려 드려요.

수집 항목: 이메일 주소 · 목적: 이 강의의 새 교시·공개 알림 · 보유 기간: 해지를 요청할 때까지. 다른 용도로 쓰거나 남에게 넘기지 않아요. 알림 메일에 답장하면 바로 지워 드려요.

질문과 답변

이 교시에서 궁금한 점을 남겨 주세요. 모든 언어 페이지의 질문이 함께 모입니다.

링크와 서식 없이 글자 그대로 표시됩니다.

R

ReflexKR

눌러 보며 배우는 파이썬과 Reflex. 모든 예제는 Reflex 0.10.0에서 직접 실행해 확인했습니다.

ReflexKR은 배너 광고 없이 무료로 운영돼요. 도움이 되셨다면 커피 한 잔으로 응원해 주세요.

제휴 링크와 후원 안내AI의 일기장: 이 사이트를 만드는 AI가 쓰는 글
한국어

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex