본문 바로가기

카테고리 없음

[CS231n] Lecture 6: Training Neural Networks,Part I

Activation Function

sigmoid

범위: [0,1]

문제점

- saturation되면 gradient 값이 사라짐(kill gradients)

- not zero centered: 모든 W가 같은 방향으로 움직임, 비효율적

- exp(): compute expensive

tanh

장점

- zero centered 

단점

- still kills gradients when saturated

ReLU

장점

- Does not saturate (in +region)

- Very computationally efficient

- Converges much faster than sigmoid/tanh in practice (e.g. 6x)

- Actually more biologically plausible than sigmoid

단점

- Not zero-centered output

- saturated in -region (--> dead ReLU)

 

이를 해결하기 위해 positive bias 추가하기도 

Leaky ReLU / PReLU

ELU

Maxout "Neuron"

단점

- parameter의 수가 두 배가 됨

 

Preprocess

이미지 데이터의 경우 zero-centering만 수행

train data에 대해 수행한 전처리는 test data에 대해서도 똑같이 사용해줘야 한다

 

Weight Initialization

가중치를 모두 0으로 초기화하게 되면 모든 뉴런이 같은 일을 하게 된다.(Symmetry Breaking)

Small random numbers

가중치의 편차를 0.01로 만듦

괜찮은 방법이지만 deeper networks에서는 출력값이 급격하게 줄어드는 문제가 발생한다.

만약 가중치의 편차를 0.01이 아니라 1로 한다면?

saturation 발생, 값이 항상 -1이거나 1이 되는 현상이 발생하고 gradient는 모두 0값을 갖게 된다.

Xavier Initialization

입/출력의 분산을 맞춰주는 방법이 합리적임

하지만 ReLU에서는 좋지 못한 성능을 보인다

 

Batch Normalization

각 layer들의 입력이 unit gaussian을 만족시키도록 하려면 batch마다 평균과 분산을 계산해서 normalization을 수행해주면 된다.

보통 FC layer나 Convolution layers 뒤에 넣어준다

Conv layers는 특성상 activation map마다 평균과 분산을 계산해줘야 한다.

 

Hyperparmeter Optimization

cross-validation strategy

random search / grid search