Deep Learning(딥러닝) 개요
일반적으로 머신러닝(Maching Learning:ML)은 현재 값(예측할 값: predictor)을 x로 두고, 실제값(response)을 y라고 하면, y=f(x)를 만족하는 함수(function) f()를 찾는데에 포커싱 되어있다.
- 학습되어진 함수 f()는 새로운 x'값이 주어졌을 때에도 분류하는 데에 사용된다.
- 예를 들어 어떠한 이미지(x=image)가 주어지고 이미지의 카테고리(y= category)를 맞추는 문제라고 할 때, 이미지를 카테고리로 바꿔주는 함수를 학습하는 것이다.
- 학습하는 이유는 새로운 이미지에 대해 학습한 함수를 적용하여 어떤 카테고리인지 예측하기 위해서이다.
- 하지만 우리가 원하는 것은 x와 f()가 주어진 상태에서 y값을 얻는 것이 목적이 아닌 경우가 있다.
딥러닝(Deep Learning)에서는 이러한 갈증을 해소시키는데 많은 도움이 될 수 있다.
- 딥러닝은 머신러닝에서 한걸음 더 나아간 학습 경로라고 보면 되겠다. 어떠한 함수 f 를 찾아서 새로운 변수에 대한 예측값을 구하는 것이 아닌, 기계학습 자체만으로 예측값을 구하는 형식이다. (나중에 자세히 논의 예정이다.)
과거에는 데이터과학이라하면 머신러닝이 대표적이었다. 딥러닝 분야는 상대적으로 주목받지 못하였다. 좋은 알고리즘을 생성하기 어려운 환경이었기 때문이다.
하지만 현재에 와서는 딥러닝이 엄청난 인기를 얻고 있다.
- 그이유에는 빅데이터라는 촉매제가 있었다. 나날이 발전하고 있는 메모리 사양에 따라 Massive data를 저장하게 되었고, GPU 능력이 향상되면서 연산속도, 연산량이 어마하게 늘어났다. 그리고 통신망이 확대되면서 어느 곳에서든 데이터를 수집하고 활용할 수 있는 환경이 되었다.
빅데이터에 힘입어 딥러닝 분야는 더욱 발전해 나아갔으며, 머신러닝보다 좋은 성능을 보이고 있음을 어디서나 증명해 내고 있다.
- 위에 그래프는 데이터의 양이 클수록 딥러닝의 Accuracy가 머신러닝보다 높아짐을 나타내고 있다. 알고리즘 또는 작동원리로 인해 데이터가 많으면 딥러닝이 더 유리하다는 것을 의미한다.
딥러닝에서는 일반적으로 다음과 같은 Task를 수행할 때 사용된다.
1. Image clssification (이미지 분류)
2. Speech recognition (음성인식)
3. Text classification (텍스트 분류)
보통 이러한 업무는 사람의 수행능력이 보다 뛰어나다.
사람의 뇌를 보면 신경세포(Neurons)가 그물망 처럼 연결되어 신호를 주고받으며 자극을 전파시키는 구조로 업무를 수행한다.
- 이것을 모방한 것이 Neural Network이다.
입력 Data를 받아서 다른 Node로 시그널을 선형결합형태로 전파시키고 최종 output까지 가는 구조로 되어있다. Neural Network의 대표적인 것이 CNN(Convolutional Neaural Net)이다. CNN은 각 신경망 계층(Layer)을 조합하여 만들 수 있다. 합성곱 계층(convolution layer)과 풀링 계층(pooling layer)이 도입되며 추후 설명예정이다.