비선형 함수를 활성화 함수로 적용해야한다. (복잡한 문제를 일반화 하기 위해서)

 

비선형 활성화 함수를 사용하지 않고, y=x 그대로 이용하게 되면 선형 함수가 될거임.

 

그러면 최종적으로 결국에 선형 함수가 된다. 선형 함수로 모델은 일반화를 해서 예측을 한다는건데, 잘 예측할 수 있을까? 아니다.

 

활성화 함수로는 비선형 함수만을 사용한다. 비선형 활성화 함수가 복잡한 패턴을 잡아주는데 도움을 더 주기 때문임.

 

그리고 활성화 함수가 선형 함수라면, 아무리 많은 레이어를 쌓더라도 이론적으로는 결국 하나의 선형 함수로 표현이 가능하기 떄문에 레이어가 별로 안중요함.

 

 

활성화 함수의 특징

  • 신경망의 레이어가 깊어질수록 활성화 함수의 효과가 극대화 됨:
    • 선형 함수는 레이어를 여러개 쌓더라도 결국에 단순한 선형이 되는 반면에 비선형 함수는 이전 레이어 출력에 변화를 적용하고 다음 결과를 전달해주는 식이라서 레이어가 깊어질수록 변화가 극대화되는거임.
    • 그러니까 레이어가 깊어짐에 따라 활성화 함수를 통해 생성되는 비선형성이 쌓이게 됨. 이를 통해 복잡한 문제를 추상화 할 수 있게 도니다.
  • 각 활성함수는 신호 활성화의 기준이 존재한다. 특정 임계치를 초과할 때 신호 강도가 증가한다. (ReLU 를 생각해보면 됨)

 

활성화 함수의 종류

 

선택하는 활성화 함수에 따라 네트워크의 성능과 학습 효율이 크게 달라질 수 있다. 그래서 이 차이에 대해 아는게 중요함.

 

 

ReLU:

  • 특징: ReLU 함수는 입력이 0 이상이면 입력을 그대로 출력하고, 0 이하면 0을 출력한다. 이는 수학적으로 f(x) = max(0, x)로 표현됨.
  • 목적: 비선형성을 도입하면서도 계산이 매우 간단하다는 장점이 있음. 또한, 그래디언트 소실 문제를 어느 정도 완화시켜준다.
  • 사용 시기: 일반적으로 CNN이나 일반적인 딥러닝 네트워크에서 널리 사용되며, 특히 이미지 처리나 분류 작업에 효과적임.
  • 사용 사례:
    • 컨볼루션 신경망 (CNN): ReLU는 이미지 인식과 같은 컴퓨터 비전 작업에서 널리 사용된다. CNN 레이어 사이에서 비선형성을 도입하고, 계산 속도를 높여 주기 때문에, 깊은 네트워크에서 효과적으로 활용됨.
    • 심층 신경망: ReLU는 일반적인 심층 신경망에서도 기본적으로 사용되며, 그래디언트 소실 문제를 줄이는 데 도움을 준다. 특히, 큰 데이터셋과 복잡한 모델 구조에서 선호된다.
  • 단점: 죽은 뉴런 문제가 발생할 수 있음. 이건 학습 과정에서 항상 0 이 반환되도록 해서 해당 뉴런이 사용되지 않는 문제임. 주로 뉴런에 큰 negative bias 가 끼거나, 높은 학습률로 인해서 가중치가 급격하게 업데이트 되면서 발생할 수 있음.

 

Leaky ReLU:

  • 특징: Leaky ReLU는 ReLU의 변형으로, 입력이 음수일 때도 아주 작은 기울기를 허용한다. 수학적으로 f(x) = x if x > 0 else αx (α는 작은 상수)로 표현됨.
  • 목적: ReLU에서 발생할 수 있는 "죽은 뉴런" 문제를 해결하기 위해 고안되었음. 음수 입력에 대해서도 그래디언트가 전파될 수 있도록 함으로써 뉴런이 활성화 상태를 유지할 가능성을 높임.
  • 사용 시기: ReLU를 사용하다가 뉴런의 비활성화 문제가 관찰될 때 or 특히 음수 값에 대한 정보가 중요할 때 유용하다.
  • 사용 사례:
    • 음성 인식: 음성 데이터는 종종 음수 값도 중요한 정보를 포함하고 있다. Leaky ReLU는 이러한 음수 입력을 완전히 무시하지 않고 작은 기울기를 통해 네트워크 학습에 참여시킨다.
    • GANs (Generative Adversarial Networks): GANs에서는 생성자와 판별자 모델이 복잡한 데이터 분포를 학습한다. Leaky ReLU는 판별자에서 종종 사용되어, 모델이 더 안정적으로 학습할 수 있도록 돕는다.

 

