상세 컨텐츠

본문 제목

[Deep Learning-딥러닝]Activation Function-활성화 함수(Sigmoid, Hyperbolic Tangent, Softmax, ReLu)

Artificial Intelligence

by [성운] 2019. 9. 13. 15:43

본문

활성함수 포스팅은 계속 업데이트 될 예정입니다.

Sigmoid function

Sigmoid의 출력 범위는 [0, 1] 사이며 식은 다음과 같습니다.

Sigmoid fomula

Sigmoid 함수는 양수로 커질수록 1에 가까워지고 음수로 갈수록 0에 가까워집니다. x값이 커지면 expax 는 무한대에 가까워져 1에 수렴됩니다. 반대로 x값이 작아지면 expax 0이되면서 0으로 수렴하게 됩니다. 그리고 a값에 따라 sigmoid graph의 경사가 달라지는데 값이 커질수록 가팔라집니다. b 가 커지면 x 0일 때 값이 0.5보다 커지고 b 가 작아지면 x0일 때 값이 0.5보다 작아집니다.

Sigmoid derivative formula

Sigmoid를 미분한식은 x 0에 가까울수록 결과값이 커집니다. training이 잘 된다는 의미입니다.  반면, 0에서 멀어지면 training이 잘 안 된다는 의미입니다.

a=2,  Sigmoid and Its derivative
a=3,  Sigmoid and Its derivative

Cost function with sigmoid

Sigmoid는 지수함수이기 때문에 비용함수가 다음과 같이 그려집니다.

 

비용함수에서 최소지점을 Global minimum이라고 하고 그 외 지점을 Local minimum이라 하고 합니다. Local minimum을 벗어나기 위해서는 다음과 같은 방법이 있습니다.

  • Start 지점을 변경해서 여러 번 트레이닝을 합니다.
  • Momentum을 크게 해서 local minimum을 넘어가게 합니다.
  • Noise를 줘서 local minimum을 넘어가게 합니다.

 

Hyperbolic tangent function

Hyperbolic tangent function 출력 값 범위는  [-1, 1]이며 Sigmoid function고 매우 유사한 식으로 식은 다음과 같습니다.

Hyperbolic tangent formula
a=1,  Hyperbolic tangent function
a=2,  Hyperbolic tangent function

 

https://reniew.github.io/12/

https://ratsgo.github.io/deep%20learning/2017/04/22/NNtricks/

 

소프트맥스 함수 – Softmax function

다 범주 분류기는 출력 노드의 활성함수로 소프트맥스(Softmax) 함수를 사용하게 일반적입니다. 소프트맥스 함수는 자신의 가중 합뿐만 아니라, 다른 출력 노드들의 가중 합도 고려합니다. 즉 소프트맥스 함수는 범주 수만큼의 차원을 갖는 입력벡터를 받아서 확률(요소의 합이 1)로 변환해 줍니다. 소프트맥스 함수에서 i번째 출력 노드의 출력은 다음과 같이 계산됩니다.

Softmax function formula

  • Vii번째 출력 노드의 가중합
  • m은 출력 노드의 개수

소프트맥스 출력의 각 원소는 0.0 이상 1.0 이하의 실수입니다. 그리고 노드의 출력을 모두 합한 값이 항상 1이 됩니다.

Softmax function formula-2

소프트맥스 함수는 모든 출력 값의 상대적인 크기를 고려한 값을 출력하기 때문에, 다 범주 분류 신경망에 적합합니다.

소프트맥스 함수는 두 개의 주요 단계로 이루어집니다.

  • 이미지가 어떤 레이블에 속하는지 근거(evidence)를 계산하는 과정입니다.
  • 근거들을 각 레이블에 대한 확률로 변환하는 것입니다.

벡터의 각 원소를 정규화하기 위해 소프트맥스 함수는 입력 값을 모두 지수 값으로 바꿉니다. 지수 함수를 사용하면 가중치를 더 커지게 하는 효과를 얻을 수 있습니다. 또한 한 클래스의 근거가 작을 때 이 클래스의 확률도 더 낮아지게 됩니다. 그뿐만 아니라 소프트맥스는 가중치의 합이 1이 되도록 정규화하여 확률분포를 만들어 줍니다.

소프트맥스 함수의 좋은 점은 예측이 잘 이루어지면 1에 가까운 출력은 하나만 있고 다른 출력은 0에 가까워진다는 점입니다. 하지만 예측이 잘 이루어지지 않으면 여러 레이블이 비슷한 확률을 가지게 될 수 있습니다.

https://3months.tistory.com/66

 

ReLu- Rectified Linear Unit

딥러닝은 그래디언트 소실의 해결책으로 활성함수를 Sigmoid에서 ReLU(Rectified Linear Unit)로 변경했습니다. ReLU Sigmoid 보다 오차가 훨씬 더 잘 전달됩니다다음은 ReLU 함수의 공식입니다.

ReLu formula

다음 그림은 ReLU 함수의 그래프입니다입력이 음수이면 0을 출력하고양수이면 입력값 그대로 출력하는 함수입니다.

 

ReLu

Sigmoid함수의 경우에는 입력값이 아무리 커도 신경망 노드의 출력은 1을 넘지 못했습니다. ReLU 함수는 이런 제한이 없습니다.

ReLU함수의 역전파 알고리즘을 구현하려면 ReLU함수의 도함수가 필요합니다. ReLU 함수의 도함수는 ReLU 함수의 정의에 따라 다음과 같이 주어집니다.

ReLu derivative

 

글이 도움이 되셨다면 공감 부탁 드립니다.

감사합니다.

관련글 더보기

댓글 영역