brunch

You can make anything
by writing

C.S.Lewis

by 김성범 Jan 17. 2017

머신러닝 (Machine Learning)

인공지능과 함께 머신러닝 용어가 대세다. 몇몇 지인들은 이메일을 통해 자녀들의 혹은 조카들의 대학 전공으로 머신러닝을 고려 중인데 학과를 추천해 달라고 한다.


머신러닝이라는 용어는 처음 들으면 왠지 어색하지만 나름 최선의 선택으로 탄생한 용어이다. Machine과 Learning 두 글자의 조합이다. Machine이라는 단어는 굳이 사전을 들춰보지 않아도 쉽게 알 수 있다. 동력을 통해 움직이는 장치다. 텔레비전, 세탁기, 냉장고 등 가전제품으로부터 자동차, 비행기, 배 등의 운송수단까지 우리 주변에 널려 있다. 물론 요즘 시대에서 빼놓을 수 없는 휴대폰, 컴퓨터도 기계다. Learning은 말 그대로 배우는 것이다.  


위의 설명을 근거로 Machine Learning을 해석해 보면 기계가 배운다, 배우는 기계, 학습하는 기계, 기계 학습 정도로 생각해 볼 수 있지만 왠지 어색하다. 너무 용어 해석에 휘둘리지 말고 핵심만 보자. 기계를 가르치는 것이 핵심인데 기계는 처음부터 혼자 배울 수 있는 능력이 없다. 그럼 누군가가 가르쳐야 하는데 선생은 당연히 사람이다.


사람이 기계를 가르치기 위해서는 서로 간 의사소통 수단이 필요하다. 대표적인 것이 컴퓨터 언어다. Fortran, Cobol, Basic, C, C++, Java, Python 등이 그 예다. 시간이 갈수록 언어의 형식이 인간들이 사용하는 언어와 유사하게 바뀌는 추세이기는 하나 아직은 많이 다르다. 기계가 특정 일을 수행하게끔 하기 위해서는 이런 언어들을 이용하여 “지침”을 내려 주어야 한다. 이 지침은 언어들의 모듈화 된 형식으로 꾸며져 있고 이를 소위 “알고리즘”이라고 부른다. 즉, 기계가 특정 작업을 수행할 수 있기 위한 핵심은 알고리즘이며 이 알고리즘은 인간과 기계의 소통수단인 컴퓨터 언어를 통해 구현되는 것이다. 알고리즘에 따라 기계의 성능이 크게 좌우될 수 있다. 연산속도를 빨리 할 수도 있고 정확한 예측값을 구할 수도 있다.

요약해 보면, Machine Learning은 컴퓨터 언어로 구성된 알고리즘을 통해 기계로 하여금 특정 작업을 수행하게 끔 하는 인간의 의지다. 좀 더 자세히 풀어써 보면 Machine learning by algorithms realized by computer languages정도 일 것이다.


요즘 화제가 되고 있는 알파고를 예로 들어 보자. 여기서 Machine은 컴퓨터이고 사용된 대표적인 알고리즘은 Monte Carlo tree search, Deep convolutional neural networks, Reinforcement learning이라고 한다. 이를 구현하기 위한 컴퓨터 언어는 아쉽게도 아직 파악하지 못했다 (사실 언어는 크게 중요한 것이 아니다.) 따라서 알파고는 바둑에 대한 인간의 의지를 컴퓨터로 형상화한 알고리즘인 것이다.


요즘 만나면 알파고 예기는 약방에 감초다. 몇몇 분들은 공상과학영화에 나오는 기계인간들의 인류 파괴가 시작된 게 아니냐며 걱정한다. 인공지능의 허용범위를 어디까지 확장해야 하는지에 대해서도 걱정 어린 목소리가 있다. 알파고는 현존하는 최고의 바둑게임 그 이상도 그 이하도 아니다. 인공지능과 머신러닝은 인류 몸속 깊숙이 잠재해 있는 “호기심”이라는 DNA가 사라지지 않는 한 계속 발전할 것이다. 두려워하기보다는 인간이기 때문에 가지고 있는 부족함과 한계를 극복할 수 있는 수단으로 즐겁게 사용했으면 하는 바람이다.


좀 더 구체적인 개요을 알고 싶다면 다음 동영상을 참고하면 좋을 듯 합니다.

https://www.youtube.com/watch?v=FfUHRuUxQiY&t=117s

https://www.youtube.com/watch?v=FfUHRuUxQiY&t=120s

https://www.youtube.com/watch?v=FGPfQgHNgOU&t=734s


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