본문 바로가기
재테크

알파고의 공부법, 머신러닝!

by fruiter 2020. 8. 1.

알파고를 모르는 사람은 없을 것이다. 알파고는 구글의 딥마인드가 개발한 인공지능 바둑 프로그램인데, 다른 바둑 프로그램들과 총 500회 대국을 벌여 499회 승리라는 이력을 가지고 있으며, 여러 전문 바둑 기사들과의 대국에서도 승리를 통해 인공지능 프로그램의 괴력을 보여주기도 했다. 특히 2016년 3월 9일부터 15일까지 진행되었던 이세돌 9단과 펼친 세기의 바둑대결은 전 세계의 이목을 집중시키기도 했으며, 머잖아 '인공지능이 인간을 지배하는 세상이 올 것'이라는 두려움마저 생기게 했다. 이러한 알파고의 열풍이 지나간 이후에도 여전히 인공지능 머신러닝은 업계 내외에서 많은 관심을 받고 있다.

 

 

 

 

 

최근 인공지능 머신러닝의 기술은 그야말로 놀라울 정도이다. 아마존은 첨단 센서 기술과 컴퓨터 비젼, 딥러닝 등 다양한 인공지능 및 머신러닝 기술을 결합하여 점원이 없는 무인 상점인 '아마존 고'를 일반인에게 공개하기에 이르렀다.

머신러닝 기술이란, 과거 데이터로부터 숨겨져있는 규칙, 또는 패턴들을 찾아내는 기술로써 미래예측을 위한 대안으로 떠오르고 있다. 실제로 많은 기업들이 다양한 비즈니스 모델 안에서 딥러닝을 포함한 머신러닝 기법들을 어떻게 적용을 해야 할지 많은 고민을 하고 있으며, 당면한 문제를 해결하기 위해서 해당되는 기술들을 적용하고 있다.

일각에서는 인공지능 및 머신러닝 기술이 우리가 당면하는 모든 문제를 다 해결해 줄 수 있는 만능해결사가 될 거라고 생각을 하기도 하는데, 머신러닝은 한순간에 뚝딱 만들어지는 것이 아니고 모든 것을 정확히 맞출 수 있는 예언가도 아니다.

따라서 머신러닝의 원리와 머신러닝 모델이 어떻게 구현되고 있는지에 대한 과정을 이해함으로써 머신러닝에 한 발자국 다가서보도록 하자.

 

 

 

 

머신러닝은 기계로 하여금 스스로 학습하고 실행할 수 있도록 하는 알고리즘을 개발하는 연구분야를 말한다.

즉 컴퓨터로 하여금 어떻게 학습을 할 수 있게 할 것인가를 연구하는 것이다. 이때 학습이란 것은 경험을 바탕으로 스스로 성능을 향상하기 위한 일련의 과정으로 정의가 되는데, 사람의 경우 학습이 이루어 지기 위해서는 먼저 과거에 내가 어떤 경험이 있었는지에 대한 기억이 필요하다. 그리고 이를 바탕으로 추론이라는 과정을 통해서 새로운 것을 알아가고 배울 수 있다. 컴퓨터에 있어서 기억은 과거에 누적된 데이터가 될 것이고, 머신러닝의 알고리즘은 그런 데이터를 기반으로 컴퓨터가 스스로 추론할 수 있도록 도와주는 역할을 담당하게 된다. 그렇다면 데이터 속에 숨겨진 규칙, 패턴을 찾는다는 것은 어떤것일까? 간단하게 설명을 하자면 함수(f(x))관계를 찾는 것이라고 볼 수 있다. 

 

 

 

 

 

X가 20일 때, Y가 25라는 데이터가 주어졌다고 가정을 할 때, 이 X와 Y의 관계 즉 이경우에는 Y=X+5라는 함수관계를 찾는 거라고 볼 수 있다. 앞선 예의 경우에는 X가 하나밖에 없어서 쉽게 X와 Y의 관계를 파악할 수 있지만, 문제는 실제 현장에서는 수많은 수의 X 예를 들어 온도, 압력, 시간 등 이런 아주 다양한 X가 존재하며 정말 많은 양의 데이터가 필요하게 된다. 이런 빅 데이터로부터 데이터 속에 숨겨져 있는 규칙을 찾는 일, 즉 X와 Y와의 함수적인 관계를 찾는 일인 것이다. 이처럼 많은 수의 X들과 대량의 빅데이터가 주어졌을 때, 이들로부터 내재되어있는 함수적인 관계를 찾아내는 것이 바로 머신러닝 알고리즘이다. 이런 수치적인 정형화된 데이터가 아닌 비정형데이터의 경우에도 머신러닝의 과정이 가능하다는 것이 빅데이터의 특징이다. 이러한 데이터로부터 다음과 같은 함수관계도 생각을 해볼 수 있을 것이다.

 

 

이런 함수관계를 도출하기 위해서는 아주 대량의 고양이와 개의 사진을 가지고 이들 간의 숨겨져 있는 함수관계를 머신러닝 알고리즘을 통해서 찾을 수가 있는 것이다.

또 다른 예로, 구글 번역기나 네이버의 파파고 같은 번역기도 마찬가지로 대용량의 번역 전, 후의 데이터를 바탕으로 머신러닝 기법을 적용해서 함수관계를 도출해낸 것이라고 볼 수 있다. 이미 딥러닝 기법을 적용해서 번역 서비스를 제공하고 있는 것이다. 

 

일반적으로 머신러닝 알고리즘을 크게 세 가지로 분류한다. 

이미 확보된 데이터에 우리가 알고 싶어 하는 결과값 Y가 포함되어 있는 경우에 적용하는 '지도 학습'.

결과값Y가 없는 데이터로부터 내가 무엇을 알고 싶은지 명확하지 않은 상황 또는 심지어 알 수가 없을 때 적용되는 '비지도 학습'. 시뮬레이션 등을 통한 시행착오를 통해 학습하는 방식인 '강화 학습' 이렇게 세 가지가 있으며, 딥러닝도 이러한 머신러닝 기법 중에 한 가지이다.

 

 

 

 

모든 알고리즘은 각각 다르게 학습을 하며, 어떤 조건의 환경인지에 따라 적용 가능 여부를 판단하는 것이 아주 중요한 부분이라고 할 수 있다. "머신러닝을 통해 우리가 좋은 결과를 얻기 위해서는 어떻게 해야 할까?"라는 질문은 "어떻게 하면 좋은 요리를 만들 수 있을까?"라는 질문과 매우 비슷하다. 

좋은 요리를 만들기 위해서는 먼저 좋은 식자재와 좋은 레시피가 필요하듯, 머신러닝을 통해 좋은 결과를 얻기 위해서는 좋은 데이터, 즉 데이터 속에 숨겨져 있는 패턴을 찾기 위한 적합한 형태의 높은 품질의 데이터가 필요하다. 그리고 이러한 데이터로부터 규칙을 찾기위한 좋은 알고리즘이 필요하게 되는 것이다.

이러한 좋은 데이터와 좋은 머신러닝 알고리즘을 바탕으로 데이터 속에 숨겨져 있는 규칙을 찾아내고 이를 활용하면 미래의 정확도 높은 예측을 통해 아주 다양한 문제들을 해결할 수 있다.   

댓글