딥러닝'심층학습'이라고도 하며, 용어만 보면 뭔가 심오한 이론인 것처럼 느껴진다. 그러나 기본적으로는 다층 신경망을 이용한 머신러닝에 지나지 않는다.

다만, 단순히 계층을 증가시켜 복잡화하는 것이 아니라 해결해야 할 문제에 맞게 각각의 노드에 특별한 역할을 부여하거나, 노드 간의 연결 방식을 다양하게 연구한 것이다.

무조건 노드를 증가시켜 복잡화하는 것이 아니라 각 노드의 역할을 생각하면서 특정 의도를 갖고 구성한 신경망이라고 할 수 있다.


1. 딥러닝의 특징

아래의 합성곱 신경망(CNN)에서 첫 번째 계층 노드에는 1차 함수가 아닌 '합성곱 필터(Convolution Filter)'라는 함수를 사용합니다.

합성곱 필터란, 딥러닝만을 위해 특별히 고안된 것이 아니라 포토샵과 같은 이미지 처리 소프트웨어에서도 많이 이용되는 이미지 필터의 일종입니다.

사진에서 물체의 윤곽을 추출해서 선으로만 그린 그림처럼 변환하는 필터를 개발하는데 사용됩니다. 이를 통해 이미지에 나타난 물체의 특징을 보다 정확하게 포착할 수 있습니다.

<그림 1-1. CNN 구성>


그 뒤에 존재하는 풀링 계층(Pooling Layer)이라는 부분에서는 이미지의 해상도를 낮추는 처리를 합니다.

이는 이미지의 세밀한 부분을 지우는 것으로, 그려져 있는 물체의 본질적인 특징만을 추출하고자 하는 발상에서 비롯되었습니다.


또한, 노드 간 연결 방식을 연구한 특수한 에로 순환 신경망(RNN, Recurrent Neural Network)이 있습니다.

일반적으로 시계열 데이터를 다루는데, 단어가 나열된 문장을 입력 데이터로 하는 자연어 처리에 응용하는 경우가 좋은 예라고 할 수 있습니다.


<그림 1-2. RNN으로 단어를 예측하는 예>


이는 특정 문장이 흔히 보는 자연스러운 문장인지 뭔가 어색한 부자연스러운 문장인지를 판정하는 데 이용됩니다.

예를 들면, 'This is a pen'이라는 네 개의 단어를 차례로 입력해서 'This' 뒤에 'is'가 올 확률, 'is' 뒤에 'a'가 올 확률을 차례로 구합니다.

전부 높은 확률이 나오면 이는 자연스러운 문장이라고 할 수 있는 것입니다.


RNN에서는 이전 중간 계층의 값을 다음 입력에 재이용하는 특징을 가지고 있습니다.

이전에 입력한 단어 정보는 중간 계층에서 서서히 사라지게 되므로 노드 간 연결 방식을 좀 더 연구해서 과거의 정보를 가능한 한 오래 축적하는 등의 테크닉이 이용됩니다.


위와 같은 예로부터 알 수 있듯이 딥러닝의 이면에는 주어진 데이터가 어떻게 처리될지를 생각하면서 최적의 네트워크를 구성해 가는 방대한 시행착오가 감춰져 있습니다.

또한, 이는 어디까지나 '머신러닝 모델의 3단계' 중 1단계라는 것도 상기할 필요가 있습니다. 아무리 잘 만들어진 모델이라도 실제로 계산을 할 수 없다면 활용할 수 없습니다.

그 이후 단계로 나아가기 위해서는 각 네트워크에 대해 효율적으로 파라미터를 최적화하는 알고리즘의 연구도 필요합니다.


+ Recent posts