조이 생각

반응형

모델을 설계하고 개발 할때마다

 

다시 찾아보고 다시 이해하고...

 

매번 까먹고 헷갈린다. (저만.. 그런건가요? ㅜ^ㅠ)

 

이번에도 모델 개발하다가 찾은 좋은 포스팅이 있어서 

 

전체 해석까진 아니지만... 이해한 것을 갼략히 정리 하려고한다.

 

나중에 또 들여다 볼것임을 알기에

 

 

(참고한 내용)

machinelearningmastery.com/choose-an-activation-function-for-deep-learning/

 

How to Choose an Activation Function for Deep Learning

Activation functions are a critical part of the design of a neural network. The choice of activation function in the hidden layer will control how well the network model learns the training dataset. The choice of activation function in the output layer wil

machinelearningmastery.com

 

 

[ Layer에 따른 활성화 함수의 역할 ]

 

Activation function은 NN(Neural Network)를 설계함에 있어서 중요한 요소이다.

 

활성화 함수를 고르는 것은 입력에 대한 weighted sum을 노드에서 어떻게 output으로 변환할 것인지 결정하기 때문에 Transfer Function 이라고 부르기도 한다.

 

크게 두가지 관점으로 Activation function을 고를 필요가 있다. 

 

- Hidden layer : 입력으로 들어온 것을 다음 레이어로 얼마나 잘 전달할지 결정한다.

 

- Output layer : NN이 해결할 문제에 따라 활성 함수의 종류가 정해진다.

 

 

 ◎ Hidden Layer 활성화 함수

 

가장 일반적으로 사용되는 Activation function 세가지를 살펴보자.

 

1. ReLU (Rectified Linear Activation)

  • 도출 값 : 0~N (음수일 때 0 ~ 양수일 때는 그 값 그대로 내보낸다.)

2. Sigmoid (= Logistic Function)

  • 도출 값 : 0~1 사이 값

3. Tanh (Hyperboic Tangent)

  • 도출 값 : -1~1 사이 값

https://link.springer.com/article/10.1007/s11042-020-08740-w/figures/7

 

 

1990년 중반 까지 sigmoid, 2010 까진 Tanh 를 쓰는 추세였지만, 이 두가지는 Vanishing Gradient 문제에 봉착했다.

 

그렇다고 지금 아예 쓰이지 않고 있느냐? 그건 아니다.

 

그렇다면 여러가지 활성화 함수를 어떻게 선택할 수 있을까...?

 

인공신경망 아키텍처도 고려하여 Hidden Layer의 활성화 함수를 선택해야 한다.

 

일반적인 신경망 아키텍쳐에서는 Hidden Layer에 Activation Function으로 ReLU를 쓰고 있다.

 

그러나 RNN은 아직 일반적으로 Sigmoid를 recurrent connection으로 사용하고, Tanh를 output에 사용하고 있다.

 

 

출처 : https://machinelearningmastery.com/choose-an-activation-function-for-deep-learning/

 

Hidden Layer에서 Activation Function 선택 방법
▶ Multilayer Perceptron : ReLU
▶ Convolutional Neural Network : ReLU
▶ Recurrent Neural Network : Sigmoid, tanh

 

 

 Output Layer 활성화 함수

 

Output layer는 모델의 결과를 도출하는 부분이기 때문에, 모델이 해결하고자 하는 문제에 따라 선택해야한다.

 

다는 아니지만, Output Layer의 Activation Function으로 가장 많이 고려되는 세가지이다.

 

1. Linear output

  • 도출 값 : 실수
  • 적용 문제 : Regression
  • wighted sum에 변환을 주지않고 값을 바로 도출하기 때문에, "no activation"이라고도 한다.

 

2. Logistic (Sigmoid) output

  • 도출 값 : 0 ~ 1 
  • 적용 문제 : 거진 Binary Classifiaction에 사용된다.

 

3. Softmax output

  • 도출 값 : 벡터의 합이 1
  • 적용 문제 : Classifiaction
  • output layer에만 적용하는 활성화 함수이며, 2개 이상의 class를 필요로할 때 사용한다.

 

 

출처 : https://machinelearningmastery.com/choose-an-activation-function-for-deep-learning/

 

Output Layer에서 Activation Function 선택 방법

- Classification (분류)

▶ Binary Classification : sigmoid activation

▶ Multiclass Classification : softmax activation

▶ Multilabel Classifiaction : sigmoic activation

 

- Regression(회귀)

linear activation

 

 

Activation function은 layer와 model의 목적에 따라 선택 할 수 있다는 것을 살펴봤습니다.

 

모델을 설계하고 개발할 때 유용한 참고가 되기 바랍니다.

 

혹시나 잘못된 정보가 있다면 댓글 부탁드립니다.

 

도움이 되셨다면, 공감(하트) 버튼 부탁드려요. 큰 힘이 됩니다. :) 

 

감사합니다!

 

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading