Networks/데이터 분석 및 AI

SK networks AI Camp - 딥러닝 추가 조사 자료

코딩하는 Español되기 2024. 9. 4. 15:30

활성화 함수 사용 이유

: 딥러닝 모델의 표현력을 항상 시켜주기 때문

  이렇게 표현력을 다양화해주는다는 것을 '모델의 representation capacity 또는 expressivity 를 향상 시킨다' 라고 한다.

딥러닝 모델의 parameter(w, b) = 입력값 x와 선형 관계

xw+b의 식 :입력값 x에 대하여 곱하고 더하는 연산만하기 때문에 연산 결과 값이 다음 레이어 입력으로 들어가고 출력으로 다시 나오고, 반복적으로 layer 층을 지나도 선형관계가 됨

   (즉 layer층을 여러개 겹쳐도 선형관계 )
○ 많고 복잡한 특징 가진 이미지(비선형)를 표현하기 위해서는 선형성이 아닌 비선형성을 지니고 있어야 함
○ 활성화 함수 : 선형에서 비선형으로 바꿔주는 역할 

   (layer 사이 사이에 활성화 함수를 넣어줘서 비선형 데이터를 표현 가능)
○ 딥러닝 모델에는 여러 layer가 존재하고 각각의 layer 모델의 비선형성을 위해 Activation function을 배치
    * 그 방법 중 하나가 Sigmoid function을 많이 사용
○ 그런데 Layer가 많아질수록 학습이 잘 되지 않는다.
 

왜? 기울기 소실 문제 때문에

 

○ 딥러닝은 데이터에 대한 최적의 모델 파라미터를 찾는 과정에서 ‘경사하강법(Gradient descent)’을 기반으로 하는 다양한 최적화 기법을 활용
○ 기본적으로 경사하강법은 사전에 설정한 Loss function을 모델의 각 parameter로 편미분 했을 때의 기울기     (즉, gradiant vector의 반대 방향으로 paremeter를 update하는 기법)을 의미
    * Sigmoid에 있는 각각의 파라미터의 편미분값은 역전파(Back propagation) 과정을 통해 계산

○ Sigmoid function의 그래프에서 볼 수 있듯이, Sigmoid function의 미분 값은 입력값이 x=0일 때 가장 크고, 입력값이 커지거나 작아짐에 따라 기울기는 거의 0에 수렴

   * 이때, 가장 크다는 x=0일 때의 미분값도 1/4에 불과하다.
○ 따라서, 역전파 과정에서 Sigmoid의 미분값들이 거듭해서 곱해지게 되면 layer의 수가 늘면 늘수록 입력층에 가까이 있는 layer에 도달하는 gradient vector의 크기가 매우 작아짐
○ 이 현상이 기울기 손실(vanishing gradient)

이게 왜 문제가 되는가?

○ Gradient vector의 반대방향으로 parameter를 update하는 것이 우리의 해결전략

○ 제공되는 gradient vector가 거의 0벡터랑 별 차이가 없는게 주어지면 사실상 update를 거의 할 수 없는, 제자리에 머무를 수 밖에 없는 상황
○ Sigmoid function은 또 하나의 문제점

    ● 출력값의 범위가 [0, 1]로 모두 양수라는 점 
    ● 이렇게 되면 이전 layer에서 Sigmoid을 거치고 나온 모든 component가 [0, 1] 사이에 있는 output들이

       다음 layer에 들어갈 때, 역전파 계산을 해보면 gradient vector의 방향이 모두 + 이거나 - 가 되어버림
    ● Sigmoid function의 zigzag 현상 발생 : gradient가 이리 갔다 저리 갔다하므로 학습이 느려짐

 

이러한 문제들 때문에 Layer가 많은 모델에서 활성화함수로 Sigmoid을 활용하면 모델 학습이 제대로 이루어지지 않는다.

그래서 ReLu나 다른 활성화함수가 이를 보완하기 위해 많이 나오고 ReLu를 자주 사용

 

ReLu는 음수에서 처리를 못하는 경향이 있어서 다른 활성화 함수들을 사용

2024.09.04 - [Networks/데이터 분석 및 AI] - SK networks AI Camp - Deep learning 기초

 

SK networks AI Camp - Deep learning 기초

인공지능(Artificial Intelligence): 사람의 지능을 만들기 위한 시스템이나 프로그램(딥러닝은 머신러닝에 포함되는 기술)인공신경망○ Node(노드) : 뉴런을 모방하는 기초단위                     

joowon582.tistory.com