ݺߣ

ݺߣShare a Scribd company logo
심층 신경망 개요
딥러닝을 위한 신경망 기초
nonezerok@gmail.com
신경망의 층이 늘어났을 때 (즉 신경망이 깊어졌을 때),
학습의 어려움을 해소하기 위해 제시된 선행학습 관점에서 DBN과 AE를 소개합니다.
또한 다른 접근법으로 문제를 해소하여 뒤 늦게 심층 신경망으로 간주되고 있는 CNN을 소개합니다.
DBN에 사용된 RBM, AE는 GAN과 더블어 비교사학습 방법을 이끄는 삼두마차입니다.
CNN은 영상학습 분야의 단연 절대강자입니다.
2
심층신경망; deep neural networks
hidden 층이 2개 이상
fully connected neural networks
• Weight 수가 과다 → 더 많은 수의 학습 데이터 요구됨
• Vanishing Gradient Problem 발생 → Weight 갱신이 안됨
 =  + ∆
∆ = −




=  1 −   −  −
  =
1
1 + 
 

=   1 −  
3
심층신경망의 문제점
손실함수 미분 식에 나타난
시그모이드 함수 미분
어느 정도 학습이 진행되면
시그모이드 입력 값은 어느
한 쪽으로 치우쳐짐
양 쪽의 미분 값은 거의 0
4
Deep Belief Networks (Hinton, 2006)
Stacked Auto-Encoder (Bengio, 2007)
학습이 잘 안 되는 문제를 가중치 초기화 문제로 간주하고 해결하였음
5
V
h2
h1
O
w1
w2
w3
V
h2
h1
O
w1
w2
w3
V
h2
h1
O
w1
w2
w3
Pre-Training by Layer-Wise Training with RBM
RBM을 이용한 선행 학습, 미세조정
2개 층 단위로 순차적으로 학습; 마지막에 softmax 붙여 Fine-Tuning; 가중치를 미리 학습한다고 얘기 함
타켓이 없으므로
비교사학습 방법 필요
주어진 학습 데이터를
(제약이 있는) 볼츠만 분포로 모델링
샘플링을 무한히 반복하면 가능.
이를 효율적으로 학습하는 방법을
힌톤 교수가 제시함.
6
Auto-Encoder를 이용한 선행 학습
1 2
이번엔 벤지오 교수가 제안한 방법
(Layer-Wise Pre-Training 관점에서)
입력을 출력 목표 값으로 학습하는 신경망; 오류역전파 알고리즘 사용
Pre-training
softmax
※Variational AutoEncoder
7
Convolutional Neural Networks
필요한 가중치의 개수를 획기적으로 줄임
2차원 영상 데이터를 1차원으로 변형하지 않고 그대로 사용
시그모이드를 대체하는 새로운 활성함수 제안
8
가중치 공유; weight sharing
1 2주변만 연결 공유
36 16 4
이를 통해 가중치의 개수를 36개에서 4개로 줄임
9
1 2주변만 연결 공유
36 16 4
합성곱; convolution 연산
영상처리에서는 예전부터 사용하던 연산
10
3X4 픽셀 영상에 대해
2X3 픽셀 결과 생성
 +  +  + 
 
 180도 회전
세로 축을 기준으로 뒤 집고,
다시 가로 축을 기준으로 뒤집는다.
correlation
연산
convolution
연산
커널에 있는 값을 곱하고,
이들을 다 더했음
커널;
kernel
11
https://ml4a.github.io/demos/convolution/
12
from Wikipedia
커널을 뒤집는다
1차원 신호에 대한 합성곱
13
convolution layer
http://neuralnetworksanddeeplearning.com/index.html
1개 층에 있는 노드를 이차원으로 배치, 일정 범위 내에 있는 노드들에 가중치를 곱하고 더하여 1개의 출력 노드를 계산
convolution 연산과 동일
(실제로는 correlation)
입력영상에서 커널과 유사한
부분에서 큰 값 나타남
14
특징 맵; feature map
입력영상, 가중치의 합성곱 결과
feature map
커널에 들어 있는 값에 따라 다른 결과가 나온다.
Convolution Layer의 가중치는
Convolution 관점에서는 커널
15
pooling layer
http://neuralnetworksanddeeplearning.com/index.html
특징맵의 크기 축소
약간의 픽셀 위치 변화에 대처하기 위해
scale, translation
invariance
16
CNN in Practice for MNIST
fully-connected
http://neuralnetworksanddeeplearning.com/index.html
5X5 커널
20개 사용
10-neuron
output layer
(softmax)
17
20 different features (or filters, or kernels)
18
https://ml4a.github.io/demos/convolution_all/
19
Rectified Liner Unit (ReLU)
1





  
  = 

0
  > 0
ℎ

시그모이드 함수를 대체한 활성 함수
20https://nn.readthedocs.io/en/rtd/transfer/
활성함수 미분
sigmoid hyper tangent ReLU
 =  + ∆
∆ = −


=    −   1 −  ,



  = () 1 − ()
vanishing gradient problem
출력범위만 다르고 시그모이드와 같음.
활성함수로 종종 쓰임.
미분하면
0 이하에서는 0
0 이상에서는 1
아래 그래프에서 초록색이 미분