ELU (Exponential Linear Unit):

  • 특징: ELU는 음수 입력에 대해 지수적 감소를 하는 비선형성을 제공한다. f(x) = x if x > 0 else α(exp(x) - 1) (α는 상수)로 정의됨.
  • 목적: Leaky ReLU와 비슷하게 음수 입력에서도 그래디언트 소실을 방지하고, 출력값의 평균을 0에 가깝게 유지하여 배치 정규화 효과를 일부 제공한다.
  • 사용 시기: 빠른 수렴을 요구하거나 음수 입력에서 정보 손실을 방지하고자 할 때 적합하다.
  • 사용 사례:
    • 자연어 처리 (NLP): NLP 모델에서는 단어의 의미적 특성을 잘 파악하는 것이 중요하다.. ELU는 음수 입력에서도 유의미한 그래디언트를 유지하여 더 깊은 레이어의 정보 손실을 방지한다.
    • 회귀 문제: ELU의 출력이 음수 값을 포함할 수 있기 때문에, 실수 값을 예측하는 회귀 문제에도 적합하다.

 

Sigmoid:

  • 특징: Sigmoid 함수는 출력을 0과 1 사이로 압축하는 S자 형태의 함수로, f(x) = 1 / (1 + exp(-x))로 표현된다.
  • 목적: 주로 출력층에서 이진 분류를 위해 사용되어 확률 같은 값으로 출력을 제한한다.
  • 사용 시기: 이진 분류 문제의 출력층에 주로 사용되며, 확률을 모델링할 때 유용하다.
  • 사용 사례:
    • 이진 분류: 출력층에서 Sigmoid 함수를 사용하여, 예측 결과를 0과 1 사이의 확률로 나타낼 수 있다. 예를 들어, 이메일 스팸 분류나 환자의 질병 유무 판단 등에 사용됩니다.
    • 로지스틱 회귀: Sigmoid 함수는 로지스틱 회귀 모델의 핵심 구성 요소로, 결과를 확률로 해석할 수 있게 해준다.

 

Tanh:

  • 특징:
    • Tanh 함수는 하이퍼볼릭 탄젠트 함수로, 수학적으로는 tanh(x) = (e^x - e^-x) / (e^x + e^-x)로 정의된다. 이 함수는 S자 형태를 가지며, 출력 범위는 -1과 1 사이이다.
    • Tanh는 원점(0,0)을 중심으로 대칭인 함수이다. 이 대칭성은 네트워크의 출력을 자동으로 정규화하는 효과를 가지며, 학습 초기 단계에서 더 빠른 수렴을 도울 수 있다.
    • 값이 크거나 작을수록 기울기가 0인데 이는 신호 강도가 약해짐을 의미한다. 그래서 그라디언트 소실 문제가 발생할 수 있음.
  • 목적:
    • 출력 정규화: Tanh 함수의 출력이 -1과 1 사이로 제한됨으로써, 이 함수는 자연스럽게 데이터를 정규화하는 효과를 가진다. 이는 신경망이 특히 그라디언트 기반의 학습 알고리즘을 사용할 때 더 안정적으로 학습을 진행할 수 있게 도와준다.
    • 정보의 균형 잡힌 표현: 0을 중심으로 대칭이기 때문에, 입력 값의 평균이 0에 가까워지도록 도와줍니다. 이는 학습 과정에서 그라디언트의 흐름을 개선하고, 신경망의 전반적인 효율을 증가시킨다.
  • 사용 시기:
    • 순환 신경망 (RNN) 및 LSTM: Tanh는 순환 신경망(RNN)과 장기 단기 기억(LSTM) 네트워크에서 매우 일반적으로 사용된다. 이러한 네트워크 구조는 시간에 따라 정보를 저장하고 처리하는 데 사용되며, Tanh 함수는 이 정보를 효과적으로 정규화하여 네트워크의 메모리 셀에 저장할 수 있도록 돕는다.
    • 은닉층 활성화 함수: Tanh는 출력이 중심화되고 정규화되는 특성 때문에, 특히 깊은 신경망의 중간 레이어에서 유용하게 사용된다. 이는 각 레이어의 입력이 너무 크거나 작아지는 것을 방지하고, 그라디언트 소실 문제를 완화하는 데 도움을 준다.

 

 

