인공지능 기초

인공지능으로 해결할 수 있는 문제

모든 문제에 기계학습이 필요한 것은 아닙니다.
규칙을 적어 주면 끝나는 문제와 예를 보여 주어야만 풀리는 문제를 나누고, 뒤엣것을 풀어 가는 여섯 단계를 확인해 봅시다.

학습 목표

  1. 규칙을 사람이 직접 적어 풀 수 있는 문제와, 데이터에서 규칙을 찾아내야 하는 문제를 구별할 수 있다.
  2. 기계학습을 쓰지 않는 편이 나은 경우를 예를 들어 설명할 수 있다.
  3. 기계학습 문제 해결 과정 여섯 단계의 순서와 각 단계에서 정하는 것을 말할 수 있다.
  4. 여섯 단계가 한 방향으로만 흐르지 않고 앞 단계로 되돌아가는 과정임을 설명할 수 있다.

이 강의노트는 기계학습의 여섯 단계를 프로젝트 하나를 진행하는 순서로 세워, 어느 자리에서 무엇을 정하고 무엇을 남기는지를 봅니다.

규칙으로 적을 수 있습니까?

기계학습이 필요한 문제는 생각보다 적습니다

주제를 골랐다면 이제 이 문제가 정말 기계학습이 있어야 풀리는지 물어야 합니다. 답을 정하는 물음은 하나뿐입니다.

자판기에는 기계학습이 필요 없습니다

복도의 음료 자판기는 꽤 똑똑해 보입니다. 돈을 세고, 잔돈을 계산하고, 품절된 칸의 불을 끄고, 카드도 받습니다. 그런데 이 안에 들어 있는 것은 전부 사람이 미리 적어 둔 규칙입니다. 규칙으로 움직인다고 해서 인공지능과 거리가 먼 것은 아닙니다. 사람이 적어 준 지식으로 추론하는 방식도 인공지능의 한 갈래입니다. 여기서 묻는 것은 예에서 규칙을 배워야 하는가, 곧 기계학습이 필요한가입니다.

「1,000원이 들어오고 콜라 버튼이 눌렸으면 콜라를 내보내고 200원을 거슬러 준다. 콜라 칸이 비었으면 버튼의 불을 끈다.」 조건이 수백 개로 늘어나도 이렇게 적어 내려갈 수는 있습니다.

그런데 자판기에 이런 일을 시킨다고 해 봅시다. 「앞에 선 사람이 지금 목이 마른지 알아내라.」 규칙을 적어 보려 하면 곧 막힙니다. 땀을 흘리고 있으면? 운동복 차림이면? 여름이면? 어느 것도 언제나 맞지는 않습니다. 그런데 예를 들어 보라면 얼마든지 들 수 있습니다. 목말라 보이는 사람의 모습과 그렇지 않은 사람의 모습을 잔뜩 모을 수는 있으니까요.

규칙을 끝까지 적을 수 있는가?

적을 수 있다면 규칙으로 짜는 편이 낫습니다. 빠르고, 적어 둔 대로만 움직이고, 왜 그렇게 나왔는지 언제나 설명할 수 있습니다.

규칙은 못 적겠는데 예는 들 수 있는가?

이때가 기계학습을 쓸 때입니다. 규칙을 사람이 적는 대신, 쌓아 놓은 예에서 기계가 규칙을 찾아내게 합니다.

로봇 공학자 한스 모라벡은 사람에게 어려운 일이 기계에는 쉽고, 사람에게 쉬운 일이 기계에는 어렵다고 했습니다. 이를 모라벡의 역설이라고 부릅니다.

어른도 몇 년을 배워야 하는 체스는 규칙이 분명해서 기계가 일찍 해냈습니다. 반면 어린아이도 곧바로 해내는 「고양이 알아보기」는 규칙을 적을 수가 없어 오래 걸렸습니다. 이 역설을 앞의 물음으로 옮기면, 기계학습이 필요한지를 정하는 것은 사람에게 어려워 보이는지가 아니라 규칙을 적을 수 있는지입니다.

