데이터 꿈나무

[ML] 활성화 함수(Activation Function) 종류 본문

AI/Machine Learning

[ML] 활성화 함수(Activation Function) 종류

ye_ju 2022. 10. 8. 08:44

신경망에서는 노드에 들어오는 값들에 대해 곧바로 다음 레이어로 전달하지 않고 활성화 함수를 통과시킨 후 전달한다. 활성화 함수(activation function)는 입력 신호의 총합을 출력 신호로 변환하는 함수로, 입력받은 신호를 얼마나 출력할지 결정하고 네트워크에 층을 쌓아 비선형성을 표현할 수 있도록 해준다.

 

활성화 함수는 주로 비선형이다. 그 이유는 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다. 

 

활성화 함수의 종류

 

 

1. 시그모이드 함수(Sigmoid function)

  • s자 형태의 함수이다. 
  • 계단함수와 같이 함숫값의 범위도 [0, 1]사이이다. 
  • 시그모이드 함수는 모든 구간에서 미분할 수 있고, 증가 함수이므로 미분값이 항상 양수이다. 

문제점

  • 함수 정의에 지수 함수가 포함되어 있어서 연산 비용이 많이 든다. 
  • 그레이 디언트 포화가 발생해서 학습이 중단될 수 있다. 
  • 양수만 출력하므로 학습 경로가 진동하면서 학습 속도가 느려진다. 
그레이디언트 포화(gradient saturation)란?
: 입력값이 변화해도 함숫값이 변화하지 않는 상태를 말한다. 

- 시그모이드 함수는 양쪽 끝에서 함숫값이 0과 1로 포화하기 때문에 미분값도 0으로 포화한다. 
- 그레이디언트가 0으로 포화하면, 그레이디언트 소실로 학습이 진행되지 않느낟. 
- 시그모이드의 출력은 항상 양수이기 때문에 학습시 최적화 경로가 최적해를 향해 곧바로 가지 못하고 좌우로 진동하면서 비효율적으로 가게 된다. 

 

 

2. 하이퍼볼릭 탄젠트 함수(Tanh)

 

  • 함숫값이 [-1, 1] 범위에 있는 s형 함수이다. 
  • 시그모이드가 항상 양수만을 출력하기 때문에, 최적화가 비효율적으로 진행되는 문제를 해결하고자 쓰이기 시작했다. 

문제점

  • 함수 정의에 지수 함수가 포함되어 있어서 연산 비용이 많이 든다. 
  • 그레이디언트 포화가 발생해서 학습이 중단될 수 있다.

▶ 하이퍼볼릭 탄젠트 함수는 시그모이드함수의 선형 변환식으로 나타낼 수 있다. 그래서 시그모이드 함수의 문제점이 그대로 남아있음을 확인할 수 있다. (시그모이드 함수의 단점인 non zero-centered를 해결했다. 하지만 여전히 vanishing gradient 문제는 해결하지 못했다. 그리고 이건 활성화 함수들의 고질적인 문제이다.)

 

 

3. ReLU 함수 (Rectified Linear Unit function)

  • 0보다 큰 입력이 들어오면 그대로 통과시키고, 0보다 작은 입력이 들어오면 0을 출력하는 함수이다. 
  • 따라서 입력값이 양수인 경우에만 활성상태가 된다. 

장점

  • 시그모이드 계열보다 추론과 학습 속도가 빨라지고 안정적으로 학습할 수 있다. 
  • 또한 ReLU를 사용했을 때 학습이 빨라지는 이유는 미분을 계산할 필요가 없기 때문이다. ReLU는 양수 구간에서 미분값이 1이고 음수 구간에서는 0이다. 따라서 미분을 계산할 필요가 없으므로 시그모이드 계열보다 6배 정도 학습이 빨라진다.
  • 양수 구간이 선형 함수이기 때문에  그레이디언트 손실이 생기지 않으므로 안정적으로 학습할 수 있다. 

 

단점

  • 양수만 출력하므로 학습 경로가 진동하면서 학습 속도가 느려진다.
  • 죽은 ReLU가 발생하면 학습이 진행되지 않을 수 있다. 죽은 ReLU는 뉴런이 계속 0을 출력하는 상태를 말한다. 뉴련이 0을 출력하면 그레이디언트도 0이 되어 뉴런이 더 학습되지 않고 같은 값을 출력하게 된다. 

  • Leakly ReLU - ReLU의 뉴런이 죽는(“Dying ReLu”)현상을 해결하기위해 나온 함수

 

Comments