Step function:

  • 특징: 입력이 0 이상이면 1을, 그 외에는 0을 출력하는 함수임.
  • 목적: 간단한 이진 결정을 내리는데 사용된다.
  • 사용 시기: 현대의 딥러닝에서는 거의 사용되지 않음.

 

 

ELU vs Leaky ReLU: 

  • 음수 영역에서의 동작:
    • Leaky ReLU: 선형 함수
    • ELU: 지수 함수
  • 노이즈 강건성:
    • Leaky ReLU: 선형성으로 인해 노이즈에 더 민감할 수 있음
    • ELU: 음수 영역에서의 포화로 인해 노이즈에 더 강건
  • 계산 복잡성:
    • Leaky ReLU: 단순한 선형 연산으로 계산 효율이 높음
    • ELU: 지수 함수 계산으로 인해 상대적으로 복잡
  • 깊은 신경망에서:
    • ELU가 더 유리할 수 있음: 평균 활성화를 0에 가깝게 유지하여 기울기 전파를 개선
    • 평균 활성화 (Mean Activation) 은 뉴런의 평균적인 출력값을 말함. 0에 가까울수록 더 안정화 됨. 

 

 

Tanh 에서 대칭성이 학습을 안정화하는데 영향을 주는 이유는? (정규화가 안정화에 영향을 주는게 아님?)

  •  Tanh 함수의 대칭성:
    • Tanh 함수는 원점(0,0)에 대해 대칭임
    • 출력 범위는 -1에서 1 사이이고. 
  • 대칭성이 학습 안정화에 미치는 영향: 
    • 평균이 0에 가까워지므로 다음 층으로의 입력이 균형이 잡히게 됨. 이거 때문임.
    • 0 근처에서 큰 기울기를 가지므로 학습 초기에 더 효과적인 가중치 업데이트가 될 수 있음. 하지만 네트워크가 깊어질수록 tanh 값이 커질수록 기울기는 0에 가깝게 가기 때문에 Gradient Vanish 문제가 생김. 그래서 깊은 신경망에서는 ReLU 와 같은 다른 활성화 함수를 사용한다.  
  • 정규화도 학습 안정화에 영향을 끼침.

 

 

어떤 활성화 함수를 사용해야하는가? 

  • 이건 경험과 실험에 의존하며 고려사항은 있음:
  • 문제의 종류:
    • 이진 분류 문제에서는 출력층에 주로 시그모이드 활성화 함수를 사용함.
    • 다중 클래스 분류 문제에서는 출력층에 소프트맥스 활성화 함수를 사용함.
    • 회귀 문제에서는 선형 활성화 함수를 사용할 수 있다.
  • 데이터의 특성:
    • 입력 데이터가 음수 값을 포함할 수 있다면, ReLU 대신 Leaky ReLU나 ELU 같은 함수가 적절할 수 있다.
  • 네트워크 구조:
    • 깊은 네트워크에서는 그래디언트 소실 문제를 방지하기 위해 ReLU 또는 그 변형들을 선호할 수 있다.
    • 순환 신경망(RNN)이나 LSTM에서는 tanh 또는 시그모이드 함수가 자주 사용된다.
  • 실험과 조정:
    • 모델을 처음 설계할 때는 일반적으로 잘 작동하는 활성화 함수(예: ReLU)를 시작점으로 사용한다.
    • 이후, 네트워크의 성능을 모니터링하고, 필요에 따라 다른 활성화 함수로 실험을 해 볼 수 있다.

 

