ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS231n 2017 lecture 6 - part 1
    머신러닝 기초 2019. 8. 2. 20:02
    반응형

    1. Activation Functions

     

    activation function의 종류는 아래와 같은 것들이 있다.

     

     

    가장 먼저 사용된 activation function은 Sigmoid이다. 현제는 이 activation function을 거의 사용하지 않는데 그 이유는 아래와 같다.

     

     

    크게 3가지 문제가 있다. 우선 neuron이 saturate(포화) 된다는 문제가 있다.

     

    만약 sigmoid의 입력이 10 또는 -10과 같이 다소 큰 값이라면 local gradient $\frac{\partial \sigma}{\partial x}$는 거의 0이 된다. 따라서 back propagation으로 전달되는 gradient $\frac{\partial L}{\partial x}$ 역시 0 이므로 back propagation이 진행되어도 gradient가 모두 0이 된다. 이러한 현상을 gradient가 죽는다(kill)라고 말한다.

     

    또 다른 문제는 sigmoid가 zero-centered하지 않다는 것이다.

     

    activation function이 zero-centered하지 않다면 gradient가 모두 양수 혹은 음수만 발생한다는 문제가 있다. 만약 activation function을 통과한 값이 위와 같이 $f\left({\sum_i^{}{w_i}{x_i}+b}\right)$이라 하면 $\frac{\partial f}{\partial w_i}=x_i$이고 chain rule에 의해 $\frac{\partial L}{\partial w_i}=\frac{\partial L}{\partial f}\times\frac{\partial f}{\partial w_i}=\frac{\partial L}{\partial f}\times{x_i}$가 되므로 $x_i$의 부호가 고정되면 전체 gradient의 부호도 결정됨을 알 수 있다. 이렇게 되면 위와 같이 가중치가 지그재그로 업데이트되어 학습이 전체적으로 느려지게 된다.

     

    마지막으로 exp, 지수함수는 알고리즘적으로 시간이 오래 걸리는 연산이기 때문에 연산속도가 느려지는 단점이 있다.

     

     

    tanh(x)도 사용되기도 하는데 이 함수는 zero-centered이지만 역시나 saturated 영역이 존재한다는 문제가 있다.

     

     

    ReLU는 현재 가장 많이 쓰이는 activation function중 하나이다. ReLU는 기본적으로 $f(x)=\max{(0,x)}$ 형태를 띠는데, 양수에서는 saturation 영역이 존재하지 않고 sigmoid, tanh(x)에 비해 학습 속도가 6배나 빠르다는 장점이 있다. 하지만 음수에서는 모두 saturation 하며 zero-centered하지 않다. 실제로 ReLU로 학습하면 전체 노드의 10~20% 정도가 gradient가 죽는다.

     

     

    흔히 이 saturation 영역에 의해 back propagation이 되지 않는 경우를 dead ReLU라고 한다. 이러한 상태는 초기 가중치가 잘못 주어지던가 train rate가 높으면 발생할 수 있다. 이러한 문제를 해결하기 위해 일부 사람들은 초기 bias를 0.01과 같이 양수를 주어 saturation 영역을 피하려 하지만 이 방법은 호불호가 있어 대부분 bias의 초기값을 0을 준다고 생각하면 된다.

     

     

    ReLU의 개량 버전으로 Leaky ReLU, PReLU 등이 존재한다. 두 함수 모두 saturation을 제거하여 gradient가 죽는 것을 방지하는 목적으로 만들어졌다.

     

     

    2. Data Preprocessing

     

    데이터 전처리는 image classification뿐만 아니라 다양한 상황에서 자주 수행되는 과정이다. 크게 아래와 같은 전처리들이 존재한다.

     

     

    실제로 이미지를 다루는 image classification에서는 zero-centered 과정만 주로 사용한다고 생각하면 편하다. centered과정은 전체 이미지 픽셀의 중심값을 구하거나 RGB 각각의 채널의 중심값을 구하는 등 여러 가지 방법이 존재한다.

     

    반응형

    '머신러닝 기초' 카테고리의 다른 글

    Linear regression  (0) 2019.09.22
    Maximum likelihood estimation  (0) 2019.09.20
    CS231n 2017 lecture 5  (0) 2019.07.31
    CS231n 2017 lecture 4 - part 2  (0) 2019.07.30
    CS231n 2017 lecture 4 - part 1  (0) 2019.07.28

    댓글

Designed by black7375.