인공지능 - 활성화 함수(Activation Function)

인공지능 - 활성화 함수(Activation Function)

활성화 함수(Activation Function)

출처 : https://medium.com/hyunjulie/activation-functions-a-short-summary-8450c1b1d426

Neural Network에서는 n번째 레이어에서 노드의 연산 값 다음(n+1)번째 레이어로 계속 전달해주는 식으로 가중치를 훈련하고 예측을 진행한다. 이때 다음 레이어로 전달하는 신호의 세기를 정의하기 위해 활성화 함수를 사용한다. (예를 들어, 세기가 1 이상이면 다음 뉴런에 전달하고, 1 미만이면 전달하지 않음.)

이러한 활성화 함수의 다량의 계산을 통해 신경망은 필요한 정보를 학습한다. 다량의 계산과 함께 Backpropogation도 수행해야 하므로 활성의 함수의 효율성은 중요하다.

활성화 함수의 종류

- Linear Activation Function

h(x) = cx

선형 함수는 활성화 함수로 사용하기에는 한계가 있다.

1. BackPropogation 사용 불가

BackPropogation은 Partial Derivative를 통해 Gradient Descent를 수행하여 각 노드에 파라미터를 조정하며 에러 값을 줄인다.

하지만 선형 함수의 미분값은 상수이기 때문에 입력값과 상관없는 결과를 얻게 된다.

2. 은닉층을 무시한다.

에러를 줄이기 위해 Network에 여러개의 레이어(층)을 둔다.

하지만 h(x) = cx 일때, h(h(h(x))) = c'x 이므로,

선형 함수를 여러개 사용하는것은 마지막에 선형함수를 한 번 사용하는것과 같다.

결국 여러개의 레이어를 둔 이유가 없게 된다.

- Non-Linear Activation Function

이러한 단점으로 인해 비선형 함수를 활성화 함수로 사용한다.

Non-Linear Function의 종류

출처 : https://medium.com/@kmkgabia/ml-sigmoid-%EB%8C%80%EC%8B%A0-relu-%EC%83%81%ED%99%A9%EC%97%90-%EB%A7%9E%EB%8A%94-%ED%99%9C%EC%84%B1%ED%99%94-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-c65f620ad6fd

1. Sigmoid

장점)

입력값이 커질수록 1에 수렴하고, 작을 수록 0에 수렴한다는 특징이 있다.

단순한 미분 식과 유연한 미분 값을 갖는다.

출처 : https://becominghuman.ai/what-is-derivative-of-sigmoid-function-56525895f0eb?gi=2342e5a544b4

단점)

층이 쌓일수록 gradient 값이 0으로 수렴하는 Vanishing Gradient 문제가 발생한다.

출력의 중심이 0이 아니다.

2. Tanh

장점)

출력의 중심이 0이다.

그외는 Sigmoid와 동일.

단점)

출력의 중심을 제외하고는 Sigmoid와 동일

3. ReLU - 딥러닝 가장 많이 사용되는 활성화 함수, CNN에서 좋은 성능을 보인다.

장점)

연산 속도가 빠르다.

정보를 효율적으로 받는다(0보다 크면 x, 아니라면 0)

단점)

입력값이 0보다 작거나 같으면 gradient가 0이된다. 즉 학습을 하지못한다.

출처

- https://subinium.github.io/introduction-to-activation/

from http://nooblette.tistory.com/235 by ccl(A) rewrite - 2021-09-09 20:26:52