Tanh 와 Sigmoid 에서 Gradient Vanish (그라디언트 소실) 가 나타나는 이유은? 

  • 그라디언트 소실(Vanishing Gradient) 문제는 심층 신경망에서 주로 발생하는 현상임.
  • 이 문제가 발생하는 주된 이유는 네트워크를 통해 역전파될 때 그라디언트(가중치에 대한 손실 함수의 미분 값)가 점점 작아지기 때문이다.
  • 활성화 함수의 미분과 그라디언트 소실:
    • Sigmoid 함수의 특성과 미분
      • Sigmoid 함수는 σ(x) = 1 / (1 + exp(-x))로 정의됩니다. 이 함수의 출력 범위는 0과 1 사이임.
      • Sigmoid 함수의 미분은 σ'(x) = σ(x)(1 - σ(x))입니다. 이 미분 값은 x가 0에서 최대이며, x의 절대값이 커질수록 그라디언트는 0에 가까워진다.
      • 즉, 입력 값의 절대값이 크면 크게 낮은 그라디언트를 가짐.
    • Tanh 함수의 특성과 미분:
      • Tanh 함수는 tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))로 정의되며, 출력 범위는 -1과 1 사이임.
      • Tanh 함수의 미분은 tanh'(x) = 1 - tanh^2(x) 임. 이 미분 값 역시 x의 절대값이 클수록 0에 가까워지며, 출력 범위가 -1과 1 사이인 점에서 Sigmoid 함수의 문제를 다소 완화시키긴 하지만, 깊은 네트워크에서 여전히 그라디언트 소실 문제를 유발할 수 있다.

 

  • 그라디언트 소실이 일어나는 과정:
    • 역전파에서의 그라디언트 계산: 신경망에서 손실 함수의 그라디언트는 출력층에서 입력층으로 역전파된다. 각 레이어를 지날 때마다 레이어의 가중치에 대한 미분을 현재까지의 미분 결과에 곱한다.
    • 미분값의 감소: 활성화 함수의 미분 결과가 1보다 작을 경우, 이 미분값들이 연쇄적으로 곱해지면서 그라디언트의 크기가 지수적으로 감소한다. 따라서 신경망이 깊어질수록, 특히 Sigmoid나 Tanh 같은 활성화 함수를 사용할 경우, 입력층에 가까운 레이어의 그라디언트는 거의 0에 수렴할 수 있다.
    • 가중치 업데이트의 실패: 그라디언트가 매우 작아지면, 가중치 업데이트가 제대로 이루어지지 않는다. 이는 학습이 느려지거나 전혀 이루어지지 않는 상황을 초래할 수 있으며, 결국 모델의 성능이 제한된다.

 

 

Gradient Vanish 문제를 해결하는 방법은? 

 

  • 가중치 초기화 기법 (예: Xavier/Glorot 초기화): 
    • 이 기법의 핵심 아이디어는 "적절한 시작점을 찾는 것" 임. 
    • 네트워크 학습 시작 시 각 층의 출력이 너무 크거나 작지 않도록 가중치를 초기화하는 것. 
    • 적절한 크기로 가중치를 초기화하면 출력이 너무 크거나, 너무 작도록 하지 않아서 학습에 안정성을 줄 수 있는거임. 
    • 그래서 깊은 뉴럴 네트워크 층까지 값을 전달할 수 있는 것. 
    • Xavier 초기화는 입력과 출력 뉴런 수를 고려해 이상적인 초기 분포를 제공한다. 
  • 배치 정규화(Batch Normalization) 사용: 
    • 이 기법의 핵심 아이디어는 "데이터 흐름을 안정화 하는 것" 임. 
    • 각 층의 입력을 정규화해서 일정한 범위 내에서 유지하도록 하는 것이다. 
    • 이렇게 각 층의 입력 분포를 안정화시키면  내부 공변량 이동(internal covariate shift)을 줄일 수 있다. 따라서 이전 층의 변화에 덜 민감하게 만들 수 있음. 
    • 내부 공변량 이동은 심층 신경망에서 학습 과정 중 각 층의 입력 분포가 변하는 현상을 말함. 이전 층들의 파라미터가 학습되면서 계속 데이터 분포가 변화하는데 이를 통해서 안정화된 학습이 불가능. 그라디언트의 크기와 방향이 불안정해지니까. 마치 움직이는 과녁을 쏘는 것. 
  • 잔차 연결(Residual Connections) 적용: 
    • 이 기법의 핵심 아이디어는 "지름길을 만드는 것" 임. 
    • 입력을 몇 개 층을 건너뛰어서 직접 출력에 더하는 것이다.
    • 이를 통해서 그라디언트가 항상 최소한 하나의 방해받지 않는 경로 (identity mapping) 을 통해 흐를 수 있도록 하는 것. 
    • 이렇게 하면 매우 깊은 네트워크에서도 그라디언트가 초기 층까지 효과적으로 전달될 수 있음. 
  • ReLU 및 그 변형들(Leaky ReLU, ELU 등) 사용: 
    • 이 기법의 핵심 아이디어는 "비선형성 유지와 기울기 보존" 임 
    • 양수 입력에 대해서 0이 아니라 양의 기울기를 가지도록 하는 것.
    • Sigmoid 나 Tanh 와 달리 항상 ReLU 는 기울기가 1이니까. 그래서 그라디언트가 소실되지 않을 수 있는 것.

 

'Deep Learning' 카테고리의 다른 글

Neural Network Basics  (0) 2024.07.13
Introduction to Deep Learning  (0) 2024.07.12

+ Recent posts