여러 층을 쌓은 신경망으로 표현 자체를 데이터에서 학습하는 방식이다. machine learning 의 한 갈래이고, “deep” 은 층이 여러 겹이라는 뜻이다.

특징 설계를 학습으로 대체한다

전통적인 머신러닝은 사람이 특징을 만들어 넣는 단계를 전제로 한다. 이미지에서 모서리를 뽑는 필터를 설계하거나, 텍스트에서 어떤 단어의 빈도를 셀지 정하는 일이 모델 성능의 대부분을 좌우했다. 그래서 이미 정리된 표 형태의 데이터(structured data)에서 잘 동작했다.

딥러닝은 그 단계를 층으로 대신한다. 앞쪽 층이 낮은 수준의 무늬를, 뒤쪽 층이 그것들을 조합한 더 큰 구조를 담당하도록 학습된다. 사람이 특징을 정의하기 어려운 픽셀·파형·문자열 같은 비정형 데이터에서 이 방식이 크게 앞섰다.

언제 유리하고 언제 아닌가

데이터가 적으면 층이 많은 모델은 과적합하기 쉽고, 특징을 잘 만든 단순한 모델이 더 낫다. 데이터가 많아질수록 딥러닝 쪽 성능이 계속 올라가는 반면 전통적인 방법은 일찍 평평해진다.

표 형태의 정형 데이터에서는 지금도 gradient boosting 계열이 강한 기준선이다. 이미지·음성·자연어처럼 입력에 공간적·순차적 구조가 있는 영역이 딥러닝의 주된 자리다.

무엇이 가능하게 만들었나

역전파와 다층 신경망 자체는 오래된 아이디어다. 2010년대에 실용화된 것은 세 가지가 맞물린 결과다.

  • 대규모 라벨 데이터셋 (ImageNet 등)
  • GPU 로 행렬 연산을 대량 병렬 처리
  • gradient 가 깊은 층까지 전달되게 하는 기법들 — ReLU, skip connection, Batch Normalization