활성화 함수 - Activation function

MostlyFor·2023년 9월 6일
0

머신러닝 & 딥러닝

목록 보기
4/13

활성화 함수가 필요한 이유

n층 layer == 1층 layar

만약 활성화 함수가 없다면 선형변환의 중복은 선형변환이 된다.

아래는 간단하게 3층짜리 layer를 가진 활성화 함수 없는 신경망이다. (또는 활성화 함수가 y=x 라고 할 수도 있다.)

이 변환을 쭉 계산해보면 아래 그림처럼 Y=AX+BY = AX+B 꼴이 나오고, 이는 결국 1층짜리 layer를 가진 신경망과 같아진다.

그렇다면 layer 하나 즉, 하나의 선형변환으로는 원하는 표현을 하지 못할까?

1층 layer의 한계

위의 예시처럼 X가 2차원 데이터, Y가 1차원 데이터인 상황을 생각해보자. 이를 간단히 (x0, x1), 그리고 y0으로 표현하겠다.

Y=WX+BY= WX+B은 2차원 상의 한 점을 1차원 상의 한 점으로 변환하는 것과 같다.

1층 layer의 표현식은 y=x0w0+x1w1+b0y=x_0w_0+x_1w_1+b_0이다.

이를 (x0, x1) 축을 가지는 2차원 평면 상에 나타내보자.

y=x0w0+x1w1+b0y=x_0w_0+x_1w_1+b_0는 2차원 평면 상에서 직선을 의미한다.

위 직선에 따라 두 영역으로 구분할 수 있다.

빨간색 영역은 y의 수직선 상 0보다 큰 위치로 가고, 파란색 영역은 0보다 작은 영역으로 간다.

위 방식의 한계는 직선으로 영역을 구분해야 한다는 점이다.

이러한 방식은 다양한 표현력을 가질 수 없다.

예를 들어, or연산 또는 and 연산은 구현할 수 있지만, xor과 같이 (1,0) (0,1)을 공간 A에, (0,0)과 (1,1)를 공간 B로 나누는 직선은 찾을 수 없다.

활성화 함수의 종류

위에서 우리는 활성화 함수가 없을 때의 한계를 살펴보았다.

즉, 이는 곧 선형 변환의 한계였다.

활성화 함수는 이러한 문제를 해결하기 위해 비선형 함수를 사용한다.

아래는 대표적인 활성화 함수이다.

1. Sigmoid

시그모이드 함수는 대표적으로 두 가지 문제를 가진다.

1-1) Gradient Vanishing

시그모이드 함수를 미분해보면 0과 0.25 사이의 값을 가진다. 역전파 과정에서 출력층과 가까운 층은 그레디언트가 사라지지 않아서 학습이 잘 되지만, 출력층과의 거리가 멀어질수록 그레디언트의 활성화 함수의 미분값이 곱해지므로, 그레디언트가 0에 수렴해서 학습이 되지 않는다.

1-2) not Zero - Centered

이는 Sigmoid 함수의 출력값이 언제나 양수이기 때문에 발생하는 문제이다.

문제는 Sigmoid 함수의 출력값이 양수이므로 입력값이 항상 양수가 되어 weight들의 gradient의 방향이 같아지게 되는 것에 있다.

물론 Sigmoid의 출력값이 입력값으로 들어가야 하므로 1층 layer의 weight는 문제가 없다.

왜 그렇게 되는지는 아래 역전파 수식을 통해 확인할 수 있다.

같은 weight의 gradient 부호는 학습을 비효율적으로 하게 만든다.

Optimal한 weight가 (1, -1) 인데, 현재 weight가 (0, 0)일 경우 w1은 증가시켜야 하고 w2는 감소시켜야 한다.

하지만 weight의 gradient 부호가 같다면, 우선 (1, 0)으로 만들고 그 다음 (1, -1)로 가는 2 step을 거쳐야 한다.

즉, 학습의 비효율이 발생한다.

출처
https://deepinsight.tistory.com/113

2. Tanh

tanh 함수는 Sigmoid의 not Zero - Centered 문제는 해결했지만, 층이 깊다면 gradient vanishing 문제가 발생할 수 있다.

3. ReLU

양의 입력에서는 기울기가 항상 1이므로 Sigmoid나 Tanh 에서의 gradient vanishing 문제를 어느 정도 해결한 방법이다.
하지만 음의 입력에서는 그레디언트가 0이 되어 가중치의 값을 학습할 수 없게 된다.

4. Leaky ReLU

ReLU에서 그레디언트가 0이 되는 문제를 해결한 방법으로 0이하에서는 Gradient가 a가 나오는 방법이다.

0개의 댓글