[AIFFEL 울산 1기] 23. 딥러닝 레이어의 이해(1) Linear, Convolution

정경민·2022년 3월 15일
0

학습 목표

  • 레이어의 개념을 이해한다.
  • 딥러닝 모델 속 각 레이어(Linear, Convolution)의 동작 방식을 이해한다.
  • 데이터의 특성을 고려한 레이어를 설계하고, 이를 Tensorflow로 정의하는 법을 배운다.

후기


학습 내용

23. 딥러닝 레이어의 이해(1) Linear, Convolution

* 미싱 링크(missing link) *

23.1 데이터의 형태

23.2 레이어는 어렵다?

레이어란?

하나의 물체가 여러 개의 논리적인 객체들로 구성되어 있는 경우, 이러한 각각의 객체를 하나의 레이어라 한다.

  1. 신경망에서 Weight는?
  • 레이어의 Weight를 의미함

23.3 딥러닝의 근본! Linear 레이어

Linear 레이어는?

선형 변환을 활용해 데이터를 특정 차원으로 변환하는 기능을 한다.

  1. Weight
  • (입력의 차원, 출력의 차원) 형태의 행렬
  • Weight의 모든 요소를 Parameter라고 함
  1. Parameter가 많을 수록 무조건 좋은가?
  • 과적합(Overfitting)을 야기할 수 있음
    -> 훈련 데이터에만 알맞게 동작하는 현상
  1. 훈련(Training)이란?
  • Weight의 형태만 선언해 주면 그 파라미터 값을 임의의 실수가 채우고, 수많은 데이터를 거치며 가장 적합한 Weight를 알아서 찾아가는 과정
  1. 편향(Bias)란?
  • 선형변환된 값에 편향 파라미터 b를 더해주는 것
  • 형태가 (선형변환 결과 차원, ) 인 한 줄짜리 Weight로 정의

23.4 정보를 집약시키자! Convolution 레이어

Convolution 레이어는?

  • 목적에 알맞는 필터를 훈련을 통해 찾아주는 것
  • 필터 구조 안에 Locality 정보가 온전히 보존
  • 인접한 픽셀들 사이에서의 패턴만 추출할 수 있다는 것 자체만으로도 불필요한 파라미터 및 연산량을 제거하고 훨씬 정확하고 효율적으로 정보를 집약시킬 수 있음.
  1. 필터(Filter)?
  • Convolution 레이어에서 Weight를 의미
  • [ 필터의 개수 x 필터의 가로 x 필터의 세로 ]의 형태를 가짐
  1. Stride?
  • 필터를 몇 칸씩 이동할 것인지를 결정
  1. 패딩(padding)?
  • Convolution 연산이 입력의 형태를 변형시킴
    -> 입력 영상 테두리에 패딩을 추가하여 입력의 형태를 유지한다.

23.5 핵심만 추려서 더 넓게! Pooling 레이어

Convolution 레이어의 문제점

  • 5 X 5 필터 사이즈는 object detection에서 유의미한 정보를 담아내기에 너무 작은 사이즈
  • Stride를 5로 주었기에 파라미터가 줄어드는 효과는 발생했지만, 찾고자 하는 object가 필터 경계선에 걸려서 인식하지 못할 우려가 있다.

# 수용 영역(Receptive Field) 개념

Neural Network의 출력부가 충분한 정보를 얻기 위해 커버하는 입력 데이터의 Receptive Field가 충분히 커서, 그 안에 detect해야 할 object의 특성이 충분히 포함되어 있어야 정확한 detection이 가능하게 됨


위 그림에서는 빨간색, 녹색, 파란색, 하얀색 포인트가 가지는 Receptive Field의 영역 전체가 max pooling 레이어의 한 포인트의 Receptive Field가 되므로 이때는 5 X 5의 Receptive Field를 가지게 된다.

# Max Pooling 레이어의 의미

효과적으로 Receptive Field를 키우고, 정보 집약 효과를 극대화
파라미터의 증가는 없음!

(1) translational invariance 효과
이미지는 약간의 상하좌우 시프트가 생긴다고 해도 내용상 동일한 특징이 있음
-> Max Pooling을 통해 약간의 시프트 효과에도 불구하고 동일한 특징을 안정적으로 잡아낼 수 있는 긍정적 효과
-> object 위치에 대한 오버피팅을 방지하고 안정적인 특징 추출 효과

(2) Non-linear 함수와 동일한 피처 추출 효과

  • ReLU와 같은 non-linear 함수는 많은 하위 레이어의 연산 결과를 무시하는 효과를 발생시킴
    -> 중요한 피처만을 상위 레이어로 추출해서 올려줌으로써 분류기의 성능을 증진시키는 효과

(3) Receptive Field 극대화 효과

  • Receptive Field를 크게 하려면 Convolutional 레이어를 아주 많이 쌓아야 함
    -> 큰 파라미터 사이즈로 인한 오버피팅, 연산량 증가, Gradient Vanishing 등의 문제
  • 이 문제를 해결하기 위한 레이어가ㅣ Max Pooling 레이어!
    (Dilated Convolution도 해결 방법이 될 수 있음)

23.6 집약된 정보의 복원! Deconvolution 레이어

오토 인코더(Auto Encoder)?

Convolution의 결과를 역재생해서 원본 이미지와 최대한 유사한 정보를 복원

  • y_train, y_test를 사용하지 않는다
    -> x_train의 라벨이 바로 x_train 자신이 되기 때문

# Upsampling 레이어

  • Nearest Neighbor : 복원해야 할 값을 가까운 값으로 복제한다.
  • Bed of Nails : 복원해야 할 값을 0으로 처리한다.
  • Max Unpooling : Max Pooling 때 버린 값을 실은 따로 기억해 두었다가 그 값으로 복원한다.

# Transposed Convolution

0개의 댓글