인공지능, 머신러닝, 딥러닝의 관계는 위의 그림과 같다.
인공지능이 가장 큰 범주이고 그 범주 안에 머신러닝과 딥러닝이 있다.
딥 러닝은 머신러닝의 범주에 포함이 된다.
- 인공지능
사람이 직접 프로그래밍 한 내용이 아닌, 기계가 자체적으로 규칙 시스템을 구축하는 과학이다.
- 머신러닝
데이터를 통해 스스로 학습하는 방법론이다. 머신러닝은 데이터를 분석하고 데이터 내의 패턴을 파악하여 학습을 한다. 학습한 내용을 토대로 판단과 예측을 한다.
- 딥러닝
딥러닝은 학습하는 모델의 형태가 신경망인 방법론이다.
아직까지도 딥러닝 보다는 머신러닝이 더 많이 활용되기도 한다.
> 딥러닝 vs 머신러닝 <
머신러닝은 입력 데이터의 패턴을 학습하여 원하는 값을 예측하는 것이 목표인 반면 딥러닝은 데이터 자체에 내제된 표현을 나태내는 것이 목표이다.
머신러닝은 사람이 직접 피처(Feature)를 가공해야만 데이터를 입력할 수 있다. 때문에 머신러닝 모델을 학습시키기 위해서는 데이터의 전처리 과정이 중요하다. (예쁘게 가공도 해야함)
딥러닝은 모델의 복잡성을 늘려 사람의 개입을 최소화 하고자 한다. 자연어는 벡터 형태로 가공을 사람이 해주어야 하지만 이외의 다른 형태의 데이터는 대부분 데이터 그대로 입력 시 모델이 스스로 학습을 한다.
아래 링크는 딥러닝의 대가(?인 조슈아 벤지오의 sns이다.
https://www.facebook.com/yoshua.bengio/posts/2269432439828350
(페북 아이디가 없어서 못 보고 있었는데 캡쳐 화면으로 볼 수 있었다 ㅎ)
조슈아 벤지오는 딥러닝의 궁극적인 목표가 합성된 함수를 학습시켜 풍부하고 유용한 '내재적 표현'을 찾아내는 머신을 구축하는 것이라고 정의했다.
'표현(Representation)'은 딥러닝에서 중요하게 여겨진다.
내제적 표현은 데이터가 담고 있는 정보를 나타내는 표현법을 의미한다. 데이터에서 표현을 추출하는 것은 추상적인 표현을 추출한다는 것과 동일하다. 추상적인 표현을 추출하기 위해서는 데이터에서 의미를 가진 벡터를 추출해야 한다.
즉 좋은 표현을 찾아내는 머신(machine)을 만드는 것이 궁극적인 목표가 되는 것이다.
이는 사람의 개입 없이 표, 카테고리 같은 추상적인, 내제적 표현들을 딥러닝만으로 나타낼 수 있는 모델을 학습시키겠다는 것이다.
위의 사진은 이미지 처리에 많이 쓰이는 모델인 VGG16이다.
VGG16은 이미지를 입력받아 내부 연산을 거쳐 데이터를 3차원 배열 형태로 표기한다.
최종적으로 (1x1x1000)같은 1,000개의 숫자로 이루어진 1차원 벡터를 출력하게 된다.
이미 학습이 된 이 모델은 이미지를 입력받으면 특성을 의미있는 1,000개의 숫자로 나타낸다.
사람이 규칙을 알려주지 않아도 이미 학습이 잘 된 모델이라면 많은 양의 이미지를 빠른 시간에 처리할 수 있게 된다. (물론, 네트워크 학습은 사람이 해야한다.)
> 연결주의 <
연결주의는,
연결주의는 인간의 중추 신경계(특히 뉴련)에서의 처리를 추상화하여 의사 뉴런을 구축하고 그것을 계층에 다소 모으기 위한 지능체를 구축한다.
연결주의의 지능체는 처음에는 "백지" 상태이며, 다수의 사례를 주고 "경험"함으로써 스스로 천천히 "학습"해 간다.
제작한 지능체에 "경험"을 반복해 주고, 다수의 의사 뉴런이 서로 결합하고, 그 결합도 값 (매개 변수)을 점차적으로 변화시켜 간다.
- https://ko.wikipedia.org/wiki/%EC%97%B0%EA%B2%B0%EC%A3%BC%EC%9D%98
딥러닝은 연결주의를 따른다.
딥러닝은 위에서도 언급했지만 인공 신경망을 모델로 가진다.
인공 신경망은 뇌의 뉴런이 얽혀서 연결되어 있는 모양이다.
신경망은 input이 있으면 정보 처리 과정을 거쳐 output을 배출한다. 신경망 내부에서는 하나의 데이터를 여러 형태로 바꾸며 표현을 하다가 최종으로 사람이 의도한 형태의 데이터를 출력한다.
> 신경망과 함수, 모델 <
신경망은 함수와 비슷하다. input이 있으면 일련의 과정을 거쳐 output을 배출한다.
머신러닝, 딥러닝에서는 데이터를 입력받아 원하는 예측값이나 원하는 형태로 출력하는 모든 함수를 '모델'이라고 한다.
이러한 함수 즉 모델은 하나로 정해져 있지 않으며 형태 또한 알지 못한다. 때문에 딥러닝은 완벽한 함수를 찾는 것이 아니라 '가장 잘 근사할 수 있는 함수'에 가까워지도록 시도하는 것이다.
'가장 잘 근사할 수 있는 함수'를 찾는 방법은 아래와 같다.
1. 입력받은 데이터의 특성에 맞춰 어떤 모델을 함수로 나타낼 것인지 정해야 한다.
: 간단한 선형 함수만으로도 데이터를 표현할 수 있다면 선형함수를 사용하는 것이 좋다.
하지만 자연어 같은 형태가 정해져 있지 않은 비정형 데이터는 신경망을 사용하는 것이 좋다. 신경망은 여러 계층이 쌓인 형태이기 때문에 비정형 데이터의 표현을 잘 추출할 수 있기 때문이다.
이와 같이 어떤 형태의 함수를 사용할 것인가 판단하고 결정하는 것을 Inductive Bias 또는 Prior를 가정한다고 한다. (Inductive Bias란 데이터를 설명할 수 있는 최적의 함수가 특정한 함수 공간에 존재할 것이라는 가설)
2. 함수의 형태를 결정한 후 함수의 공간 안에서 최적의 함수를 찾는다.
함수 공간 안에서 최적의 함수를 찾는 것은 머신러닝, 딥러닝에서는 '모델 학습' 단계에 해당한다.
모델 학습 단계는 입력받은 데이터에서 추출되는 값들을 출력하는 모델을 원하는 정답에 가깝게 값을 출력하도록 보정하는 과정이다.
모델 학습 방법 또한 모델의 형태에 따라 다르다.
딥러닝의 신경망 모델은 경사하강법(Gradient Descent)을 사용한다.