Post
Ch4 Deep Learning Algorithm | Gihun Son

Ch4 Deep Learning Algorithm

딥러닝 알고리즘은 Deep Neural Network를 사용한다. 머신러닝 알고리즘과 마찬가지로 목적에따라 CNN(Convolution Neural Network), RNN(Recurrent Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network) 등으로 나뉜다.

4.3.1 Deep Neural Network(DNN)

DNN(심층 신경망)은 입력층과 출력층 사이에 다수의 hidden layer를 포함하는 인공 신경망이다. 머신러닝에서는 Nonlinear Regression을 위해 여러가지 trick을 사용했지만, DNN은 다수의 hidden layer가 있기 때문에 별도의 trick없이 Nonlinear Regression이 가능하다.

하지만 training을 위한 연산량이 많고, 기울기 소멸 문제 등이 발생할 수 있다. 이를 해결하기 위해 Dropout, ReLU 함수, Batch Normalization 등을 적용해야 한다.

image.png

4.3.2 CNN(Convolution Neural Network)

CNN(합성곱 신경망)은 Convolutional layer(합성곱층)와 Pooling layer(풀링층)를 포함하는 Image processing 성능이 좋은 인공 신경망 알고리즘이다. 영상 및 사진이 포함된 image 데이터에서 객체를 탐색하거나 위치를 찾아내는데 유용하다.

image.png

CNN은 이미지에서 객체, 얼굴, 장명 등을 인식하기 위해 패턴을 찾아내는 것에 특히 유용하다. 대표적으로 LeNet-5와 AlexNet이 있다. 추가적으로 layer를 더 깊게 쌓은 신경망으로는 VGC, GooLeNet, ResNet 등이 있다.

CNN의 특징은 다음과 같다.

  • 각 layer의 입출력 shape(형상)을 유지한다.
  • 이미지의 spatial(공간) 정보를 유지하면서 인접 이미지와 차이가 있는 특징을 효과적으로 인식한다.
  • 여러개의 filter로 이미지의 특징을 추출하고 학습한다.
  • 추출한 image의 feature를 모으고 강화하는 pooling layer가 있다.
  • filter를 공유 파라미터로 사용하기 때문에 일반적인 Neural Network와 비교하여 학습 parameter가 매우 적다.

4.3.3 Recurrent Neural Network(RNN)

RNN(순환 신경망)은 시계열 데이터(음악, 영상 등) 같은 시간 흐름에 따라 변화하는 데이터를 학습하기 위한 Neural Network이다. ‘Recurrent’는 자기 자신을 참조한다는 것으로, 현재의 결과가 이전의 결과와 연관이 있음을 의미한다.

image.png

RNN의 특징은 다음과 같다.

  • temporal property(시간성)를 가진 데이터가 많다.
  • temporal property 정보를 이용하여 데이터의 특징을 잘 다룬다.
  • 시간에 따라 내용이 변하므로 데이터는 동적이고, 길이가 가변적이다.
  • 매우 긴 데이터를 처리하는 연구가 활발하게 진행중이다.

RNN은 Vanishing Gradient(기울기 소멸) 문제로 학습이 제대로 되지 않는 문제가 있다. 이를 해결하기 위해 메모리 개념을 도입한 LSTM(Long-Short Term Memory)이 많이 사용된다. RNN은 자연어 처리 분야에 적합하다

4.3.4 Restricted Boltzmann Machine, RBM)

Boltzmann machine은 visible layer(가시층)과 hidden layer(은닉층)으로 구성된 모델이다. visible layer끼리, 또는 hidden layer끼리의 연결이 없는 것이 RBM(제한된 볼츠만 머신)이다.

image.png

RBM의 특징은 다음과 같다.

  • 차원 감소, 분류, 선형 회귀 분석, 협업 필터링(collaborative filtering), 특성 값 학습(feature learning), 주제 모델링(topic modeling) 등에 사용한다.
  • Vanishing Gradient 문제를 해결하기 위해 pre-train 용도로 활용가능하다.
  • DBN(심층 신뢰 신경망)의 요소로도 활용된다.

CNN과 RNN에 비해 상대적으로 많이 사용되지는 않는다.

4.3.5 DBN(Deep Belief Network)

DBN(심층 신뢰 신경망)은 input layer와 hidden layer로 구성된 제한된 RBN을 block처럼 여러층으로 쌓은 형태로 연결된 신경망이다. 즉, pretrain된 RBN을 쌓아올린 구조로 Unsupervised Learning이 가능하다. 부분적인 이미지에서 전체를 연상하는 일반화와 추상화 과정을 구현할 때 유용하다.

DBN의 학습 절차는 다음과 같다.

  1. visible layer와 hidden layer 1에 RBN을 pretrain한다.
  2. 첫번째 layer의 input data와 parameter를 고정하고, 두번째 layer의 RBN을 pretrain한다.
  3. 원하는 layer만큼 RBN을 쌓아 DBN을 완성한다.

image.png

DBN의 특징은 다음과 같다.

  • 순차적으로 DBN을 학습시켜 계층적 구조를 생성한다.
  • Unsupervised Learning으로 학습한다.
  • layer가 깊어질수록 추상적인 Feature를 추출한다.
  • 학습된 weight를 다층 퍼셉트론의 가중치 초깃값으로 사용한다.
This post is licensed under CC BY 4.0 by the author.