인공지능 AI

Q. 왜 기계 학습, 머신 러닝Machine Learning이라고 할까? 진짜로 러닝, 학습하는 걸까?

Tap to restart 2021. 2. 12. 14:00

A. 진짜 인간의 학습과 아주 비슷하다.

 

우리가 어떤 새로운 것, 구구단, 새로운 단어를 배울 때처럼 기계도 학습을 한다.

 

구구단을 배울 때를 생각해보자.

다들 어릴 때라 생각이 안 나겠지만, 그때를 떠올려보거나 아이가 있다면 아이가 학습하는 과정을 생각해보자.

9 × 9 = 90 → 땡

9 × 9 = 70 → 땡

9 × 9 = 85 → 땡

9 × 9 = 78 → 땡

9 × 9 = 79 → 땡

9 × 9 = 81 → 정답!

이런 과정을 거쳐서 덧셈, 뺄셈, 곱셈, 나눗셈 등을 익혔다. 처음 구구단을 배울 때는 정말 어려웠고, 틀리는 경우가 많았지만, 계속 학습 → 결과 추론 → 결과 확인 → 다시 학습 과정을 반복하면서 오차를 줄여가며 정답에 이르게 된다. 나중에는 정답이 100%가 된다.

 

아이를 키워보니 개와 고양이를 구분하는 것도 비슷하다. 부모는 개인지 고양이인지 정답을 알고 있다. 아이는 "야옹이다!"라고 말하고, 부모는 야옹이가 아닐 경우, "아니 저건 귀가 뾰족한 강아지야"라고 알려준다. 그런 계속된 학습 과정을 거쳐서 오류 없이 고양이를 구분할 수 있게 된다.

 

머신러닝 학습 과정

이와 비슷한 과정을 컴퓨터에서 알고리즘으로 구현한 것이 머신러닝이다.

머신러닝은 많은 량의 데이터를 통해서 학습을 시킨다. 데이터를 학습 세트training set, 검증 세트validation set, 테스트 세트test set로 나눠서 하는데 이것도 우리가 학습해왔던 방식과 비슷하다.

 

데이터에는 입력값과 정답이 있다. 예를 들어 고양이 강아지 사진이라면 1번 사진은 고양이 2번 사진은 강아지, 이런 식으로 말이다. 많은 양의 사진을 통해서 컴퓨터는 이런 사진은 고양이구나, 이런 사진은 강아지구나라고 학습을 하게 된다. 학습을 끝낸 뒤, 검증 데이터를 통해서 입력으로 사진을 받아, 고양이인지 강아지인지 예측을 한다. 예측 결과 정확도가 너무 낮다면 다시 학습에 들어가고, 그 과정을 통해서 정확도를 높여간다. 마지막에 테스트 데이터를 통해서 정확도를 측정한다. 과정을 반복해서 처음보다 뒤로 갈수록 예측 결과가 나아진다면 우리는 학습했다고 말할 수 있을 것이다. 그래서 머신 러닝이라고 부른다. 

 

아이에게 고양이를 가르친다고 했을 때 머신러닝의 데이터 구분에 따라 설명해본다면,

학습 데이터는 집에서 보는 고양이 사진, 그림책에 나오는 고양이의 모습이다. 초기에 부모는 '이건 야옹이야.'라고 손가락으로 가리키면서 고양이를 학습 시킨다. 아이는 고양이라 부르는 어떤 동물에 대해서 학습을 하게 된다.

검증 데이터는 새 그림책에 나온 고양이 그림이다. 새 그림책에 나온 고양이를 보고, 아이는 '야옹이다!'라고 말한다.

테스트 데이터는 산책 나갔을 때 실제로 만나는 고양이 또는 강아지다. 작은 포메라니안을 봤을 때, '야옹이다!'라고 말하고, 부모는 아니 저 친구는 '작은 강아지야!'라고 알려주게 된다.

 

이 과정을 계속 반복하면서 아이는 고양이가 무엇인지 확실히 알게 된다. 아이에게 고양이를 가르치는 과정을 생각해보면, 고양이는 동물이고, 동물 중 포유류이고, 포유류 중에서 크기가 작고, 크기가 작으면서 귀는 쫑긋 서있고 등 고양이에 대해서 아주 자세한 설명을 한 적이 없다. 설명을 해도 알아듣지 못하니까. 이런 식으로 설명하는 것은 어떻게 보면 기존 프로그래밍과 흡사하다. if 만약 크기가 크다면? 고양이는 아니다. if 만약 귀가 접혀 있다면? 고양이는 아니다. 이런 식으로 말이다.

 

아이가 고양이를 배우는 과정은 머신러닝과 아주 흡사하다. 보고 학습하고, 자꾸 비슷한 동물로 확인하고, 틀리면 다시 학습하고 그 과정을 통해서 고양이를 인식하게 된 것이니까. 머신러닝 알고리즘도 대체로 비슷하다. 철학에 나오는 귀납 추론과 비슷하다.