나누어 봅시다

하려는 일 규칙을 적을 수 있나 그래서 어떻게 푸나
과목 점수로 총점과 석차 내기 적을 수 있다 계산식 하나면 끝납니다. 여기에 기계학습을 얹으면 느려지고 틀릴 여지만 생깁니다.
도서 연체료 계산하기 적을 수 있다 연체 일수에 하루치 금액을 곱합니다. 규칙이 바뀌면 숫자만 고치면 됩니다.
손으로 쓴 숫자 읽기 적을 수 없다 사람마다 획이 달라 규칙이 서지 않습니다. 예를 잔뜩 모아 기계가 규칙을 찾게 합니다.
사진 속에 고양이가 있는지 알아보기 적을 수 없다 「귀가 뾰족하면」 같은 규칙은 곧 반례에 부딪힙니다. 예로 배우게 합니다.
광고 메일 걸러 내기 처음에는 적을 수 있다 특정 낱말을 막는 규칙으로 시작하지만, 보내는 쪽이 표현을 바꾸면 곧 따라가지 못합니다. 규칙과 기계학습을 함께 쓰는 자리입니다.

「광고 메일 걸러 내기」 줄을 눈여겨보세요. 둘 중 하나를 골라야 하는 것이 아닙니다. 실제로 쓰이는 시스템은 규칙으로 처리할 수 있는 부분은 규칙으로 두고, 규칙이 따라가지 못하는 부분만 기계학습에 맡기는 경우가 많습니다.

스스로 확인

학교 매점이 두 가지 일을 자동으로 하려 합니다. 「남은 수량이 다섯 개 아래로 떨어지면 주문 알림을 보낸다」와 「내일 어떤 빵이 많이 팔릴지 가늠한다」입니다. 각각 규칙으로 짜는 편이 나을까요, 기계학습에 맡기는 편이 나을까요?

기계학습이 잘하는 일

「똑똑해서」가 아니라 「지치지 않고 많이 볼 수 있어서」입니다

사람이 다 볼 수 없는 양을 살펴봅니다

수만 장의 사진, 수십 년치의 기록처럼 사람이 하나씩 보기에는 너무 많은 것을 빠짐없이 지나갑니다.

적을 수 없는 판단을 예로부터 배웁니다

앞에서 본 그대로입니다. 규칙이 서지 않는 자리에서 쌓인 예를 근거로 판단합니다.

지치지 않고 같은 기준을 적용합니다

사람은 오래 하다 보면 같은 것을 다르게 판단하기도 하지만, 학습을 마친 모델은 대개 같은 입력에 같은 답을 내놓습니다.

놓치기 쉬운 자리를 찾아 줍니다

평소와 다른 값이 나온 곳을 먼저 표시해, 사람이 어디부터 볼지 정하는 것을 돕습니다.

「같은 기준」은 「옳은 기준」과 다릅니다

「지치지 않고 같은 기준을 적용합니다」를 오해하기 쉽습니다. 같은 입력에 같은 답을 낸다는 뜻이지, 그 답이 옳다는 뜻이 아닙니다. 한쪽으로 치우친 데이터로 배운 모델은 치우친 판단을 흔들림 없이 반복합니다. 사람이라면 「이번 건은 좀 이상한데」 하고 멈출 자리에서도 모델은 멈추지 않습니다. 일관성은 장점이자 위험입니다.

스스로 확인

급식실에서 잔반 사진으로 남은 양을 판정하는 모델이 조명이 밝은 날의 사진으로만 배웠다고 합시다. 흐린 날 찍은 사진 앞에서 이 모델이 흔들림 없이 같은 기준을 적용한다는 것은 장점일까요, 위험일까요?

쓰지 않는 편이 나을 때

「기계학습을 쓰지 않기로 했다」도 프로젝트의 결론이 될 수 있습니다

① 규칙이 이미 분명할 때

