본문 바로가기
인공지능/ML-DL 기초

활성화 함수에 대한 이해

by 3n952 2023. 12. 1.
딥러닝 공부를 시작하면 여러가지 개념이 뒤죽박죽 되어 정리되지 않는 경우가 생기기 마련이다.
개념 하나 그 자체만 생각하면 이해하기 쉬운데 그래서 그게 어떻게 딥러닝의 학습과 연관지어 생각할 수 있는지 의문이 든다.
딥러닝 초보자인 우리를 헷갈리게 하는 개념들 중 하나인 활성화 함수에 대해 이해해보도록 하자!

 

1. 활성화 함수란(activation function)?

활성화 함수가 무엇인지 알기 위해 먼저, 활성화라는 단어를 생각해볼 필요가 있다.

'활성화'라는 것은 input에 대하여 output을 결정할 때 어떠한 조건에 따라 결정되는 것을 의미한다.

따라서 활성화 함수는 입력에 따라 출력을 결정하게 하는 함수를 의미한다.

활성화 함수가 달라짐에 따라 같은 입력에 대해서도 다른 출력을 낼 수 있는 것이다.

 

그림1. 딥러닝에서의 활성화 함수

 

그림 1을 보면, 가중치 곱의 합이 활성화 함수의 입력으로 들어오면서 출력을 결정하는 것을 볼 수 있다.

가령 활성화 함수가 만약 f(x) = x이면, 입력값 그대로 출력을 내는 것이다.

 

따라서 활성화 함수를 무엇을 쓰는지가 딥러닝 모델의 학습 및 성능에 큰 영향을 미칠 수 있어 매우 중요하다.

 

2. 활성화 함수를 쓰는 이유

활성화 함수 정의를 알고 나면 문득 드는 생각이 있다.

"활성화 함수가 뭔지 알겠는데 그래서 입력에 대해 출력을 다르게 해주는게 왜 좋아?"라는 의문이다.

그 이유를 간단하게 말하면 모델의 표현력을 향상시켜주기 때문이다.

 

활성화 함수는 모델의 표현력을 왜 향상시켜줄까?

이해를 위해 한 가지 예시를 들어보자.

만일 어떤 모델이  이라는 2개의 parameter로 이루어진 다음과 같은 모델이라고 해보자.

그런데 이 모델로 등으로 표현되는 데이터를 학습한다고 하면 모델이 잘 표현할 수 있을까?

"그럴 수 없다." 

왜냐하면  값을 아무리 바꿔도 와 같은 함수는 절대 표현할 수 없기 때문이다.

수학적으로, '"선형" 함수(직선, w1 * x + b1의 꼴)로는 "비선형"함수(사인곡선 or x⁵와 같은 고차항)를 표현할 수 없다.

딥러닝 모델의 parameter()들은 입력값 와 선형 관계이다.

즉, 의 형태로 곱하고 더하는 연산만 하면서(선형 관계를) 그 다음 layer로 전달하기만 한다.

 

그림2 선형 +(합성) 선형 = 선형

 

그리고 그림2와 같이 아무리 많은 layer들을 겹쳐도 역시 그 결과는 선형 관계이다.

하지만 사인 곡선처럼 직선으로는 근사 시킬 수 없는 비선형 데이터를 표현하려면 딥러닝 모델도 비선형성을 지니고 있어야 한다.

이때 쓰인 것이 바로 활성화 함수이고,

이 활성화 함수를 layer 사이사이에 넣어줌으로써 모델이 비선형 데이터도 표현할 수 있게 되는 것이다. 

- 비선형성을 갖는다는 것의 의미

모델이 선형성만 가지고 데이터를 표현한다(학습하여 예측한다)면 왜 안될까?
이를 이해하기 위해서 논리 회로에 대한 선형 방정식을 대입해보면 된다.
여기를 참고하자!
https://sanmldl.tistory.com/46
https://jjeongil.tistory.com/976

즉, 우리가 딥러닝 모델을 통해 데이터에 잘 맞는 표현을 학습하는 것이 목표인데,
선형적인 모델은 논리회로 조차 제대로 표현할 수 없기 때문에, 이를 비선형적인 표현을 학습하도록
활성화 함수를 통해 바꿔주는 것이다.
고양이나 강아지 사진처럼 무수히 많고 복잡한 특징들을 비선형적 표현으로 잡아낼 수 있는 것이다!

 

 

3. 활성화 함수의 종류

활성화 함수에는 하이퍼볼릭 탄젠트(tanh), 시그모이드(sigmoid), Softmax, ReLU 등등 많은 함수들이 있다.

활성화 함수는 그 표현에 따라 다음과 같이 나타낼 수 있다.

  1. 이진 계단 함수(Binary step function)
  2. 선형 활성화 함수(Linear activation function)
  3. 비선형 활성화 함수(Non-linear activation function)
  • 이진 계단 함수

이진 계단 함수(Binary step function)는 어온 입력이 특정 임계점을 넘으면 (혹은 True)를 출력하고 그렇지 않을 때는 을 출력한다. 그래프를 보면 더 명확히 알 수 있는데, 이러한 특성 때문에 이 활성화 함수는 간단한 이진 분류 문제에서 꽤 유용하게 쓰인다고 한다.

아래의 식은 임계점이 일 때의 이진 계단 함수식이다.

 

- 이진 계단 함수의 한계점

1. 역전파 과정에서 미분 값이 일정하거나 불가능하다.(학습불가)

2. 다중 출력이 불가능하다(이진분류에만 사용)

 

  • 선형 활성화 함수

선형 활성화 함수(linear activation function)은 말 그대로 '선형'인 활성화 함수이다.

선형 활성화 함수를 사용한 모델은 이진 계단 함수를 사용한 모델과 다르게 다중 출력이 하기 때문에,

이진 분류, 간단한 다중 분류 문제까지도 해결할 수 있다고 한다.

또한 미분이 가능해서 역전파 알고리즘 또한 사용할 수 있다.

 

대표적인 선형 함수는 f(x) = x 가 있다.

 

- 선형 활성화 함수의 한계점

1. 비선형적 특성을 지닌 데이터를 예측하지 못한다.(위에서 다룬 내용)

 

 

  • 비선형 활성화 함수

비선형 활성화 함수(non-linear activation function)는 '비선형'인 활성화 함수로써

앞에서 나왔던 활성화 함수들의 문제점을 해결한 함수라고 생각하면 된다.

따라서 비선형 활성화 함수를 사용한 모델은 역전파 알고리즘을 사용할 수 있으며, 다중 출력도 가능하고

비선형적 특성을 지닌 데이터도 예측할 수 있다.

 

비선형 활성화 함수에는 다양한 종류가 있는데,

크게 1. 시그모이드(sigmoid) / 로지스틱(logistic) 2. 하이퍼볼릭 탄젠트(tanh, Hyperbolic tangent) 3. Relu 4. Softmax

가 있다. 이를 기본으로 변형된 다양한 활성화 함수가 있으므로, 이 4가지를 아는 것이 중요하다!

(다른 포스팅에서 따로 비선형 활성화 함수의 종류에 대해 정리할 예정)

 

 


 

이번 포스팅에서는 활성화 함수가 딥러닝의 학습에서 어떠한 의미를 갖는지 알아보았다.

정리하자면, 모델이 데이터로부터 다양한 표현을 학습하기 위해 비선형성을 띄는 활성화 함수를 layer 사이사이에

넣음으로서 좋은 예측을 할 수 있게 된다는 것이다! 

 


References
[1] 선형 변환: https://youtu.be/kYB8IZa5AuE