brunch

You can make anything
by writing

C.S.Lewis

by 삼더하기일 Mar 29. 2021

머신러닝? 기계학습? 기계가 뭘 학습한다는 거야?

머신러닝의 기초컨셉

빅데이터와 인공지능이 발전함에 따라 머신러닝이라는 단어를 흔하게 들을 수 있게 됐다. 머신러닝은 한국어로 기계학습이라 번역된다. 아무래도 단어의 이름이 직관적인 편이라 많은 사람들이 머신러닝의 정체를 잘 알고 있다. 이름에서 드러나듯 머신러닝은 기계에게 스스로 학습을 시켜 인공지능을 구현하게 하는 방식이다. 하지만 여기서 한 단계만 더 파고 들어가면 문제가 생각보다 어려워진다. 기계가 무엇을 학습한다는 것일까? 그리고 그 학습은 도대체 어떻게 스스로 한다는 것일까?


기계에게 대체 무엇을 어떻게 학습시킨다는 건가요?


생각해보면 참 아쉬운 부분이다. 머신러닝이 기계에게 스스로 학습을 시켜 인공지능을 구현하도록 하는 방식이라는 것은 알려주는 사람이 참 많지만 구체적인 알맹이를 빼먹는 경우가 많다. 여기서 말하는 구체적인 알맹이란 What과 How를 의미한다. How에 대한 내용을 너무 복잡해서 생략한다고 하더라도 적어도 What에 대한 내용은 많은 사람들이 알아야 할 필요성이 있다고 생각한다. 기계가 무엇을 학습하는지 아는 것 자체만으로 빅데이터, 인공지능 세계를 한 단계 더 고차원적으로 이해할 수 있기 때문이다.


데이터 간의 관계를 학습하게 됩니다. 그래서 학습 재료는 빅데이터예요!


