관리 메뉴

너와 나의 스토리

[Data Mining] Backpropagation / ReLU / RNN / LSTM / CNN 본문

Data Analysis/Data Mining

[Data Mining] Backpropagation / ReLU / RNN / LSTM / CNN

노는게제일좋아! 2020. 4. 23. 23:24
반응형

Lecture 3. Backpropagation

deep learning의 기본 optimization 알고리즘인 backpropagation과 그 변형 알고리즘들에 대해 알아보자

 

 

 

Train set and test set

  • Machine learning의 궁극적인 목표
    • 트레이넹 셋으로 학습시킨 모델이 테스트 셋에서도 성능이 잘 나오도록 하는 것이 목표 => generalization
    • 트레이닝 데이터를 반복적으로 학습하여 training error을 줄여나감
    • 테스트 데이터: unseen data에 대한 평가를 위한 데이터
      • generalization error(a.k.a. test error) 측정하는 데 사용
  • train and test sets 사이의 근본 가정
    • 둘 다 동일한 데이터 생성 분포를 따른다
    • E(training error) $\approx$ E(test error)

 

일반적인 ML 학습 pross

  1. Import or generate datasets
    • 모든 ML은 데이터 셋에 의존한다.
    • Real datasets VS Synthetic datasets(인공 데이터)
  2. Transform & normalize data
    • 보통 데이터들은 ML 시스템이 처리하기에 맞지 않는 경우가 많다
    • ML 알고리즘들은 데이터를 학습하기에 앞서 normalize를 한다.
  3. 전체 data set을 train, test, validation set으로 나눈다.

 

Hyperparameters and Validation Set

  • Hyperparameters
    • ML model setup에 관련된 변수
      • layer 개수, 한 layer에 들어갈 node의 개수
    • 학습의 대상이 아님 -> 최적화의 대상
  • Validation set
    • Hyperparameter들을 최적화하기 위한 data set
    • train set, test set와는 분리되어 있음

 

 

Training a Neural Network

  • 우리가 지금까지 해온 일
    • NN을 위한 cost function C(w,b) 정의
    • Train data: (x,a)   (x:입력, a: 정답)
    • NN에서 output은 y(x)

  • Stochastic Gradient Descent를 이용한 general function C(v)의 update rule 정의

 

 

Training process

  1. weights와 biases를 [-1,1] 사이의 값으로 초기화 <- 랜덤 하게 설정
  2. 많은 입력 예제(training data) x들에 대해 target 값 y(x)를 관찰  
  3. loss(cost) function 만들기

   4. gradient descent를 이용하여 loss function이 0이 되도록 weights를 최적화

  • 빨간 네모 칸: gradient

 

Matrix Representation of Neural Network

  • Two-layer NN

  • Multi-layer neural network

 

 

Backpropagation Algorithm

  • 1970년에 처음 소개, Geoffrey Hinton and David Runmelhart가 제안
  • 뉴런의 총개수에 따라 계산 속도가 비례
  • 오늘날 NN training의 prototype이 됨

 

Chain Rule of Calculus

 

Backpropagation: the details

 

  • (l-1)번째 layer의 output의 gradient 
  •  

 

 

 

Backpropagation: Update Rules

 

 

Stochastic Gradient Descent with Backpropagation

  • Input: 트레이닝 데이터 셋 {(x,y),...}
  • 트레이닝 데이터에서 샘플 뽑음 -> (x,y)
    1. $a_{(1)}$ ← x
    2. 모든 outputs을 계산하기 위해 forward propagation
    3. 마지막 layer에서 gradient 계산
    4. 모든 gradients를 계산하기 위해 backward propagation
  • 각 layer l:

 

 

Leture 4. 딥러닝 알고리즘 상세

여러 deep learning 알고리즘들의 구조 및 기본 원리에 대해서 상세히 기술하고 장단점 분석

 

 

개요

  • 딥러닝 알고리즘의 공통점
    • 많은 수의 layer로 구성되어 있다.
    • Vanishing gradient를 극복할 수 있는 알고리즘
      • SNN에서 문제
    • Backpropagation 알고리즘을 기반으로 한다.
    • Deep Neural Network <-> Swallow Neural Network
      • DNN - hidden layer, output layer 가짐 (hidden layer에 layer가 많음)
      • SNN - layer가 2개
  • 알고리즘 별 특성
    • Deep belief network
      • unsupervised fashion의 pre-training, layer-wise training, RBM
    • Drop out
      • Overfitting 해소
    • Relu
      • Vanishing gradient 문제 완화
        • sigmoid의 양 끝에서 기울기가 (거의) 0인 것의 문제 해결
      • 참고
  • LSTM
    • Dynamic system (recurrent network)에서 early information 유지

 

 

