Home 머신 러닝, 인공지능, 그리고 데이터
Post
Cancel

머신 러닝, 인공지능, 그리고 데이터

몇 달 전 이 글에서도 언급한 적이 있지만, 인공지능에서 데이터가 왜 필요하냐, 데이터나 통계 하는 사람들은 머신러닝같은 거 나오면 못 쓰게 되지 않냐 하는 질문을 슬금슬금 들어왔고, 최근에는 정말 그 빈도가 매우 높아졌다. 그리고 내 대답은 일정하다. ‘데이터를 사용해서 문제를 풀어서 해답을 찾는 것에서, 최적의 방식은 문제에 따라 다르고, 그 방식을 사용하면 되는 것이라고 생각합니다. 그 방식이 문제에 따라 통계 기법이 될 수도 있고, 알고리즘을 활용한 데이터 마이닝이 될 수도 있습니다. 머신 러닝은 인공지능의 다양한 가지 중 하나이니 크게 보면 인공지능에 포함되기도 합니다. 이런 것들은 서로 맞물려 돌아가고, 어느 정도는 기존에 해왔던 것입니다.’ 라는 것이 내 대답이다.

물론, 많은 사람들은 인공 지능이라고 하면 어떤 고도화된 자동으로 모델이 돌아가면서 성능을 계속 향상시키며 음성으로, 물리적으로도 작동하는 로봇 같은 것을 떠올린다. HAL이나 데이빗같이 SF영화에서 등장하던 로봇들은 우리의 상상 수준을 너무 높여 놓았다. 하지만 이 정도까지는 아니더라도 최소한 보통 온라인에서 돌아가는 코드로만 존재하던 것과는 다른 모습이라고 충분히 생각할 수 있다. 그리고 Robotics(1)에서 mechanic 부분을 제외하더라도, 기존에는 없던, 무언가 새로운 것이 나올 것이라고 생각한다.

그런데 여기, 이미 기존부터 보고 있던 데이터가 들어갈 자리가 있나? 당연히 있다. 데이터 과학이라고 불리는 일에서 어느 정도는 머신 러닝 알고리즘을 사용한다. 클러스터링, 앙상블, 신경망, 이미 다들 알고 어느 정도는 사용하고 있던 알고리즘들이다. 심지어, 믿기지 않겠지만 규칙 기반 알고리즘이나 휴리스틱도 ML알고리즘에 넣을 수 있다. 이 알고리즘들은 무에서 유를 창조하는 것도 아니고, ‘머신 러닝’이라는 이름 그대로 기계에 입력 데이터를 떠먹여주면서 결과 데이터와 맞춰보면서 적중률을 향상시키고, 그 과정에서 일부 자체 연산을 통해서 적중 성능을 더 향상시키는 일을 한다.

우리에게 아주 익숙한 알파고를 살펴보자. 알파고도 내부는 작은 알고리즘들이 결합된 큰 알고리즘(딥 러닝)으로 되어 있고, 거기에 기존의 기보 라는 입력 데이터와 이 것이 이긴 것인지 진 것인지에 대한 결과 데이터를 주고, 이를 통해서 이 것이 좋은 지, 나쁜 지를 판단하는 형태로 답을 맞춘다.

게임 및 일부 프로그램 등에서는 입력 데이터를 임의로 다양하게 자동 생성하고, 이를 시뮬레이션해서 테스트 통과 여부(예: 로봇이 일어선다든가, 게임 스테이지를 통과한다든가)를 통해서 결과 데이터를 생성해서 이를 학습하기도 한다. 사실 많은 AI 에서는 이 방법을 사용하기도 한다.

하지만 경우의 수가 매우 많을 때, 정말 일반적이고 랜덤워크를 모든 경우에 적용할 수 있는 경우가 아닐 때, 특정 도메인 지식이 필요한 경우는 어느 정도 기존의 데이터를 사용해야 한다. 하나의 예로, 알파고의 경우도 학습에서 기존의 기보를 일단 사용해서 데이터를 분류하고 자체 알고리즘 엔진을 생성한 후, 이를 기반으로 랜덤 데이터를 학습해서 기존 알고리즘을 업데이트하는 방식을 사용했다(2). 자동차도 어떤 경우가 결함인지 아닌지, 어떤 경우일 때는 속력을 줄여야 하는 지를 파악하려면 실제 센서 데이터나 운행에 따른 센서 데이터와 주행 데이터를 봐야 할 것이다. 그것도 못하겠다면 최소 GTA나 NFS는 무수히 플레이해야 할 것이다. 이와 마찬가지로, 실제 서비스에 이런 AI 를 올리고 싶다면 기존 데이터에 ML 알고리즘을 잘 얹은 엔진을 만들어야 한다.여기서 이 부분은 기존에 운운하던 데이터 분석가(데이터 과학자)들이 하고 있던 것이다. 분석가들이 그렇게 안 보였겠지만 이 것은 보통 기존의 데이터 분석을 결과만 받아 보는 경우가 대부분이었을 것이며, 상당수의 데이터 분석 업무에서 장기간 분석하면서 다양한 알고리즘을 쓸 기회를 얻을 수 없는 업계 환경 덕이었을 것이다.

더불어, 바둑의 경우는 정말로 정형적이고 규칙이 완벽하게 구성되어 있는(바둑판의 크기, 돌의 종류와 수, 승패) 데이터를 사용하므로, 데이터의 전처리가 거의 필요없는 형태에 가깝다. 하지만 기존의 데이터를 이렇게 정형적인 형태로 만들려면 데이터의 규칙 및 적재 형태 결정부터 시작해서 무수한 전처리가 들어간다. 이는 기존의 데이터 분석에서도 필요하다고 주구장창 노래를 불러오던 것이지만, 사람의 손을 덜 타고 계산의 복잡도는 더 증가하는 자동 학습 및 모델링을 위해서는 이런 규약이 더욱 중요하고 엄격하게 된다. 하지만 기존에도 제대로 신경쓰지 않고 있던 곳이 많아서, 이런 경우 성급하게 ML로 무언가를 하자고 해도 수단만 있고 재료가 없어서 아무 것도 못 하는 상황이 나올까봐 오히려 우려가 되는 부분이다.

미래는 이미 와 있다. 단지 널리 퍼져 있지 않을 뿐이다(feat. 윌리엄 깁슨). 당신들이 그렇게 주구장창 노래 부르는 AI 같은 게 우리 주변에 없었던 것은 아니다. 기존의 데이터와 지식을 사용해서 AI, ML 같은 건 이미 페이스북의 광고 추천에서, 일부 자동차의 크루즈 모드에서, 게임의 NPC에서 조금씩 접하고 있던 것이다. 물론 접하는 범위가 점차 늘어나고 긍정적인 AI 들을 실생활에서 만나기를 나 역시도 기대하고 있다. 하지만 여기저기 이야기해보면, 이 것은 마치 ‘빅데이터’같은 새로운 신세계인양, 기존의 것은 다 필요없지 않냐는, 혹은 데이터가 머신 러닝에 왜 들어가냐는 이야기를 듣고 있다보면 웬지 안타까워 지는 것이다.

Reference

  1. Oxford dictionary https://en.oxforddictionaries.com/definition/robotics
  2. David Silver and Aja Hwang et al., Mastering the Game of Go with Deep Neural Networks and Tree Search, Nature (2016)
    This post is licensed under CC BY 4.0 by the author.

    서비스의 실험에서의 윤리

    201701-201703 책 로그