도구
사람은 아주 오래 전부터 세상을 관찰하고,
그것으로 도구를 설계하고,
그 도구를 사용해 어떤 일을 하고,
그 결과로 다시 도구를 개선하는 순환을 반복해왔습니다.
우리에게는 지능(Intelligence)이 있기 때문이지요.
자동화
1642년의 어느 날, 파스칼(Pascal)이 계산기 라는 것을 만들게 됩니다.
사람이 계산기를 설계하고 버튼 몇 가지를 눌러 주면,
태엽이나 전기의 힘 등, 사람의 노동력을 들이지 않고도
자동으로 어떤 결과를 내놓게 된 것이죠.
기계는 사람이 설계하고,
설계된 그대로 동작합니다.
자동화(Automation)가 되었어요.
반면, 아직 자동화되지 않은 '설계' 부분은 Model Building이라고 불러요.
실제를 기반으로 이론을 만든다는 뜻이죠.
이 당시의 기계는 설계 일을 할 수가 없었어요.
사람이 정해주는대로 작동하기만 할 뿐이었죠.
프로그래머
기계가 작동하는 것은 자동으로 되지만
여전히 설계는 사람의 몫이었어요.
계산기가 더욱 발달하면서 이런 직업이 생겨났죠.
'프로그래머'
프로그래머는 세상으로부터 어떤 특징과 패턴을 파악해서
컴퓨터에게 시킬 일을 설계하는 사람이에요.
전기를 넣어주기만 하면
컴퓨터는 프로그래머가 설계해준 딱 그만큼만 동작하지요.
프로그래머는 기계가 작동할 때 발생할 수 있는 모든 가능성과 예외를 고려해
신중하게, 하나하나 일일이 설계해주어야만 해요.
머신러닝
도구가 더욱 발달하면서, 이제는 이런 일이 가능하게 되었어요.
기계가 데이터를 읽고 프로그래머의 모델 '설계' 업무를 돕기 시작한 것이죠.
사람이 일일이 정해주지 않은 부분도, 기계가 데이터를 읽어서 '학습(learning)' 하게 된 거에요.
머신러닝(Machine Learning)이라는 단어는 이렇게 만들어졌어요.
사람이 일일이 정해주는 값(hyper-parameter)은 여전히 있지만
그 중의 일부는 기계가 데이터를 읽어서 설계합니다. 이 값을 parameter라고 불러요.
머신러닝의 '러닝'이라는 단어는, parameter를 학습(learn)한다는 뜻이에요.
데이터 X 를 읽어서
모델 M(X)를 만들고
모델이 작동해서 내놓은 결과 Y를 다시 읽어서 모델을 개선해요.
이 순환을 반복하면서 모델이 점점 개선됩니다.
딥러닝
딥러닝은 머신러닝을 하는 아주 다양한 방법들 중의 하나이지만,
특히나 성능이 좋기 때문에 지금은 하나의 분야처럼 부르게 되었어요.
딥러닝 방법을 사용하면서, 사람이 설계해주는 값(hyper-parameter)을 훨씬 적게 사용하면서
기계가 더욱 많은 값(parameter)들을 배우게 되었답니다.
'설계의 자동화'가 딥러닝 덕분에 가능하게 된 거에요.
미래의 언젠가 이 분야가 더욱 발전해서, 설계의 완전한 자동화가 이뤄진다면
그때는 정말로 사람이 할 일이 없게 되겠지요?