정보

비지도학습 — 군집

답을 붙여 줄 수 없을 때도 있습니다.
그럴 때는 비슷한 것끼리 모아 보는 것부터 합니다.

학습 목표

  1. 비지도학습을 레이블 없이 데이터만으로 하는 학습으로 설명할 수 있다.
  2. 군집화가 비슷한 것끼리 무리를 만드는 일임을 예를 들어 설명할 수 있다.
  3. 분류와 군집화가 무엇이 다른지 레이블의 유무로 구별할 수 있다.
  4. 군집화 결과에 맞고 틀림이 없다는 것과, 그래서 사람이 무엇을 해야 하는지 설명할 수 있다.

붙여 줄 답이 없다면

지도학습은 레이블이 있어야 시작할 수 있습니다. 그런데 데이터를 앞에 놓고도 무슨 답을 붙여야 할지 모르는 경우가 있습니다.

이런 경우입니다

  • 도서관 대출 기록을 놓고 「어떤 독자들이 있는지」를 알고 싶다. 그런데 독자의 종류를 우리가 미리 정해 둔 적이 없다.
  • 설문 응답 수백 장을 놓고 「비슷한 생각끼리 묶어 보고」 싶다. 그런데 어떤 묶음이 나올지 지금은 모른다.

답의 목록을 미리 적을 수 없으니 분류로 갈 수 없고, 맞힐 수치가 있는 것도 아니니 회귀로도 갈 수 없습니다. 답을 정하는 것 자체가 알고 싶은 일이기 때문입니다.

비지도학습(unsupervised learning)

레이블 없이 입력 데이터만으로 학습하는 방법입니다. 데이터의 특성을 스스로 살펴 그 속에 숨은 구조나 관계를 찾아냅니다.

이름의 「비지도」는 옆에서 답을 알려 주는 사람이 없다는 뜻입니다. 답지 없이 문제만 잔뜩 받아 들고 「비슷한 문제끼리 모아 보라」는 말을 들은 셈입니다.

비슷한 것끼리 모읍니다

군집화(clustering)

비지도학습의 대표적인 방법으로, 서로 닮은 데이터끼리 모아 무리를 만드는 것입니다. 이렇게 만들어진 무리 하나하나를 군집(cluster)이라고 합니다. 무리를 만든 뒤에는 새 데이터가 어느 무리에 가까운지를 알려 줄 수도 있습니다.

도서관 대출 기록으로 해 봅시다. 학생마다 한 달에 몇 권을 빌리는지와 한 권을 며칠이나 갖고 있는지를 놓고 점을 찍으면, 몇 군데에 점이 뭉쳐 있는 것이 보입니다. 그 뭉치 하나하나가 무리입니다.

가로축은 한 달에 빌린 권수, 세로축은 한 권을 갖고 있는 날수입니다. 색은 사람이 붙인 것이 아니라 묶고 나서 생긴 것입니다.

이 그림에서 점의 색이 언제 정해졌는지가 중요합니다. 지도학습에서는 학습을 시작하기 전에 사람이 색을 칠해 주었지만, 군집화에서는 학습을 마친 뒤에 색이 생깁니다. 무리의 개수를 몇으로 할지는 사람이 정해 줄 수 있습니다.

스스로 확인

무리를 둘로 묶으라고 하면 대출 기록 그림은 어떻게 달라질까요? 점의 위치는 그대로인데, 무엇이 바뀌는 것인지 말해 봅시다.

몇 개로 묶을까

군집화를 해 보면 곧 부딪히는 물음이 있습니다. 「무리를 몇 개로 만들까?」 많이 쓰이는 방법들은 이 개수를 사람이 정해 주어야 합니다. 그런데 몇 개가 맞는지 데이터가 딱 정해 주지는 않습니다.

너무 적게 잡으면

성격이 다른 것들이 한 무리에 묶입니다. 둘로 묶으면 「많이 빌리는 쪽과 적게 빌리는 쪽」밖에 남지 않아, 알아볼 수 있었던 차이가 사라집니다.

