0과 크기를 비교 0보다 작으면 0으로 매핑된다. 양수면 그냥 통과 (identity라고 한다.)
1. 포화될일이 없고 연산이 효율적이다. ReLU는 simple max 단순 max라서 빠르다.
2. 시그모이드와 tanh에 비해 연산속도가 빠르다. 왜냐하면 ReLU는 0보다 크면 미분 값이 1로 전달되기 때문이다.
sigmoid와 tanh의 6배의 속도를 가지고 있다고 한다.
3. 깊은 신경망에서 학습이 가능하다.포화 되는 부분이 없기 때문에 층이 깊어지면서 가중치가 소실되는 문제점을 해결하였다. 이는 깊은 신경망에서도 학습이 가능하다는 의미이다!
단점:
1. 출력물이 0이 중심이어야 하는데 ReLU의 경우 0보다 클 때 부터 활성화 되기 때문에
0이 중심이 될 수 없다. (사소한 문제)
2. 0보다 작으면 학습이 안된다. 우리는 이걸 Dying ReLU(dead relu)라고 부른다.
dead relu란 뉴런의 출력물이 0보다 작아서 활성화가 안되며 오차역전파도 전달이 안되는 현상을 말한다.
input과 뉴런이 연산하여 0보다 작으면 뉴런은 아무것도 못배운다는 뜻이다.
3. ReLU의 미분은 0보다 작으면 0, 0보다 크면 1이기 때문에 0일때는 미분 값이 안나온다. (이는 무시하고 사용한다고 한다.)
네트워크를 동결화하고 ReLU를 통과하는 경우: 10~20%는 활성화가 안된다. (dead ReLU)
data cloud = training data ReLU를 data cloud가 통과해 dead하는지 안 dead하는지 보기위해 w1x2 + w2를 할 것이다. 이 행위는 data cloud를 hyperplane으로 나누는 것과 같다. (선형이라서 data cloud를 선으로 나눈다고 생각하면 된다.) 여기 hyperplane(초평면)으로 나눔에 따라 반은 양수 positive가 되고 반은 음수쪽 negative가 된다. 음수인 쪽은 죽는다.
이렇게 보면 선위에 있는 data cloud는 활성화가 될 것이며 선 아래에 있는 data cloud는 활성화가 안될것이다.
그런데... 사람들은 2번을 제일 많이 궁금해하는 경향을 보인다.
진짜 Dying ReLU는 심각할까?
정답은 아니다!!
활성화 안되는 뉴런은 계속 아무것도 못배워서 바보가 되느냐? 그런 것도 아니다!
1. 사진 한 장으로만 학습하는 거는 아니잖아요
다양한 input이 들어가기 때문에 어떤 입력에서는 학습이 안되지만 다른 입력으로 학습이 가능하다.
모든 사진의 입력이 은닉층과 연산을 하여 음수가 나오는 경우가 아닌이상 어느정도 학습을 할 수 있다고 한다.
(모든 입력에 대하여 은닉층의 출력물이 음수이면 그건 신경망 문제이다.)
학습률이 너무 높거나 음수 bias가 너무 높은 경우에 가능한 일이라고 한다.
2. '오히려 좋아'
역설적이게도 Dying ReLU현상이 오히려 ReLU가 가지는 큰 장점으로 작용할 수 있다.
“Sparse Representation”을 부여하기 때문이다. sparsity를 창출하는 일반화(regularization)의 경향을 증가시킨다. sparsity가 높아질수록 숨겨진 패턴(inherent value)를 찾아내는데 유용하다.
overfitting을 방지하기 위해 weight를 작게 주는 것이 일반화라고 생각할 수 있지만, ReLU함수의 random weigh인 노드를 죽이는 현상이 거시적 관점에서는 일종의 일반화 방식으로써 작용할 수 있다.
network의 상관성을 줄여 overfitting을 방지한다. DropOut의 역할을 할 수 있다.
그외) Dying ReLU가 너무 싫어요 ㅜㅜㅜ
1. 가중치 초기화를 할 떄 bias가 양의 값을 가지도록 초기화를 한다. bias가 양수이면 선형 연산을 한 출력물이 bias와 더해지면서 양수가 될 수 있기 때문이다.
2. learning_rate를 줄인다. learning rate가 너무 큰 경우에 은닉층의 출력물이 0으로 가는 경우가 많다고 한다.
3. ELU나 Leaky ReLU같은 ReLU의 사촌들을 사용하면 된다.
Leaky ReLU는 ReLu의 장점을 모두 가지고 있으며, 음수인 특징이 dead까지 하지 않는다.
parametric rectifier PReLU이다. 여기서 음수가 되면 -의 어떤 가중치를 가지는데
음수의 기울기인 alpha는 파라미터이다. 이것은 학습을 통해 업데이트가 된다.
Leaky ReLU의 단점은 음수에서 선형성이 발생하여 복잡한 분류에서 사용을 할 수 없다.
원래 ReLU는 0으로 찍히거나 자신의 값이 나오기 때문에 비선형적이였는데
음수에서도 일부의 값을 주어서 선형적인 변환을 하기 때문에 활성함수인데 선형적인 활성함수가 되어버린다.
선형성 때문에 노이즈에 약하다.
+) PReLU는 Leaky ReLU에서 알파를 하이퍼 파라미터로 바꾸어 버린 활성함수이다.
ELU는 음수 부분에 exponential 값을 취하여 약간이라도 학습을 할 수 있게 도와준다.
음수의 어떤 값으로 포화되는 것을 볼 수 있다.
음의 어떤 값으로 포화 될 때, 음에서도 비선형 적이기 때문에 복잡한 분류에서 사용할 수 있다.
이는 노이즈에 강건 해질 수있게 만든다. deactivation state가 더 강건해진다.
그러나 출력 값이 음수부분으로 가면 지수적인 연산을 해야하기 떄문에
많은 연산량과 시간이 증가한다는 단점이 있다.(ReLU보다 느리다.)
<출처>
https://androidkt.com/what-is-the-dying-relu-problem-in-neural-networks/
https://brunch.co.kr/@kdh7575070/27
딥러닝-3.5. 활성화함수(6)-ReLU Family (tistory.com)