ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. 활성화 함수
    general ML, DL, NLP/딥러닝 2022. 4. 19. 17:57

    *본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다.

    2. 활성화 함수

    1) 활성화 함수란?

    활성화함수란 노드에 입력된 값을 변환하여 출력하는 역할을 하는 함수로, 신경망에서는 주로 비선형 함수를 씁니다.

    실제 신경망에서는 Z1, Z2와 같이 값을 그대로 내보내지 않습니다. 반드시 활성화 함수를 거쳐서 특정 형태로 변환 합니다. 

    2) 활성화 함수의 역할과 특징

    (1) 활성화 함수는 은닉 노드에서 독립변수의 정보를 추출하는데 사용됩니다.

      - 활성화 함수에 비선형 함수를 쓰는 이유는 독립변수와 종속변수 간의 비선형 관계를 파악하기 위해서입니다.

      - 선형 함수는 아무리 중첩해도 선형함수가 되기에 여러 은닉층을 쌓는 효과를 전혀 누릴 수 없습니다. 

      - 비선형 관계를 잘 파악한다는 것은 독립변수 정보  종속변수 예측에 필요한 정보를 더 잘 파악한다는 뜻입니다.

      - 예측에 필요한 정보를 추출하는 장소는 은닉층입니다. 

     

    (2) 신경망에서의 활성화 함수

    - 쉬운 미분: 신경망에서 쓰이는 활성화 함수는 미분이 쉬워야 합니다. 경사 하강법을 쓰기 때문입니다.

      또한 신경망의 입력/회귀 출력 노드를 제외한 모든 노드에는 활성화 함수가 존재하기에, 미분이 어려우면 computing 시간이 매우 오래걸립니다.  

    - 신경망 주요 활성화 함수: 시그모이드 함수, 하이퍼볼릭 탄젠트(tanh), 렐루(ReLU), 리키 렐루(Leaky ReLU) 등이 쓰입니다.

    흔히 그림에서는 노드 반을 쪼개서 왼쪽은 Z1, 노드 오른쪽은 활성화 함수를 거친 f(Z1)값을 서술하기도 합니다.

    왼쪽은 노드에 입력된 값 그대로, 오른쪽은 활성화함수를 거친 값입니다

    입력노드와 회귀 출력노드를 제외한 모든 노드에는 활성화함수가 존재한다고 했습니다. 분류 문제의 대표적인 출력 노드 활성화 함수 softmax임을 앞에서 말씀드렸습니다 :D softmax는 모든 값을 합쳤을 때 1이 되는, 마치 확률처럼 보이는 값을 리턴하기 때문에 분류 문제에서 쓰입니다. 


    3) 활성화 함수별 특징 

     (1) 시그모이드 함수(Sigmoid)

    -로지스틱 회귀 모형의 cdf인 로지스틱 function이 포함됩니다. 즉 누적확률분포이므로 0~1사이의 값을 취합니다.

    -시그모이드는 미분이 용이합니다. 또한 미분 결과가 시그모이드 함수와 크게 다르지도 않습니다. 

    (2) 하이퍼볼릭 탄젠트(Hyperbolic tangent; tanh)

    - 시그모이드와 비슷한 S커브이나, 가질 수 있는 값이 -1~1인 점에서 다릅니다. 

    - 시그모이드보다 더 넓은 값을 가지기에 더 널리 쓰이고 있으며, 텍스트 데이터 분석에 많이 사용됩니다(그렇다고 하네용.. 첨 알았ㅇ..)

    - 반면 이미지 처리에서 많이 쓰이는 함수는 ReLU라 합니다 :D

    (3) 렐루(Rectified linear unit; ReLU)

    -max function이며 인자를 2개 가집니다. 첫 인자는 0, 나머지 인자는 z입니다. 

    - 만일 z가 0보다 크면 y=x로 인해 f(z)=z가 리턴됩니다.

    -그러나 z가 0보다 같거나 작으면 0이 됩니다.

    - ReLU의 문제점: 기울기가 1, 0으로 구성되었기에 기울기가 0인 경우 경사하강법에서 문제가 발생할 수 있습니다. 이를 보완하고자 Leaky ReLU가 나옵니다.

    (4) 리키렐루(Leaky ReLU)

    - 렐루와 같은 max function이나, 첫 번쨰 인자가 εz가 됩니다.(입실론ε은 보통 0.01을 사용합니다)

    - 따라서 z가 0보다 큰 경우에는 f(z) = z로 ReLU와 동일

    - z가 0과 같거나 작은 경우 f(z) = εz가 됩니다. 

    - 근데 막 그렇게 큰 차이는 안난다고 하네요......

     

    'general ML, DL, NLP > 딥러닝' 카테고리의 다른 글

    7. CNN(Convolutional Neural Network)  (0) 2022.04.20
    6. Overfitting 과적합  (0) 2022.04.20
    5. FFNN(Feed Forward Neutral Network)  (0) 2022.04.20
    3. 경사하강법 & 4. optimizer  (0) 2022.04.19
    1. 딥러닝 기초  (0) 2022.04.19

    댓글

Designed by Tistory.