Deep Belief Network

  • multi-hidden layer 구조
    • 하나의 RBM(layer) 위에 또 다른 RBM(layer)이 올려지는 층층 구조
    • 밑의 layer를 visible layer, 위의 layer를 hidden layer가 된다.
  • Unsupervised 방식으로 input들을 확률에 의거하여 재구성 
  • Restricted Boltzmann Machien(RBM)으로 contrastive divergence training.
    • RBM: inputs에서 확률 분포를 배울 수 있는 generative stochastic ANN

  • Layer들을 feature detector로서 활용
  • layer-by-layer unsupervised learning 후 전체 layer들 backpropagation으로 supervised learning

 

 

Rectified linear unit (RELU)

  • ANN의 activation function
    • $f(x) = x^+ = max(0,x)$
  • 현재 DNN에서 가장 많이 사용되는 activation function
    • deep learning에서 logistic sigmoid나 tangent hyperbolic에 비해 향상된 performance를 위해 처음으로 적용
  • sigmoid 양 끝에서 기울기가 0에 가깝기 때문에 propagation에 낮은 layer의 weight가 업데이트가 안 되는 문제(vanishing gradient problem) 완화시킴
  • ReLU 장점
    • 생물학적 타당성(Biological plausibility) - 생물학적으로 ReLu가 더 비슷함
    • Sparse activation: 랜덤 하게 네트워크를 초기화했을 때, hidden units의 50%만 activate 됨(output이 0이 아님)
      • 나머지는 0으로 clear 됨
    • 더 나은 gradient propagation: vanishing gradient 문제 완화
      • 양 방향에서 saturate(포화되는) sigmoidal actiavtion functions에 비해 
      • saturate(포화되는): sigmoid function에서 weight 값이 크게 증가하면 기울기가 0에 가까워지는 것을 "saturate 됐다"라고 한다.
    • 다른 activation function에 비해 빠르고 안정적으로 training할 수 있어 크고 복잡한 데이터 셋을 사용하는 일반적인 deep neural architecture(unsupervised pre-training 없는)에 사용된다.
  • ReLu의 잠재적인 문제점
    • Non-differentiable at zero (x=0에서 미분 불가능)
    • Non-zero centered
    • Unbounded
      • 제한 없이 계속 증가 (양의 방향으로)
    • Dying ReLU problem: ReLu neuron들은 때때로 모든 inputs에 대해 inactive한 상태로 빠져 버린다. 이 상태에서는 gradient가 아래로 전달될 수 없어 inactive, die 상태로 고착시킨다. 이것은 일종의 (또 다른 종류의) vanishing gradient problem이라 할 수 있다. 이 상태는 learning rate가 너무 높을 때 종종 발생한다. 이러한 문제는 Leaky ReLU를 사용하여 완화시킬 수 있다.

 

 

 

 

Dropout

  • Neural networks hidden unit들을 매 training epch에서 랜덤 하게 drop 시킴
    • 노드 몇 개 랜덤하게 골라서 트레이닝 안 시킴
  • Overfitting을 방지하기 위한 regularization 기법
    • 예를 들어, 트레이닝 데이터 셋에 대해서 정확도가 99%가 나왔는데 테스트 셋에서는 정확도가 55%라면 이 것은 overfitting된 것이다. (generalization이 안된 것)
  • 복잡한 co-adaption 방지

 

 

LSTM(Long Short Term Memory)

  • RNN(Recurrent neural networks)
    • hidden node가 방향을 가진 엣지로 연결돼 순환구조를 이루는 (directed cycle) 인공신경망의 한 종류
    • 음성, 문자 등 순차적으로 등장하는 데이터 처리에 적합한 모델
    • 참고

  • RNN의 기본 구조
    • 녹색 박스: hidden state
    • 빨간 박스: input x
    • 파란 박스: output y
  • 현재 상태의 히든 $h_t$는 직전 사애의 $h_{t-1}$을 입력으로 받아 업데이트됨

 

RNN의 forward propagation

RNN의 Backpropagation: $h_{t-1}$ → $h_t$

 

 

RNN의 문제점

  • RNN은 관련 정보와 그 정보를 사용하는 지점 사이의 거리가 멀 경우 backpropagation gradient가 점차 줄어 학습능력이 크게 저하되는 것으로 알려져 있다. -> (또 다른) vanishing gradient problem
  • 즉, 초반 입력에 나중까지 영향을 미치기 힘들다는 것 (거리가 멀면)

  • 문제점 극복 - LSTM
    • LSTM은 RNN의 hidden state에 cell-state를 추가한 구조

 

 

