..

Search

11) 딥러닝 알고리즘

딥러닝 알고리즘


딥러닝 알고리즘

딥러닝에 사용되는 인공신경망 알고리즘에는 심층 신경망(DNN), 컨볼루션 신경망(CNN), 순환 신경망(RNN), 제한 볼츠만 머신(RBM), 심층 신뢰 신경망(DBN), 심층 Q-네트워크(Deep Q-Networks) 등 다양한 형태의 수많은 알고리즘이 각각의 장단점을 가지고 활용되고 있습니다.

 

특정 형태의 문제를 잘 해결하는 알고리즘이 다른 형태의 문제는 잘 풀지 못 할 수도 있으며, 이것이 이렇게 다양한 알고리즘이 개발되어 사용되고 있는 이유 중 하나입니다. 상황에 알맞게 제대로 고안된 딥러닝 알고리즘은 인간의 사고와 분석의 한계를 넘어 엄청난 양의 데이터로부터 비즈니스적 가치(value)를 창출할 수 있도록 도와줍니다.


인공신경망 핵심 알고리즘

딥러닝에 사용되는 인공신경망 알고리즘은 매우 다양하지만 몇 가지의 대표적인 알고리즘에서 파생된 것들이 대부분입니다.

다음은 대표적인 인공신경망 알고리즘 중에서도 가장 기본적이고 이해하기 쉬운 알고리즘입니다.

 

1. 컨볼루션 신경망(Convolutional Neural Network, CNN)

2. 심층 신뢰 신경망(Deep Belief Network, DBN)


컨볼루션 신경망(Convolutional Neural Network, CNN)

비전(vision) 분야에서 다층 퍼셉트론(MultiLayer Perceptron, MLP)을 이용하면 이론적으로 학습은 가능하지만 영상의 크기가 커질수록 학습해야 하는 데이터의 크기나 학습 시간이 매우 커지게 되며, 이미지의 위치, 각도, 크기 변화에도 취약해지는 단점을 가지게 됩니다.

 

이러한 문제점을 해결하기 위해 고안된 지도 학습 알고리즘인 컨볼루션 신경망(CNN)은 인간의 시신경 구조를 모방하여 만들어졌으며, 특징(feature)을 추출하는 일종의 필터인 컨볼루션 커널(convolution kernel)을 도입하여 입력된 이미지를 분류하기 위한 변별적 학습을 수행합니다.

 

cnn

 

또한, 최대 풀링(max pooling)과 평균 풀링(average pooling)과 같은 서브 샘플링(sub-sampling)을 통해 이웃하고 있는 데이터 간의 대비율(contrast)을 높이고 처리해야 할 데이터의 양을 줄여줍니다.

 

컨볼루션 커널을 이용한 필터링 단계와 풀링을 이용한 서브 샘플링 단계를 여러 번 반복함으로써 CNN은 이미지의 위치나 각도 변화 등에도 변함없이 강건함(topology invariance)을 유지할 수 있게 됩니다.

 

pooling

 

CNN은 이미지의 추상적인 특징을 여러 관점에서 추출함으로써 위치에 무관한 특징을 추출하고, 학습해야 할 전체 매개변수의 수를 감소시켜 빠른 학습 속도와 우수한 일반화 능력을 가질 수 있도록 도와줍니다.


심층 신뢰 신경망(Deep Belief Network, DBN)

심층 신뢰 신경망(DBN)은 입력층과 하나의 은닉층으로 구성되어 있는 제한 볼츠만 머신(Restricted Boltzmann Machine, RBM)을 빌딩블럭(building block)과 같이 여러 층으로 쌓아 올린 형태의 신경망으로, 입력 데이터와 같은 출력을 재생성하는 모델입니다.

 

여러 층으로 이루어진 인공신경망 학습에서는 신경망의 레이어(layer)가 늘어날수록 오래 전 데이터에서 기울기가 사라지는 문제(vanishing gradient problem)가 발생합니다. 이 문제를 해결하기 위해 DBN에서는 입력으로부터 가까운 층부터 차례대로 RBM을 이용한 일종의 비지도 학습인 사전 학습을 수행하며, 이것을 층별 선훈련(layer-wise pre-training)이라고 합니다.

 

dbn

 

DBN에서 1단계 RBM의 사전 학습이 완료되면 그 결괏값이 2단계 RBM의 입력값으로 사용되며, 이때 1단계에서 사용된 가중치는 고정됩니다. 이와 같은 방법으로 마지막 은닉층까지 순서대로 반복되며, 이와 같은 층별 선훈련의 목적은 각 은닉층에 존재하는 가중치를 가능한 한 목푯값에 가깝도록 만드는 것입니다.

 

DBN은 비지도 학습인 RBM을 기반으로 여러 번의 사전 학습을 통해 가중치를 어느 정도 보정하고, 역전파 및 피드포워드 알고리즘을 통해 최종 가중치를 계산하게 됩니다. 이러한 특성은 학습 데이터의 양이 적을 때 굉장히 유용하게 사용됩니다.

 

이러한 DBN은 입력 데이터와 같은 출력 데이터를 재생성함으로 오토인코더나 분류기 등에 활용될 수 있으며, 이미지에서 사람의 얼굴 방향 인식 문제나 문서의 코드화 작업 등에 사용되고 있습니다.


연습문제