규칙을 적을 수 없는 일
프로그램을 짤 때 우리는 문제를 풀 때마다 순서와 조건을 직접 적습니다. 「점수가 90점 이상이면 A를 준다」처럼 규칙을 적어 두면 컴퓨터가 그대로 따라 합니다. 프로그래밍이란 그 규칙을 적는 일입니다.
규칙을 적을 수 있는 일
- 대출한 책이 기한을 넘겼는지 판단하기
- 오늘 날짜에 맞는 급식 식단 보여 주기
- 점수를 더해 총점과 석차 내기
조건이 몇십 개로 늘어나도 끝까지 적어 내려갈 수 있습니다. 이런 일은 규칙을 적어 푸는 쪽이 대개 더 빠르고 정확합니다.
규칙을 적을 수 없는 일
- 손으로 쓴 글씨를 읽어 글자로 옮기기
- 사진 속 물건이 무엇인지 알아보기
- 말소리를 알아듣기
적어 보려 하면 곧 막힙니다. 그런데 예는 얼마든지 보여 줄 수 있습니다.
「규칙을 적을 수 없는 일」 쪽을 조금 더 살펴봅시다. 손으로 쓴 「3」을 읽어 내는 규칙을 적어 보려 하면 「위아래로 둥근 곡선이 둘」 정도가 떠오릅니다. 그런데 곧 납작하게 쓴 3, 각지게 쓴 3, 8과 닮게 쓴 3을 만나 규칙이 무너집니다. 사람은 알아보면서도 그 근거를 규칙으로 적지 못합니다.
여기에서 생각을 뒤집습니다. 규칙을 적어 주는 대신, 답이 붙은 예를 잔뜩 보여 주고 규칙을 스스로 찾게 하면 어떨까? 이것이 기계학습의 출발점입니다.
들어가는 것과 나오는 것이 뒤바뀐다
두 방식을 나란히 놓고 보면 「규칙」과 「답」의 자리가 서로 바뀌어 있습니다. 사람이 규칙을 적을 때는 규칙이 들어가는 것이었지만, 기계학습에서는 규칙이 나오는 것입니다.
기계학습(machine learning)
사람이 규칙을 일일이 적어 주는 대신, 쌓인 데이터를 컴퓨터가 살펴 규칙을 스스로 얻어 내게 하는 방법입니다. 그렇게 얻은 규칙으로 새 값에 답합니다.
손글씨 「3」으로 돌아가 봅시다. 이제 우리가 하는 일은 여러 사람이 쓴 숫자 이미지를 잔뜩 모으고 각각에 그 답을 적어 주는 것까지입니다. 「어떻게 3을 알아보는가」는 적지 않습니다. 그것이 학습으로 나오는 결과입니다. 답을 붙이지 않고 데이터만 주어 비슷한 것끼리 묶는 규칙을 찾게 하는 방식도 있지만, 지금은 답을 붙여 주는 경우로 설명합니다.
「총점을 구해 석차를 매기는 일」에 기계학습을 쓰면 어떻게 될까요? 사람이 규칙을 적는 방식으로 이미 풀리는 문제를 기계학습 방식으로 풀면 무엇을 잃게 될지 말해 보세요.
규칙 찾기를 손으로 해 봅시다
「데이터에서 규칙을 찾는다」는 말이 아직 흐릿하다면, 작은 데이터로 직접 해 보면 손에 잡힙니다. 아래는 어떤 학생이 과제를 할 때 쪽수와 걸린 시간을 적어 둔 것입니다.
| 과제 분량(쪽) | 걸린 시간(분) |
|---|---|
| 2 | 25 |
| 3 | 40 |
| 5 | 65 |
| 6 | 80 |
| 8 | 105 |
수업에서 원리를 확인하려고 지어낸 값입니다.
눈으로 살펴보면 한 쪽에 13분쯤 걸린다는 것이 보입니다. 이 「13분쯤」이 바로 데이터에서 찾아낸 규칙입니다. 우리는 이 규칙을 미리 알고 있지 않았고, 표를 보고 나서야 얻었습니다.
규칙을 얻었으니 답할 수 있습니다
「10쪽이면 몇 분?」에 130분쯤이라고 답할 수 있습니다. 표에 없던 값인데도 답이 나옵니다. 이것이 모델이 하는 일입니다.
딱 맞지는 않습니다
규칙대로라면 3쪽은 39분인데 실제로는 40분이 걸렸습니다. 규칙은 값들을 대충 꿰는 것이지 하나하나를 정확히 맞히는 것이 아닙니다.
그러면 기계는 무엇을 대신하나
표가 작아서 눈으로 되었지만, 줄이 만 개이고 열이 스무 개라면 사람 눈으로는 어렵습니다. 게다가 손글씨 이미지처럼 표로 늘어놓기도 어려운 데이터라면 더 그렇습니다. 기계학습이 하는 일은 방금 우리가 한 일을 훨씬 큰 규모에서 하는 것입니다.
이 규칙으로 「100쪽이면 1,300분」이라고 답해도 될까요? 표에 있던 값은 2쪽에서 8쪽까지였다는 점을 함께 생각해 보세요.
앞으로 사용할 용어
| 용어 | 가리키는 것 | 손글씨 읽기라면 |
|---|---|---|
| 학습 데이터 | 규칙을 찾아내는 데 쓰는 재료가 되는 데이터 | 사람들이 쓴 숫자 이미지 묶음 |
| 모델 | 학습으로 얻어 낸 규칙 덩어리. 새 값을 넣으면 답을 내놓는다 | 이미지를 넣으면 어떤 숫자인지 알려 주는 것 |
| 딥러닝 | 기계학습의 한 갈래. 사람 뇌의 신경세포가 이어진 모양을 모방한 인공신경망을 여러 층으로 쌓아 학습한다 | 이미지처럼 복잡한 것을 다룰 때 주로 쓰인다 |
문제를 풀 때 핵심 요소를 뽑아 말 · 표 · 그림으로 정리하는 일도 모델링이라고 부릅니다. 그쪽은 사람이 문제를 정리한 결과이고, 기계학습의 모델은 컴퓨터가 데이터에서 학습해 얻은 규칙이라는 점이 다릅니다.
셋의 관계를 헷갈리기 쉽습니다. 인공지능이 가장 넓은 용어이고, 그 안에 기계학습이 있고, 그 안에 딥러닝이 있습니다. 그러니 「딥러닝을 썼다」는 말은 「기계학습을 썼다」는 말이기도 하지만, 그 반대가 늘 성립하지는 않습니다.
데이터가 성능을 좌우한다
규칙을 데이터에서 찾아내므로, 어떤 데이터를 주었느냐에 따라 어떤 규칙이 나올지가 정해집니다. 모델이 잘 맞히지 못할 때 사람들이 먼저 데이터를 다시 보는 것은 그 때문입니다.
양이 모자라면
본 것이 적으니 찾아낸 규칙도 어설픕니다. 세 사람의 글씨만 본 모델은 네 번째 사람의 글씨에서 흔들리기 쉽습니다.
한쪽으로 치우치면
양이 많아도 모인 쪽이 한쪽이면 그만큼 도움이 되지 않습니다. 오른손으로 쓴 글씨만 모았다면 왼손으로 쓴 글씨에서 어긋날 수 있습니다.
더 조심할 것은 답이 잘못 붙은 데이터입니다. 사람이 답을 적어 주다가 몇 개를 잘못 적으면, 모델은 그 잘못까지 그대로 배울 수 있습니다. 그래서 기계학습에서 「데이터의 질」을 검토할 때는 세 가지를 봅니다. 고르게 모였는가, 답이 바르게 붙었는가, 빠진 것이 없는가.
기계학습으로 문제를 풀 때 대개 가장 오래 걸리는 일은 모델을 만드는 일이 아니라 데이터를 모으고 정리하는 일입니다. 학습을 시키는 것 자체는 오히려 금방 끝나기도 합니다.
우리 반 학생들의 글씨만 모아 손글씨 읽기 모델을 만들었습니다. 어떤 글씨에서 잘 맞히고 어떤 글씨에서 어긋날까요? 그리고 이 모델을 학교 밖에서 쓰면 어떤 일이 생길까요?
핵심 정리
기계학습
machine learning
- 컴퓨터가 데이터에서 규칙을 찾아내는 방법
- 규칙을 적을 수 없는데 예는 들 수 있는 일에 쓴다
- 규칙을 적어 풀리는 일은 규칙을 적는 쪽이 대개 더 빠르고 정확하다
뒤바뀐 자리
what goes in, what comes out
- 사람이 적을 때 — 규칙 + 데이터 → 답
- 기계학습(답을 붙여 주는 경우) — 데이터 + 답 → 규칙
- 우리가 하는 일은 예를 모아 답을 붙이는 데까지
쓰는 말
the vocabulary
- 학습 데이터 — 규칙을 찾는 재료
- 모델 — 학습으로 얻은 규칙 덩어리
- 인공지능 ⊃ 기계학습 ⊃ 딥러닝
데이터의 양과 질
quantity and quality
- 준 데이터에 따라 나오는 규칙이 정해진다
- 양이 적거나 한쪽으로 치우치면 어긋난다
- 답이 잘못 붙어 있으면 그 잘못까지 배울 수 있다
확인 퀴즈
배운 내용을 확인해 봅시다.
기계학습에서 학습을 마친 뒤에 얻는 것은?
다음 중 기계학습을 쓰는 것이 알맞은 일은?
다음 세 낱말의 넓이를 바르게 늘어놓은 것은? 인공지능 · 기계학습 · 딥러닝