인간의 학습과 머신러닝의 차이
인간의 학습과 머신러닝의 차이
머신러닝과 딥러닝이 나온 이유는 인간이 학습하는 것을 컴퓨터에 그대로 이식시키기 위해서이다. 하지만 인간의 학습과 머신러닝을 비교하면 차이가 있는 것도 현실이다. (딥러닝은 머신러닝의 일부이므로 머신러닝에 포함된다)
인간의 학습은 초기에는 누군가가 지식을 알려줘야 한다. 어린아이일 때는 부모가, 학교에 가게 되면 교사들이 지식을 알려준다. 이것은 머신러닝에도 그대로 적용이 되는 것이기도 하다. 그런데 인간은 알려준 지식을 습득하는 것에서 끝나지 않고, 이것을 바탕으로 해서 내 것으로 만든다. ‘모방은 창조의 어머니’라는 말이 괜히 나온 것이 아니다.
인간은 학습을 할 때 기본적인 개념을 바탕으로 이를 응용해서 새로운 것을 만드는 것이 가능하다. 우리가 가장 많이 사용하는 프로그래밍 언어 중 하나인 JAVA는 이식성이 뛰어나서 많은 작업에 사용된다. JAVA는 객체지향 프로그래밍 언어인데 그 뿌리를 찾으면 다름 아닌 C언어에서 출발한다. C언어와 JAVA는 그 문법이 상당히 유사하다. C언어를 잘하는 사람이 JAVA를 배울 때 빠르게 이해하는 것이 바로 이런 이유가 있어서다.
C언어와 JAVA는 서로 연관성이 있지만 엄연히 독립적인 프로그래밍 언어다. 이는 부모와 자식이 가족이라는 이름으로 연결되어 있기는 하지만 구성원 각각은 독립적인 인격체와 같다는 것을 떠올리면 이해하기 쉬울 것이다.
JAVA는 C언어를 바탕으로 만들어진 프로그래밍 언어지만 엄연히 새로운 독립적인 것이다. 인간은 이런 것을 할 수 있지만 지금 인공지능이 하는 머신러닝으로는 이것을 구현하는 것이 불가능하다.
머신러닝은 어떤 지식을 입력했을 때 이것대로 따라 하는 것은 가능하지만 인간처럼 이를 바탕으로 새로운 것을 만들지는 못 한다. 머신러닝은 바둑 룰을 입력해서 바둑을 두는 것은 가능하고, 심지어 인간을 이길 수도 있지만, 스스로 바둑 룰을 변경하지는 못한다. 알파고가 덥을 6집 반으로 하면 여기에 맞춰서 바둑을 두는 것은 가능하고 5집 반으로 변경한다고 하면 스스로 이를 인지해서 프로그램을 변경하지는 못한다. 이것이 인간과의 결정적인 차이라 할 수 있다.
이런 차이는 결국 창의력과 연결이 된다. C언어를 바탕으로 JAVA를 만들고, 기존에 있던 멐퓨터, 인터넷, mp3, 휴대전화를 하나로 묶어서 스마트폰을 만드는 것은 결국 기존의 것을 바탕으로 응용을 하는 것에서 출발한다.
인간과 인공지능이 차이를 보이는 것은 결국 정보를 처리하는 능력의 차이에서 비롯된다. 지금의 인공지능 컴퓨터에 있는 CPU를 보면 입력, 출력, 제어, 연산만 가능하다. 즉 사칙연산과 ‘예/아니오’로 판단하는 논리연산만 가능할 뿐 인간처럼 ‘예/아니오’로 답하는 것 이외의 것을 처리하는 것은 불가능 하다. 이것이 바로 인간의 학습과 머신러닝의 결정적인 차이다.