More Related Content

[신경망기초] 심층신경망개요

  • 1. 심층 신경망 개요 딥러닝을 위한 신경망 기초 nonezerok@gmail.com 신경망의 층이 늘어났을 때 (즉 신경망이 깊어졌을 때), 학습의 어려움을 해소하기 위해 제시된 선행학습 관점에서 DBN과 AE를 소개합니다. 또한 다른 접근법으로 문제를 해소하여 뒤 늦게 심층 신경망으로 간주되고 있는 CNN을 소개합니다. DBN에 사용된 RBM, AE는 GAN과 더블어 비교사학습 방법을 이끄는 삼두마차입니다. CNN은 영상학습 분야의 단연 절대강자입니다.
  • 2. 2 심층신경망; deep neural networks hidden 층이 2개 이상 fully connected neural networks
  • 3. • Weight 수가 과다 → 더 많은 수의 학습 데이터 요구됨 • Vanishing Gradient Problem 발생 → Weight 갱신이 안됨  =  + ∆ ∆ = −     =  1 −   −  −   = 1 1 +     =   1 −   3 심층신경망의 문제점 손실함수 미분 식에 나타난 시그모이드 함수 미분 어느 정도 학습이 진행되면 시그모이드 입력 값은 어느 한 쪽으로 치우쳐짐 양 쪽의 미분 값은 거의 0
  • 4. 4 Deep Belief Networks (Hinton, 2006) Stacked Auto-Encoder (Bengio, 2007) 학습이 잘 안 되는 문제를 가중치 초기화 문제로 간주하고 해결하였음
  • 5. 5 V h2 h1 O w1 w2 w3 V h2 h1 O w1 w2 w3 V h2 h1 O w1 w2 w3 Pre-Training by Layer-Wise Training with RBM RBM을 이용한 선행 학습, 미세조정 2개 층 단위로 순차적으로 학습; 마지막에 softmax 붙여 Fine-Tuning; 가중치를 미리 학습한다고 얘기 함 타켓이 없으므로 비교사학습 방법 필요 주어진 학습 데이터를 (제약이 있는) 볼츠만 분포로 모델링 샘플링을 무한히 반복하면 가능. 이를 효율적으로 학습하는 방법을 힌톤 교수가 제시함.
  • 6. 6 Auto-Encoder를 이용한 선행 학습 1 2 이번엔 벤지오 교수가 제안한 방법 (Layer-Wise Pre-Training 관점에서) 입력을 출력 목표 값으로 학습하는 신경망; 오류역전파 알고리즘 사용 Pre-training softmax ※Variational AutoEncoder
  • 7. 7 Convolutional Neural Networks 필요한 가중치의 개수를 획기적으로 줄임 2차원 영상 데이터를 1차원으로 변형하지 않고 그대로 사용 시그모이드를 대체하는 새로운 활성함수 제안
  • 8. 8 가중치 공유; weight sharing 1 2주변만 연결 공유 36 16 4 이를 통해 가중치의 개수를 36개에서 4개로 줄임
  • 9. 9 1 2주변만 연결 공유 36 16 4 합성곱; convolution 연산 영상처리에서는 예전부터 사용하던 연산
  • 10. 10 3X4 픽셀 영상에 대해 2X3 픽셀 결과 생성  +  +  +     180도 회전 세로 축을 기준으로 뒤 집고, 다시 가로 축을 기준으로 뒤집는다. correlation 연산 convolution 연산 커널에 있는 값을 곱하고, 이들을 다 더했음 커널; kernel
  • 13. 13 convolution layer http://neuralnetworksanddeeplearning.com/index.html 1개 층에 있는 노드를 이차원으로 배치, 일정 범위 내에 있는 노드들에 가중치를 곱하고 더하여 1개의 출력 노드를 계산 convolution 연산과 동일 (실제로는 correlation) 입력영상에서 커널과 유사한 부분에서 큰 값 나타남
  • 14. 14 특징 맵; feature map 입력영상, 가중치의 합성곱 결과 feature map 커널에 들어 있는 값에 따라 다른 결과가 나온다. Convolution Layer의 가중치는 Convolution 관점에서는 커널
  • 15. 15 pooling layer http://neuralnetworksanddeeplearning.com/index.html 특징맵의 크기 축소 약간의 픽셀 위치 변화에 대처하기 위해 scale, translation invariance
  • 16. 16 CNN in Practice for MNIST fully-connected http://neuralnetworksanddeeplearning.com/index.html 5X5 커널 20개 사용 10-neuron output layer (softmax)
  • 17. 17 20 different features (or filters, or kernels)
  • 19. 19 Rectified Liner Unit (ReLU) 1           =   0   > 0 ℎ  시그모이드 함수를 대체한 활성 함수
  • 20. 20https://nn.readthedocs.io/en/rtd/transfer/ 활성함수 미분 sigmoid hyper tangent ReLU  =  + ∆ ∆ = −   =    −   1 −  ,      = () 1 − () vanishing gradient problem 출력범위만 다르고 시그모이드와 같음. 활성함수로 종종 쓰임. 미분하면 0 이하에서는 0 0 이상에서는 1 아래 그래프에서 초록색이 미분