사실 머신러닝에서 기계가 결국 무엇을 학습하는 것이냐고 물어보았을 때 그 답은 간단하다. 데이터 간의 관계를 학습하는 것이다. 그렇기에 학습 대상이 되는 것은 결국 빅데이터다. 이전 글(https://brunch.co.kr/@8d1b089f514b4d5/7)에서 설명하였듯 빅데이터와 인공지능이 밀접한 공생 관계에 있는 이유가 바로 여기 머신러닝에 있다. 기계 즉, 컴퓨터는 대량의 데이터를 읽어서 그 데이터 간의 관계를 파악하게 된다. 데이터 간의 연관성이 어떻게 형성되어있는지를 사람이 일일이 알려주지 않고 단순히 데이터만 던져주어 기계가 스스로 알아가도록 한다. 이게 기계학습의 가장 근본적인 개념이다.


방금 머신러닝은 데이터 간의 관계를 스스로 학습하는 것이라고 했다. 그런데 생각해보면 관계라는 것은 혼자서는 만들어낼 수 없는 존재이다. 이 말은 즉슨 여기서 말하는 데이터는 무언가를 기준으로 구분할 수 있다는 뜻이다. 데이터를 두 가지로 구분하여 이 분리된 데이터 간의 연관성을 기계에게 학습하게 한다. 그리고 이 지점에서 데이터를 두 가지로 구분하는데 약간의 통계적인 사고방식이 필요하다. 기본적으로 데이터는 종속변수와 독립변수라는 두 가지의 카테고리로 나누어 볼 수 있다.


독립변수는 원인, 종속변수는 결과라고 생각하면 편합니다.


독립변수와 종속변수는 사실 이름을 가지고 직관적으로 이해하기는 쉽지 않다. 쉽게 생각했을 때, 종속변수는 우리가 관심을 가지고 있는 결과, 독립변수는 종속변수에 영향을 미치는 원인이라고 생각하면 좋다. 그리고 이 종속변수와 독립변수 각각의 동의어들이 상당히 많다. 원인 변수, 예측 변수, 설명변수 등이 독립변수와 완전히 같은 의미를 지니고 있고 결과변수, 반응 변수, 타깃 변수 등이 종속변수와 완전히 같은 의미이다. 차이는 사실상 없다고 봐도 무방하다. 그냥 통계학 동네에서의 이야기이냐 머신러닝 동네에서의 이야기이냐 차이다.


사실 머신러닝이 학습하는 대상을 이야기하다가 왜 독립변수와 종속변수를 이야기하는 것인지 잘 이해가 되지 않을 수도 있다. 다시 한번 말하지만 기계가 학습하는 것은 데이터 간의 연관성이라고 했다. 여기서 한 발자국 더 나가면 독립변수와 종속변수의 개념을 알 필요성이 있다. 데이터 간의 연관성 중에서도 독립변수와 종속변수의 연관성을 학습해 나가는 것이 가장 기본적인 머신러닝의 개념이기 때문이다. 그래서 데이터를 바라볼 때 결국 우리의 관심이 되는 대상인 종속변수가 무엇인지, 그리고 종속변수의 변화 원인이 되는 독립변수가 무엇인지 먼저 파악할 줄 아는 것이 상당히 중요하다.


독립변수와 종속변수의 이해를 돕는 차원의 마지막으로 해당 변수들의 예시를 들어보도록 하겠다. 만약 사람의 신체 데이터를 가지고 그 사람의 평균 수명을 예측하려는 인공지능을 구현한다고 생각해보자. 여기서 관심의 대상은 당연히 각 사람들의 수명이다. 그렇다면 수명이 종속변수가 되는 것이다. 그리고 독립변수는 우리가 만들어내고 데이터를 수집하기 나름이다. 수명에 영향을 미치는 것 중 비만도, 하루 운동량, 음주 여부, 흡연 여부 등 다양한 원인이 존재할 수 있다. 이 데이터들이 전부 독립변수에 해당한다.


데이터 간의 관계를 파악하는 능력은 사람보다 기계가 훨씬 뛰어납니다.


그렇다면 왜 굳이 기계에게 스스로 데이터 간의 관계를 파악하라고 하는 것일까. 사람이 데이터 간의 관계를 조금 더 신뢰성 있게 알아내고 이를 기계에게 그냥 가르쳐주면 안 되는 것일까. 굳이 머신러닝이라는 이름으로 기계가 스스로 학습하게 하는 이유는 데이터 간의 관계를 파악하는 능력이 사람보다 기계가 압도적으로 좋기 때문이다. 데이터 분석을 통해 사람들이 기존에 파악하지 못했던 신선한 결과를 내놓는 경우가 더러 발생하는 것이 이 이유 때문이라고 볼 수 있다.



예를 들어 위와 같이 개와 고양이의 사진 데이터가 있다고 하자. 여기서 관심이 되는 종속변수는 개와 고양이 그 자체이다. 고양이 사진에서는 종속변수가 고양이이고 개 사진에서는 종속변수가 개다. 여기서 한번 생각을 해보자. 사람이 직접 기계에게 개와 고양이를 구별하는 방법을 가르쳐줄 수 있을까? 만약 가르쳐 준다면 어떤 방식이 될 수 있을까? 사람이 직관적으로 사진을 보고 개와 고양이를 구분하는 것은 쉽다. 하지만 왜 이것을 고양이라고 생각했는지, 왜 이 사진 속 대상을 개라고 생각했는지 이유를 말해보라고 하면 정말 어렵다. 하지만 머신러닝 세계에서는 다르다. 기계에게 그냥 데이터 자체와 종속변수인 개, 고양이 여부를 던져주기만 하면 그 관계를 알아서 학습하게 된다.


위의 개와 고양이 사례처럼 사람이 직접 풀려고 하면 매우 쉽지만 그 문제 풀이 방식을 설명해보라고 하면 난감한 경우가 굉장히 많다. 그렇기에 개 사진 <-> 개, 고양이 사진 <-> 고양이라는 독립변수와 종속변수의 관계를 기계가 알아서 학습하도록 설정한 것이다. 이 사례에서는 개와 고양이였지만 문제를 더 일반화시켜서 A라는 독립변수와 B라는 종속변수 데이터 셋을 가정할 수 있다. 이때 A라는 독립변수 데이터 자체가 C로 변화했을 때 사람은 그 종속변수가 어떻게 변화할지 예측하기 어렵다. 하지만 기계는 데이터 간의 연관성을 학습했기 때문에 A와 C의 연관성을 바탕으로 B와 가장 연관성이 높은 D라는 종속변수를 알아서 찾아내게 된다.


이러한 원리 때문에 머신러닝은 미래를 예측할 수 있게 합니다.


이 부분에서 바로 '예측'이라는 머신러닝의 주요한 가치가 등장하게 된다. 사람은 데이터가 변화함에 따라 실시간으로 종속변수가 어떻게 바뀔지 알아낼 수 없지만 기계는 빅데이터를 통해서 알 수 있다. 즉, 미래에 있을 일을 사전에 예측할 수 있게 한다. 예측 분석, 예측 모델링이라고 불리는 최근 빅데이터/AI 필드에서 가장 핫한 분야가 바로 이것이다. 물론 최근에는 기술적으로 더 발전해 무언가를 예측하는 것을 넘어 새로운 데이터를 생성하고 창작하는 영역까지 인공지능이 발전했다. 그렇지만 그 근간에는 결국 데이터 간의 연관성을 학습하는 머신러닝 기술이 자리 잡고 있고 다시 그 기저에는 빅데이터가 자리 잡고 있다는 것을 알아야 한다.



※ 평소 빅데이터/인공지능에 궁금한 점이 있어 답변을 원하는 내용이 있다면 공유해주시면 감사하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari