결론부터 말씀드리면 기계학습은 컴퓨터 과학(공학)의 한 분야입니다.
컴퓨터의 알고리즘을 연구하는 학문인 셈이죠.
그러면 데이터 분석과 어떤 관련이 있기에 소개하는 것일까요?
그 이유는 기계학습의 알고리즘은 데이터를 기반으로 학습하기 때문입니다.
기계학습이라는 용어는 의외로(?) 그 역사가 오래 되었습니다.
미국의 컴퓨터 과학자 아서 사무엘(Arthur Lee Samuel, 1901.12.05 – 1990.07.29)이 1959년 ‘IBM Journal of Research and Development’라는 저널에 ‘Some Studies in Machine Learning Using the Game of Checkers’라는 논문을 개제하며 세상에 등장합니다.
이 논문은 말 그대로 ‘체커(서양 장기)를 활용한 기계학습에 대한 연구’입니다.
이쯤 되면 ‘알파고’의 고조 할아버지 뻘 되는 걸까요?
컴퓨터의 시초라 불리는 에니악(ENIAC:Electronic Numerical Integrator And Computer)이 1946년생이니까 ‘기계학습’이라는 용어는 거의 초창기 용어라고 볼 수 있는 것이죠.
그는 이 논문에서 기계학습에 대해 명쾌하게 정의를 내렸는데요.
의역을 하자면 ‘기계학습은 사람이 일일이 기계에 명령을 코드로 입력하지 않아도 기계가 알아서 동작하도록 데이터로부터 학습하는 알고리즘을 개발하고 연구하는 분야.’라고 했습니다.
기계학습에 대한 정의는 여럿 있지만 저는 개인적으로 아서 사무엘의 정의가 기계학습을 가장 잘 표현하지 않았나 싶습니다.
‘하루가 다르게 기술이 발전하는 세상에서 사골 같은 정의 아닌가요?’라고 비웃는 분들도 계시겠지만, 뭐 저 정의가 딱히 틀렸다고 하기도 그렇습니다.
조금 첨가를 하자면 단순히 학습만 하는 게 아니라 성능도 고려하며 학습을 한다? 이정도면 될까요?
제가 말씀드리고 싶은 핵심은 기계학습은 ‘데이터로부터 학습하는 알고리즘’이라는 것입니다.
기계학습을 보다 쉽게 이해하기 위해서 ‘데이터란 무엇일까?’라는 아주 근본적인 질문에 대해 고민을 해 보겠습니다.
여러분은 ‘데이터’는 무엇이라고 생각하시나요?
제 나름대로 정의를 내리자면 데이터는 원하는 결과를 얻기 위해 사용되는 가공전의 사실이라고 할 수 있겠습니다.
데이터로부터 원하는 결과는 사람마다 다를 수 있겠죠?
또한 원하는 결과를 얻기 위해서는 반드시 데이터 분석을 통해서만 이루어지는 것도 아니죠.
아주 단순하게 생각해보면 머리 속에서 고민해서 원하는 결과를 도출해 낼 수도 있습니다.
좀더 근사한 표현을 쓰자면 데이터는 개인적이든, 기업적이든, 공익적이든, 그 무엇이든 간에 의사결정이 필요한 순간이나 다음 상황을 예측하고자 할 때 훌륭한 조언자가 되어 준다는 것이죠.
그런 의미에서 넓게 보자면 경험도 다음 상황을 위한 훌륭한 데이터가 될 수 있습니다.
바로 이 ‘경험도 곧 데이터다.’라는 이야기를 하기위해 서두가 좀 길었습니다.
기계학습에 대한 이해는 경험도 데이터라는 관점에서 접근하면 쉬워집니다.
우리들의 어린 시절을 생각해 보세요.
대부분의 의사결정은 부모님의 의견에 따라 결정이 됩니다.
무엇이 좋고 무엇이 나쁜지, 해야 할 일과 하지 말아야 할 일 등을 말이죠.
그건 아마도 어린 아이일수록 부모님들에 비해 경험이 부족하기 때문일 것입니다.
바꿔 말하면 충분한 데이터가 쌓이지 않은 것이죠.
무엇인가 의사결정을 하고 다음 상황을 예측해야 하는데 내 머리 속 컴퓨터의 데이터(경험)에서는 그 해답을 찾을 수 없었던 것입니다.
하지만 어리다고 무조건 부모님의 의견을 따르는 건 아닙니다.
가끔은 스스로 판단하고 실행을 할 때도 있습니다.
쓰디쓴 약과 달콤한 사탕을 주면 선택은 언제나 후자인 것처럼 말이죠.
내 경험속에는 달콤한 사탕이 내 입맛에 훨씬 잘 맞으니까요.
경험, 데이터의 많고 적음에 차이만 있을 뿐 의사결정은 이뤄져야 하고 다음 상황은 예측되야 합니다.
이것이 바로 기계학습인 셈이죠.
주어진 데이터 속에서 알고리즘을 통해 스스로 학습하고 다음 상황을 예측을 하는 것이죠.
당연히 데이터가 많을 수록 예측은 더 정교해질 것이며 신뢰성도 높아질 것임은 자명합니다.
경험이 많으면 현명한 판단을 할 수 있는 것과 같은 이치죠.
경험을 통해 스스로 판단하고 예측한다?
왠지 사람이 하는 일을 기계도 할 수 있다는 얘기 같습니다.
네, 맞습니다.
AI(artificial Intelligence)와 아주 밀접한 관련이 있는 기술입니다.
사람이 경험할 법한 엄청난 양의 데이터를 빠르게 학습하여 스스로 판단하고 결정하는 기술입니다.
세상 모든 사람의 경험을 바탕으로 구현된 알고리즘이라면 정말 완벽하겠죠?
하지만 인간이 경험하지 못한 새로운 경험은 등장하기 마련입니다.
지금 이 글을 쓰고 있는 현재의 COVID-19 펜데믹 상황도 현 인류가 경험하지 못한 상황이죠.
제가 생각하기에 기계학습을 가장 잘 반영했던 알고리즘은 오래전 이세돌 구단과 승부를 겨뤘던 ‘알파고’였습니다.
지금은 그 때와는 상상도 못할 정도로 업그레이드가 되었죠.
그때의 기억을 잠시 되돌려 보면 알파고는 거침이 없었습니다.
이 세상의 모든 바둑의 수를 저장하고 빠르게 찾아 냈으니까요.
하지만 4번째 대국에서 알파고는 치명적인 실수를 하고 맙니다.
저장된 데이터에 없던 수를 이세돌 구단이 착수한 것이죠.
이처럼 경험하지 못한 순간은 있습니다.
아직 저장되고 입력된 데이터가 없는 경우입니다.
다시 그 시절 알파고 얘기를 좀 더 해보겠습니다.
이세돌 구단의 돌발 수에 알파고는 당황했지만 그렇다고 다음 수를 두지 않았던 것은 아닙니다.
결국 기권을 하긴 했지만 말이죠.
핵심은 경험하지 못했다고, 입력되고 저장된 데이터가 없다고 의사결정을 안 할 수는 없다는 것입니다.
비록 알고리즘이 데이터를 찾지 못했지만 어찌 되었던 의사결정은 이루어 져야 합니다.
그래서 알고리즘은 데이터를 찾지 못할 경우 보유한 데이터 만으로 새로운 경험을 스스로 탐색하고 만들어 갑니다.
쉽게 말해 저장된 데이터가 없어도 의사결정이 가능하다는 의미가 됩니다.
기계학습처럼 저장된 데이터만으로 정해진 학습만 하는 것이 아닌 데이터를 통해 새로운 학습방법도 스스로 만들어 가는 것이죠.
바로 이것을 우리는 심화학습이라 부를 수 있는 것이죠.
자 그럼 다음 시간에는 이 심화 학습에 대한 이야기를 해보도록 할게요.