Neural Network Basics - Multi-Layer Neural Net (Multi layer Perceptron)

Deep Learning/Deep Learning Basics · 2024. 9. 19. 20:51

다층 신경망(Multi-layer Neural Network)

다층 신경망(Multi-layer Neural Network)은 여러 개의 은닉층(hidden layers)을 포함하는 신경망 구조이다. 이 구조는 단층 퍼셉트론의 단점인 선형성을 가질 수 있도록 설계되었다.

※ 수학적으로 선형성의 의미

다층 신경망 구조

  • Input Layer : 입력 데이터를 받는 노드들로 구성되어있다. 가중치와 활성화 함수를 갖지 않는다.
  • Hidden Layer : 하나 이상의 은닉층이 있으며, 각 층은 활성화 함수를 적용하여 입력 값을 비선형적으로 변환한다.
  • Output Layer : 예측 값을 출력하는 노드들로 구성되어있다.

각 층(Hidden Layer) l의 계산 과정

 

1. 선형 변환(Linear Transformation) 

$$ z_i^{(l)} = \sum_{j=1}^{n^{(l-1)}} w_{ij}^{(l)} a_j^{(l-1)} + b_i^{(l)} $$

  • z_i : 은닉층 l의 i번째 노드의 가중합(weighted sum)
  • w_ij : 층 l-1의 j번째 노드에서 층 l의 i번째 노드로 가는 가중치
  • a_j : 층 l-1의 j번째 노드의 활성화 값
  • b_i : 은닉층 l의 i번째 노드의 출력 값(활성화 값)
  • n : 이전 층 l-1의 노드 갯수

2. 활성화 함수(Activation Function)

$$ a_i^{(l)} = \sigma(z_i^{(l)}) $$

  • a_i : 은닉층 l의 i번째 노드의 활성화 값
  • sigma(z) : 활성화 함수

 

출력 층(Output Layer) L의 계산 과정 (분류 문제에서 출력 층에 소프트맥스 활성화 함수를 사용하는 경우)

 

1. 선형 변환(Linear Transformation)

$$ z_i^{(L)} = \sum_{j=1}^{n^{(L-1)}} w_{ij}^{(L)} a_j^{(L-1)} + b_i^{(L)} $$

 

2. 소프트맥스 활성화 함수(Softmax Activation Function)

$$ a_i^{(L)} = \frac{e^{z_i^{(L)}}}{\sum_{k=1}^{n^{(L)}} e^{z_k^{(L)}}} $$

  • a_i : 출력층의 i번째 노드의 활성화 값
  • n : 출력층에 노드 갯수

역전파 (Back Propagation)

다층 신경망은 손실 함수를 최소화하기 위해 역전파 알고리즘을 사용하여 가중치와 편향을 학습한다. 역전파 알고리즘의 주요 단계는 다음과 같다. 

1. 순전파 (Forward Propagation)

입력 데이터를 네트워크의 각 층을 통해 전달하여 출력 값을 계산한다. 

2. 손실 계산(Loss Calculation)

예측 값과 실제 값의 차이를 손실 함수( MSE, Cross-Entropy, ..etc)로 계산한다.

3. 역전파 (Back Propagation)

손실 함수의 기울기를 각 가중치와 편향에 대해서 계산하고, Chain Rule을 사용하여 기울기를 전달한다. 

 

Deep Neural Network의 문제점들

 

과적합(Overfitting)

모델이 학습 데이터에 지나치게 적응하여, 새로운 데이터에 대한 일반화 성능이 떨어지는 현상이다. 

 

원인

  • 복잡한 모델 구조 : DNN은 수 많은 층과 가중치 파라미터로 구성되어 있다. 이로 인해 학습 데이터의 작은 노이즈나 패턴까지도 학습할 수 있게 된다.
  • 적은 학습데이터 : 모델의 복잡성에 비해서 학습 데이터기 부족하면, 주어진 데이터를 외워버리게 된다. 
  • 데이터 노이즈 : 데이터의 노이즈가 많을 경우 DNN이 노이즈까지 학습하게 되어 과적합이 발생할 수 있다. 

 

기울기 소실 (Vanishing Gradient)

Deep Neural Network를 학습할 때, 역전파 과정에서 초기 층으로 갈수록 기울기가 점점 작아져서, 0의 수렴하여 모델이 제대로 학습되지 않는 문제이다. 

 

원인

  • 활성화 함수: 시그모이드나 하이퍼볼릭 탄젠트와 같은 비선형 활성화 함수는 입력 값이 특정 범위를 벗어나게 되면 미분 값이 매우 작아진다.
  • 깊은 신경망 구조 : 네트워크가 깊어질수록 역전파를 통해 전달되는 기울기 값이 여러 층을 거치면서 점점 더 작아지게 된다. 

모멘텀(Momentum)

  • v_i(t) : 현재 시점 t에서의 속도
  • alpha : 모멘텀 계수로, 이전 단계의 속도에 얼마만큼을 반영할지 결정하는 파라미터
  • v_i(t-1) : 이전 단계 t-1에서의 속도
  • epsilon : 학습률

모멘텀은 이전 단계의 업데이트 방향을 반영하여 현재의 업데이트 방향을 설정한다. 이 방식은 이전 단계의 방향을 고려하기 때문에, 최적화 과정에서 불필요한 진동을 줄이고 더 빠르게 수렴할 수 있도록 돕는다.

 

가중지 감소(Weight Decay)

  • C : 가중치 감소를 고려한 새로운 손실 함수
  • E : 원래의 손실 함수
  • ​(λ/2)w_i^2​ : 가중치 감소 항 ​

모델의 가중치 크기를 페널티로 주어, 모델이 너무 큰 가중치(weight)를 가지지 않도록 한다. 과적합(overfitting)을 방지하고, 일반화 성능을 개선하는 데 도움을 줍니다. 

 

정규화 계수 λ의 역할 

 

  • 값이 크면 가중치 감소의 강도가 커져서 모델이 단순해지고, 과적합이 줄어들지만, 모델의 학습 능력도 저하될 수 있다.
  • 반면, λ값이 너무 작으면 가중치 감소의 효과가 미미해져 과적합을 방지하는 데 효과가 없다.
  • 적절한 λ값은 경험적으로 찾아야 하며, 일반적으로 교차 검증(cross-validation)을 통해 결정한다.