깊은 신경망인 딥러닝은 복잡한 데이터셋에서도 패턴을 잘 찾아내어 분류, 회귀 등의 문제를 뛰어난 성능으로 풀어낸다.
이러한 특성으로 이미지, 텍스트 데이터와 같이 차원이 많고 복잡한 데이터에서 패턴을 찾으려면 매우 복잡한 특성 조합이 필요하다.
강아지들과 빵의 사진이지만 사람이 보아도 자칫 헷갈리기 쉬운 것 같다.
이미지를 학습 데이터로 사용해서 강아지를 탐지하는 모델을 만든다고 해보자.
이 때 이미지 데이터에서 pixel 값을 조합해서 데이터의 패턴을 찾아야한다.
머신러닝을 수행할 때에는 데이터셋이 가진 특성(feature)를 최대한 파악한 후 가장 중요한 특성을 설계하고 찾아야했다. 그 과정이 특성공학(feature Engineering)을 바탕으로 한 전처리였다.
전처리 후에 머신러닝 모델에 넣어주어야 모델의 성능을 올릴 수 있었고 전처리를 생략한다면 성능이 잘 나오지 않았다.
반면, 인공신경망은 데이터에서 필요한 특성을 알아서 조합하여 찾아낸다.
그렇기 때문에 사람이 최소한의 전처리만 해준 뒤 모델에 넣어도 그럭저럭 괜찮은 성능을 보인다.
즉, 심화된 특성 공학을 사용하여 특성 간의 관계를 찾아낼 필요가 없다.
이렇게 스스로 특성 관계를 찾아내는 것을 표현학습(Representation learning)이라고 하며 이것이 딥러닝과 딥러닝이 아닌 머신러닝의 차이이다. 신경망의 구조와 깊이를 변화시키면 데이터의 특성 관계를 더욱 유용하게 학습할 수 있다.
이렇게 복잡한 어떤 인공 신경망의 구조를 알아서 설계하다니 신기하다.
좋은 신경망이란? 좋은 신경망 구조란 무엇인지, 신경망의 구조를 어떻게 설계하는 것이 좋을지 많은 토론이 가능할 것이다.