참고: https://hororolol.tistory.com/166

 

RNN & LSTM & GRU

Terry TaeWoong Um님의 영상과 Colah의 블로그를 기반으로 정리하였습니다. (+ 추가 자료) 기본 NN 구조 RNN 구조 1. RNN은 상당히 deep한 구조이다 $x_{0}$가 $h_{t}$를 출력하는데 영향을 미치려면 굉장히 많..

hororolol.tistory.com

 

 

 

CNN(Convolutional Neural Network)

  • deep neural network의 일종 (주로 이미지에 사용)
  • shift invariant or space invariant artificial neural networks(SIANN)
    • 사진에서 인물이 기울어져 있는 거 판단해서 shift
  • weight 공유하는 구조, translation invariance characteristics (이미지 이동해도 제대로 인식)
  • 타 알고리즘에 비해 비교적 적은 pre-processing에 의해 feature extraction이 이루어짐

 

이미지 처리에서 MLP(Multi-layer Perceptron)의 문제점

  • MLP에서는 같은 이미지더라도 한 칸만 이동 or 기울어져도 인풋 데이터가 굉장히 많이 변화된다.

  • 즉, 학습해놓은 가중치들이 의미가 없어진다.
  • 이를 해결하기 위해 위치나 기울기 등이 아닌 특징을 찾아 이미지를 인식하는 방법을 사용할 수 있다. -> CNN

 

CNN 구조

  • Convolution layer와 pooling layer가 번갈아 가면서 feedforward로 data를 처리
  • Convolution layer
    • 일정한 size의 kernel (예: 5X5의 weight)이 주어진 이미지를 scanning하면서 각 local area를 하나의 합성곱 output으로 만들어 준다.
  • Pooling layer
    • Convolution layer의 output을 적절한 방식(maxpooling)으로 압축한다.
    • 핑크->초록: (32x32)를 (5x5)로 나누는 경우의 수 = 28 (겹치게 slide)  → convolution
    • 초록->파랑: 이번에는 겹치지 않게 (28x28)을 (2x2)로 나눈 경우의 수 = 14  → maxpooling

 

 

CNN - Convolution and Maxpooling 작동 방식

  • ex: Input image size가 11*11이고 filter size가 3*3인 경우 convolution과 pooling에 의해 변환되는 데이터 (stride는 1 by 1)
    • Convolution: (11*11)에서 빨간 네모를 (9*9)의 한 점으로 매핑
    • Pooling: (9*9)에서 파란 네모칸에서 가장 큰 값을 (3*3)의 한 점으로 매핑
    • 각 점에 이미지가 들어있음

  • Stride: 필터를 적용하는 간격
    • 위 그림을 보면, 첫 번째 격자에 3x3 필터를 적용한 결과를 두 번째 격자의 한 칸에 입력한다.
    • 즉, 위 그림에서 stride는 1이다.

 

 

Convolution - padding

  • 위에 보이는 사진처럼, covolution filter를 통과하면 데이터의 크기가 줄어든다. 이런 식으로 convolution을 여러 번 거치게 되면, 정보가 너무 축소되어, 모델의 성능에 악영향을 끼치게 된다.
  • 이 문제를 해결하기 위해 padding을 이용해 사이즈를 유지할 수 있다.
  • Padding: Convolution 연산을 수행하기 전, 입력 데이터 주변을 특정 값으로 채워 사이즈를 키우는 것을 말한다.
  • 일반적으로 padding 부분을 0으로 채운다. -> 이를 zero padding이라고 부른다.

 

 

CNN의 특징

  • 이미지는 많은 변수(pixel)들로 인해 전통적인 multi-layer network로서 처리 곤란하지만 CNN은 shared weight(convolution)을 통해 이를 극복
    • 1000x1000 이미지는 1,000,000개의 weight들이 필요
  • 3D volumes of neurons: width, height, depth (channels)
    • connection은 receptive fields라고 하는 layer의 작은 부분에 한정
  • Local connectivity:
    • Local connectivity patter, filters를 학습시키는데 유용
    • multi-layer 구조에서 non-linear filter의 역할
    • edge -> shape -> small feature -> large feature
      • 위로 올라가면서 특징의 규모가 커짐
  • Shared weights
    • 이미지의 각 receptive field는 같은 filter로서 convolution 한다
    • feature detection, translation invariance에서 잘 작동

 

 

 

반응형
Comments