너무 많이 잡으면

거의 같은 것들이 나뉘어 여러 무리가 됩니다. 열 개로 묶으면 무리마다 몇 사람씩만 들어가 「그래서 어떤 무리인가」를 말할 수 없게 됩니다.

말로만 들으면 잘 와닿지 않으니 같은 점 30개를 놓고 무리 개수만 바꿔 가며 묶어 보겠습니다. 점은 하나도 움직이지 않았습니다. 바뀐 것은 개수 하나뿐입니다.

무리 3개로 묶었을 때

무리 5개로 묶었을 때

무리 7개로 묶었을 때

가로축은 한 달에 빌린 권수, 세로축은 한 권을 갖고 있는 날수입니다. 점의 색이 그 점이 들어간 무리이고, 가위표는 무리의 가운데입니다. 점 30개는 수업에서 원리를 확인하려고 지어낸 값입니다.

세 그림 모두 틀리지 않았습니다. 그런데 읽히는 말은 저마다 다릅니다.

  • 3개로 묶으면 아래쪽 두 뭉치가 한 무리로 묶입니다. 적게 빌리는 학생과 꽤 빌리는 학생이 같은 색이 되어, 있던 차이가 그림에서 사라집니다.
  • 5개로 묶으면 뭉치 네 군데가 각각 제 색을 얻습니다. 남는 하나는 가장 넓게 퍼진 오른쪽 위 뭉치를 둘로 나눕니다.
  • 7개로 묶으면 오른쪽 위 뭉치가 셋으로, 가운데 아래 뭉치가 둘로 더 쪼개져 두 사람짜리 무리까지 생깁니다. 수는 늘었지만 「이 무리는 이런 사람들」이라고 말하기는 오히려 어려워집니다.

개수를 늘릴수록 점과 제 무리 가운데 사이의 거리가 줄어듭니다. 사람마다 무리를 하나씩 준다면 그 거리는 0이 됩니다. 그러니 이 거리만 보고 개수를 고를 수는 없습니다.

정할 때 기대는 두 가지

  • 그림으로 봅니다. 개수를 바꿔 가며 그려 보고, 무리가 눈에 보이는 뭉치와 맞아떨어지는 쪽을 고릅니다.
  • 말로 설명해 봅니다. 나온 무리마다 「이 무리는 이런 사람들」이라고 한 문장으로 말할 수 있으면 쓸 만한 개수입니다. 말이 막히면 너무 잘게 나누었거나, 성격이 다른 것을 한데 묶었을 수 있습니다.

더 알아보기

k-평균 군집화 시뮬레이터에서 「랜덤 생성」으로 점을 찍어 두고 k(무리 개수)를 2부터 7까지 바꿀 때마다 「중심점 생성」과 「자동 실행」을 누르면, 점은 그대로인 채 무리가 어떻게 다시 나뉘는지 볼 수 있습니다. k-평균 군집화는 군집화 방법의 하나로, 이름까지 외울 필요는 없습니다.

두 가지 모두 사람이 판단하는 방법입니다. 군집화에는 채점해 줄 정답이 없으니 개수를 고르는 일도 사람의 몫으로 남습니다. 그래서 결과를 내놓을 때는 「몇 개로 묶었고 왜 그렇게 정했는지」를 함께 밝혀야 합니다.

분류와 헷갈리기 쉽습니다

둘 다 데이터를 몇 갈래로 나눈다는 점이 같아서 자주 뒤섞입니다. 옷 사진 묶음을 예로 들어 나란히 놓아 봅시다.

보는 곳 분류(지도학습) 군집화(비지도학습)
갈래를 누가 정하나 사람이 미리 정한다 — 「상의」와 「하의」 학습이 끝난 뒤 생긴다 — 색이나 길이로 묶일 수도 있다
레이블 있어야 한다 없다
새 옷이 들어오면 상의인지 하의인지 답한다 어느 무리에 가까운지 알려 준다
맞고 틀림 상의를 하의라 하면 틀린 것 맞다 틀리다로 말할 수 없다
얻는 것 새 데이터의 갈래 데이터 안에 어떤 무리가 있었는지