앞의 표에서 본 그대로입니다. 계산식으로 끝나는 일에 모델을 얹으면 느려지고, 틀릴 여지가 생기고, 왜 그렇게 나왔는지 설명하기만 어려워집니다.

② 데이터가 없거나 모을 수 없을 때

기계학습은 예에서 규칙을 찾는 방법이므로 예가 없으면 아무것도 할 수 없습니다. 「어딘가에 있을 것 같다」는 것과 「이번 달 안에 손에 넣을 수 있다」는 것은 다릅니다.

③ 왜 그렇게 나왔는지 설명해야 하는 자리일 때

합격과 불합격, 장학금을 받을지 말지처럼 결과를 받은 사람이 까닭을 물을 수 있는 자리가 있습니다. 근거를 대지 못하면 성능이 아무리 좋아도 그대로 쓸 수 없습니다.

④ 무엇이 옳은지 사람마다 생각이 나뉘는 문제일 때

정답을 정할 수 없으면 모델이 맞혔는지 틀렸는지 판정할 방법도 없습니다. 이런 문제는 물음을 바꾸어 판정할 수 있는 형태로 옮긴 다음에 다루어야 합니다.

「이런 자리에서는 기계학습을 쓰면 안 된다」로 외울 것이 아닙니다. 실제로 ③에 해당하는 자리에도 기계학습은 쓰입니다. 다만 그때는 사람이 최종 판단을 하고 모델은 참고 자료를 만드는 쪽으로 물러나거나, 근거를 함께 내놓도록 만듭니다. 물어야 할 것은 「써도 되는가」가 아니라 「이 자리에서 무엇을 얻고 무엇을 잃는가」입니다.

스스로 확인

학교가 동아리 지원자를 고르는 데 모델을 쓰려 합니다. 떨어진 학생이 까닭을 물을 수 있게 하려면 모델에게는 어떤 역할만 맡기고, 최종 판단은 누가 해야 할까요?

기계학습 문제 해결 과정 여섯 단계

각 단계에서 무엇을 정하고, 무엇을 남기나요?

기계학습의 여섯 단계를 프로젝트 하나를 진행하는 순서로 세웁니다. 새로 배우는 기술은 없고, 자리를 잡아 주는 일만 합니다.

1 문제 정의 2 데이터 수집 3 데이터 전처리 4 유형· 알고리즘 선정 5 모델 생성 6 성능 평가 성능이 아쉬우면 앞 단계로 돌아갑니다

각 단계에서 정하는 것과 남기는 것

단계마다 결정이 하나씩 있고, 그 결정의 흔적이 하나씩 남습니다. 흔적을 남겨 두지 않으면 나중에 성능이 좋아졌을 때 무엇 덕분인지 알 수 없습니다.

단계 이름 여기서 정하는 것 남기는 것
1 문제 정의 무엇을 입력으로 삼고 무엇을 맞히게 할지 한 문장으로 적은 문제와 성공 기준
2 데이터 수집 어떤 값을 어디서 어떻게 모을지 원본 데이터와 출처 기록
3 데이터 전처리 무엇을 버리고 무엇을 채우고 무엇을 바꿀지 정리된 데이터와 손댄 내역
4 유형·알고리즘 선정 어느 갈래이고 어떤 알고리즘을 쓸지 고른 알고리즘과 고른 까닭
5 모델 생성 훈련과 테스트로 나누는 비율, 설정값 학습을 마친 모델과 설정값
6 성능 평가 무엇으로 측정하고, 어디로 돌아가 무엇을 고칠지 성능 수치와 다음에 바꿀 것
스스로 확인

한 모둠이 데이터 전처리 단계에서 빈칸을 평균값으로 채웠는데 그 사실을 적어 두지 않았습니다. 두 주 뒤 성능이 갑자기 달라졌을 때, 이 모둠이 답하지 못하게 되는 물음은 무엇일까요?

여섯 단계는 한 줄로 흐르지 않습니다

되돌아가는 것은 잘못된 것이 아니라 원래 그런 것입니다

자주 생기는 되돌아감 세 가지

