본문 바로가기

일상 및 잡담

신기술 만능주의 - 머신러닝은 모든 문제를 해결할 수 있을까?

 

최근 몇 년간 우리는 4차 산업혁명이라 불리는 새로운 시대를 맞이하고 있다면서 사회에서는 그에 대한 대비가 필요하다고 말하고 있습니다. 그리고 그 중심에는 기계학습, 머신러닝 기술이 있습니다. 

 

분명히 머신러닝은 획기적이고 매력적이며 가장 빠르게 발전하고 있는 기술분야입니다. 지금 시작해도 늦지 않았다고 생각할 정도로 할 일이 산더미 같이 쌓여 있으니까요. 또한 자율주행과 관련된 기술들에도 머신러닝은 필수적인 요소입니다. 머신러닝이 없었다면 이와 같은 기술발전은 절대로 이뤄지지 않았을 겁니다. 제가 일하고 있는 분야인 시뮬레이션에도 이렇게 머신러닝을 활용하여 시뮬레이션을 적용하는 기술이 개발 중이고 실제로 몇몇은 성공적인 성과를 거두기도 했습니다. 

 

머신러닝으로 이게 되는 세상에 우리는 살고 있습니다.

머신러닝의 발전으로 우리는 기존에는 불가능 했던 많은 난제들을 해결할 수 있게 됐는데요, 저는 한편으로는 이러한 머신러닝의 발전 뒤에 어두운 모습은 우리가 놓치고 있는 게 아닐까 합니다. 분명히 머신러닝으로 획기적인 기술의 발전이 가능해진 건 사실입니다. 하지만 머신러닝으로 풀지 않아도 충분히 풀 수 있는 문제들이 분명 있는데 머신러닝을 사용해 푼다면 이건 어떻게 봐야 할까요??

 

예를 들어 보겠습니다. 만약 보통의 방법으로 풀면 1의 힘을 들여 풀 수 있는 문제가 있습니다. 그런데 머신러닝 기술이 등장하였고 머신러닝을 이 문제에 적용하면 대략 10의 힘이 들어가지만 기존의 방법이 아닌 다른 방법으로 풀 수가 있습니다. 어찌 보면 이렇게 문제를 풀 수 있으니 문제 해법이 일반화(Generalization) 됐다고 볼 수도 있을 겁니다. 하지만 이게 옳은 일일까요?

 

제 분야인 시뮬레이션에도 한번 머신러닝을 적용해봤습니다. 유체 시뮬레이션을 수행한다고 했을 때 우리는 시뮬레이션 솔버에서 주어지는 연립방정식들을 매번 풀어야 합니다. 이 연립방정식들의 데이터와 해를 무지막지하게 모아서 머신러닝 알고리즘에 학습을 시킨뒤 머신러닝으로 연립방정식의 해를 유추하게 해 봤습니다.

 

결과는 어땠을까요?

 

놀랍게도 이 연립방정식의 해를 머신러닝 알고리즘이 근접하게 유추해내는것에 성공했습니다. 당시 연구를 진행할 때에는 이렇게 되는 것을 보고 장밋빛 미래가 앞에 있는 것만 같았습니다. 하지만 최종 결과는 어땠을까요? 당연하겠지만 연립방정식의 해는 수학 법칙을 따라야 했습니다. 시뮬레이션 역시 이 해가 물리적인 값을 만족한다는 가정하에 동작하고 있었습니다. 하지만 단순히 연립방정식의 해에 근접한 값을 내어주는 머신러닝 알고리즘은 시스템에 점점 에러를 누적시켰고 결국 시뮬레이션을 터트렸습니다. (시뮬레이션에 에러가 누적되면 발산이라는 현상이 발생하는데 보통 폭탄 터지듯이 아주 난리가 나버린답니다... ㅎㅎ) 이 문제의 원인은 결국 머신러닝은 진짜 정답이 아닌 그럴싸한 근삿값을 준다는 것이 원인이었습니다. 그 근삿값은 물리적으로 옳지 않은 값인데 그걸 머신러닝 알고리즘이 알리가 없었죠.

 

그래서 프로젝트가 실패했느냐? 아닙니다. 사실 프로젝트 자체는 성공했습니다 ㅎㅎ 이게 실제로 쓰이지는 않았지만 말이죠.(데이터 모아서 학습 시키는게 문제였습니다 ㅎㅎ 결국 배보다 배꼽이 더 큰 아이러니한 상황이.. ㅎㅎ)

 

해결 방법은 머신러닝 알고리즘과 기존 연립방정식 솔버의 결합이었는데요, 기존 연립방정식 솔버는 반복법이라고 하는 방법이었습니다. 반복법은 연립방정식의 해를 Trial and Error라고 하는 방식으로 찾는 방법인데요, 간단히 말해 반복해서 해를 추정해서 어떤 조건에 만족할때까지 해를 찾아가는 방법입니다. 그리고 만약 값이 해에 가깝다면 반복법은 해를 더 빨리 찾을 수 있게 되는데요. 딱 감이 오죠? 바로 머신러닝 알고리즘으로 찾아낸 근삿값을 반복법에 주어서 진짜 해를 찾게 만드는 방법입니다. 결국 머신러닝과 기존 방법을 융합해서 훨씬 괜찮은 방법을 찾아낸 것입니다. 

 

안타깝게도 이 연구는 실제로 쓰이지는 않았지만 제게 머신러닝에 대한 통찰력을 갖게 해줬다고 생각합니다. 머신러닝 단독으로 쓰일 때는 한계가 있던 방법이 기존 방법들과 융합되면서 훨씬 괜찮은 결과를 가져다주게 만드는 거죠. 실제로 최근의 다른 연구 논문에도 머신러닝으로 얻어진 결과를 warm start 용도로 사용하는 연구가 나오고 있는듯 합니다. (뭔가 번데기 앞에서 주름잡은 느낌입니다.. ㅎㅎ)

 

제 이런 경험들에 대한 이야기가 다른 머신러닝 연구자에게 조금이라도 도움이 됐으면 좋겠네요.