더 알아보기 — 세 번째 갈래

레이블을 주지도 않고 데이터를 미리 모아 두지도 않은 채, 해 본 행동에 점수를 주어 점수가 커지는 쪽으로 고쳐 나가게 하는 방법도 있습니다. 이것을 강화학습(reinforcement learning)이라고 부릅니다. 게임을 여러 판 하면서 잘 되는 수를 몸에 익히는 것과 비슷합니다. 여기서는 이런 갈래가 있다는 것까지만 알아 둡니다.

한 문장으로 구분하면

분류는 정해 둔 상자에 넣는 일이고, 군집화는 상자 없이 모아 보고 어떤 무리가 생기는지 알아보는 일입니다.

묶은 뒤가 진짜 일입니다

군집화는 무리를 만들어 줄 뿐 그 무리가 무엇인지는 말해 주지 않습니다. 도서관 대출 기록을 세 무리로 묶은 그림에도 이름이 붙어 있지 않았습니다. 이름을 붙이는 것은 사람의 몫입니다.

왼쪽 위 무리

적게 빌리는데 오래 갖고 있으니 한 권을 천천히 읽는 쪽이라고 읽을 수 있습니다.

가운데 아래 무리

중간쯤 빌리고 빨리 돌려주니 필요한 것만 찾아 쓰는 쪽일 수 있습니다.

오른쪽 위 무리

많이 빌리고 오래 갖고 있으니 여러 권을 함께 보는 쪽으로 볼 수 있습니다.

무리마다 붙인 이 이름들은 우리가 붙여 본 해석이지 데이터가 알려 준 사실이 아닙니다. 같은 그림을 놓고 다른 이름을 붙일 수도 있습니다. 그러니 군집화 결과를 말할 때는 「이렇게 묶였고, 우리는 이렇게 읽었다」까지를 함께 밝혀야 합니다.

군집화는 무리를 알아내는 데서 그치지 않고 그 무리를 보고 다음에 무엇을 할지 정하는 데까지 이어질 때 쓸모가 커집니다. 「오래 갖고 있는 무리가 이만큼 있다」를 알면 대출 기간을 어떻게 둘지 이야기해 볼 근거가 생깁니다.

스스로 확인

군집화 결과에 「책을 좋아하는 무리」라는 이름을 붙였다고 해 봅시다. 이 이름이 데이터가 보여 준 것보다 더 많은 말을 하고 있지는 않은지 검토해 보세요.

핵심 정리

비지도학습

unsupervised learning

  • 레이블 없이 입력 데이터만으로 학습한다
  • 데이터 속에 숨은 구조와 관계를 찾아낸다
  • 답을 정하는 일 자체가 알고 싶은 것일 때 쓴다

군집화

clustering

  • 비슷한 특성끼리 무리를 만든다
  • 새 데이터가 어느 무리에 가까운지 알려 줄 수도 있다
  • 무리의 색과 이름은 학습이 끝난 뒤에 생긴다

분류와의 차이

clustering vs classification

  • 분류는 정해 둔 상자에 넣는 일
  • 군집화는 모아 보고 어떤 무리가 생기는지 알아보는 일
  • 둘을 구분하는 기준은 레이블이 있느냐다

읽는 것은 사람

the reading is ours

  • 군집화 결과에는 맞고 틀림이 없다
  • 무리에 이름을 붙이는 것은 사람의 해석이다
  • 무리를 찾은 뒤 다음에 할 일을 정하는 데까지 이어질 때 쓸모가 커진다

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1

비지도학습과 지도학습을 구분하는 기준은?

Q2

옷 사진을 「상의」와 「하의」로 미리 이름 붙여 학습시켰다면 어느 쪽인가?

Q3

군집화 결과를 다룰 때 알맞은 태도는?