성능 평가 → 데이터 전처리 — 데이터가 지저분했다

성능이 이상하게 나빠서 살펴보니, 같은 뜻인데 표기가 다른 값이 섞여 있거나 단위가 뒤엉켜 있었습니다. 모델이 아니라 데이터를 고쳐야 하는 경우이며, 자주 일어납니다.

성능 평가 → 데이터 수집 — 데이터가 모자라거나 치우쳤다

전체 정확도는 높은데 어느 한 갈래만 유난히 못 맞힙니다. 그 갈래의 예가 너무 적었던 것입니다. 더 모으러 돌아갑니다.

유형·알고리즘 선정 → 문제 정의 — 맞힐 수 없는 것을 맞히려 했다

알고리즘을 고르려다 보니 모은 데이터 안에 정답에 해당하는 값이 아예 없다는 것을 깨닫습니다. 가장 아프지만 가장 일찍 알아채야 하는 되돌아감입니다. 문제 정의부터 다시 씁니다.

돌아갈 때 지킬 것 두 가지

한 번에 하나만 바꿉니다

데이터를 더 모으면서 알고리즘도 바꾸고 설정값도 함께 만지면, 성능이 올라가도 무엇 덕분인지 알 수 없습니다. 다음에 또 막혔을 때 쓸 수 있는 것이 아무것도 남지 않습니다.

바꾼 것과 그때의 수치를 적어 둡니다

「무엇을 바꿨더니 얼마가 되었다」를 한 줄씩 쌓아 둡니다. 이 기록이 보고서의 절반이 되고, 모둠원끼리 같은 실수를 두 번 하지 않게 해 줍니다.

그래서 계획서는 지키려고 쓰는 문서가 아닙니다. 처음에 무엇을 정했는지 적어 두어야 나중에 무엇을 왜 바꾸었는지 말할 수 있습니다.

스스로 확인

분실물 사진을 종류별로 나누는 모델이 전체로는 잘 맞히는데 「우산」만 계속 틀립니다. 어느 단계로 돌아가야 할까요? 돌아가서 무엇 한 가지부터 바꿔 보겠습니까?

핵심 정리

구분하는 물음은 하나

규칙을 끝까지 적을 수 있는가? 적을 수 있으면 규칙으로 짜는 편이 낫고, 규칙은 못 적겠는데 예는 얼마든지 들 수 있으면 기계학습의 자리입니다. 둘을 함께 쓰는 자리도 많습니다.

모라벡의 역설

사람에게 어려운 일이 기계에는 쉽고, 사람에게 쉬운 일이 기계에는 어려운 경우가 많습니다. 그래서 기계학습이 필요한지를 정하는 것은 사람에게 어려워 보이는지가 아니라 규칙을 적을 수 있는지입니다.

쓰지 않는 편이 나을 때

규칙이 이미 분명할 때, 데이터를 모을 수 없을 때, 근거를 설명해야 하는데 댈 수 없을 때, 사람마다 답이 나뉠 때입니다. 다만 「써도 되는가」가 아니라 「무엇을 얻고 무엇을 잃는가」를 물어야 합니다.

여섯 단계와 되돌아감

문제 정의 → 데이터 수집 → 데이터 전처리 → 유형·알고리즘 선정 → 모델 생성 → 성능 평가. 한 줄로 흐르지 않고 앞으로 돌아갑니다. 돌아갈 때는 한 번에 하나만 바꾸고, 바꾼 것을 적어 둡니다.

확인 퀴즈

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

Q1 다음 중 기계학습을 쓰는 것이 알맞은 일은 무엇일까요?

Q2 「학습을 마친 모델은 같은 입력에 같은 답을 낸다」는 성질에 대한 설명으로 알맞은 것은?

Q3 전체 정확도는 높은데 어느 한 갈래만 유난히 못 맞히고 있습니다. 어느 단계로 돌아가는 것이 알맞을까요?

Q4 되돌아가서 고칠 때 한 번에 하나만 바꾸라고 한 까닭은 무엇일까요?