머신러닝과 딥러닝은 처음 들었을 때부터 흥미를 끄는 개념들이었다.
컴퓨터가 학습한다니 그게 어떻게 가능한거지.
이번 포스팅에서는 전문적 표현은 쓰지않고 머신러닝과 딥러닝의 개념에 대해 다뤄보려고한다.
인간의 뇌에서 사물인지가 어떻게 이루어지는지에 대해선 아직도 그 프로세스가 완전히 연구되지는 않았다고 하지만 어린아이의 학습을 예로 들어서 말해본다.
"삼촌 저거 모야~?"
"응 저건 고양이야"
"고양이~"
어린 조카가 길을가다 본 고양이가 뭔지 물어본다. 당신은 고양이라고 답을 해줬고, 조카는 이제 작고 털이 북실북실한 네발달린 귀여운 동물을 고양이로 인지한다. 그것이 무의식중이건 아니건 말이다.
"삼촌 저기 고양이있다!"
"저건 고양이가 아니고 강아지야"
"강아지야?"
"응. 강아지."
이후 길을 가다가본 강아지를 본 조카에게 당신은 그것이 고양이가 아닌 강아지라고 알려준다.
이것이 머신러닝의 기본이라고 볼 수 있다. 조카에게 입력된 정보는 인풋(동물의 시각자료)와 아웃풋(그 동물이 고양이인지 강아지인지) 뿐이다. 당신은 조카에게 고양이과 강아지를 구별하는 법을 알려주지 않았다. 하지만 조카는 무의식중에 고양이와 강아지를 구별하는 사고체계를 형성하기 시작했을 것이다.
좀 더 수학적인 방식으로 접근해보자.
A와 B라는 숫자 두가지와 C라는 식이 있다. A는 C식을 거치면 B가 된다.
이제 A, B를 드릴테니 C가 어떤 식일지 짐작해보시라.
A = 1, B = 3
아마도 C는 A+2가 아닐까?
하나의 데이터를 더해보자.
A = 2, B = 6
C는 A * 3 인 듯 하다.
이와 같이 인풋과 아웃풋을 데이터로 받아 인풋을 통해 아웃풋을 뽑아내는 함수를 컴퓨터가 최대한 정확하게 만들어나가는 것이 머신러닝이라고 볼 수 있다.
수많은 데이터가 주입되어 만들어진 신뢰할만한 프로세스 알고리즘은 우리 실생활에 편리하게 이용될 수 있다. 이제 A라는 인풋을 가지고 결과가 어떻게 나올지 알 수 있는 것이다.
예를 들어, 자율주행차량이 아래의 도로를 달리고 있다고 하자.
자율주행차의 카메라에 담긴 빨간 불빛이 보행자신호등의 빨간불인지, 앞차의 브레이크등인지, 상점의 간판인지 차의 컴퓨터는 구별해내야한다. 수많은 데이터로 머신러닝된 프로세스를 사용하는 컴퓨터라면 정확도 높게 신호등 불빛을 구별해낼 수 있을 것이다.
위의 A, B, C식은 아주 단순했지만 세상만사 단순한건 드물다. 그렇기에 하나의 함수가 아니라 수많은 함수들을 빌딩해서 유기적으로 작용하게 하는 것이 딥러닝이다. 딥러닝을 위해 많은 데이터 주입이 필요한 이유다.
자, 다시 냥이 비유를 보자.
조카는 생각한다.
'동물 중에 털이 북슬북슬하고 귀엽고 다리가 네개면 고양이나 강아지이고, 주둥이가 길면 강아지구나!'
이 때 조카의 눈에 스핑크스 고양이와 불독이 들어온다.
'저 동물은 털이 없으니 고양이나 강아지가 아니고.. 저 동물은 털이 많고 귀여운데 주둥이가 짧으니 고양이구나!'
당신이 조카에게 스핑크스 고양이는 고양이이며, 불독은 강아지라고 알려준다.
이후 조카는 추가된 데이터를 기반으로 고양이와 강아지를 구별하는데 좀 더 복잡하지만 좀 더 정확한 사고체계를 가지게 될 것이다.
"털이 북슬북슬함"이라는 함수의 기능에 "동물이 생닭 같은 모양이고 귀가 쫑긋하며 심술궂은 인상임"과 같은 다른 함수를 연결해주는 식으로 말이다.
인간인 조카가 강아지와 고양이를 시각정보로 구별하는 프로세스는 인간이 이해하고 언어로 표현하는 것이 어렵지않을지도 모르지만 딥러닝으로 학습된 모델은 이미 사람이 이해할 수 없는 경우가 대다수라고 한다. 수많은 함수들이 수만 수십만의 계산을 하는 형태이기 때문.
조금이라도 제대로 들어간다면 여러 추상화된 개념들과 수학적 지식들을 활용해야하는 분야이기에 비전공자에 수학은 수능 이후 들여다보지않은 내가 더 언급하기 조심스러우니 이 정도로 정리를 마친다.
'Computer Science' 카테고리의 다른 글
[Computer Science] Arithmetic Logic Unit(ALU)는 어떻게 작동할까 (0) | 2022.11.29 |
---|---|
[Computer Science] 숫자와 문자의 이진수 표현 (2) | 2022.11.24 |
[Computer Science] 이진수 연산의 로직 게이트 (0) | 2022.11.09 |
[Computer Science] 전자컴퓨팅의 여명 (0) | 2022.11.01 |
[Computer Science] 원시 컴퓨터 (0) | 2022.11.01 |