본문 바로가기
ML&DL

신경망이 깊어질수록 생기는 문제점과 해결책 개념 정리 - 딥러닝

by Back2Baek 2024. 2. 15.

 

신경망은 단순히 보자면 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)로 나뉜다.

Artificial Neural Networks and its Applications - GeeksforGeeks

 

하지만 딥러닝의 역사가 깊어짐에 따라, 신경망도 깊어지고 복잡해지게 되었습니다.

그로인해 학습의 난이도도 올라가게 되었습니다.

 

※ 의문점 

단순히 생각한다면, 계산을 하는 주체들인 노드와, 그 집합인 레이어가 늘어난다면 더 복잡한 계산이 가능해지지 않나?

-> 추가로 복잡한 요구를 충족시킬 정도의 신경망을 구할 수 있는거 아닌가?

-> 계산량이 문제라면, 요즘 GPU와 같은 컴퓨팅 자원의 가격과 성능면에서 우수하니 많은 투입하면 되지 않나?

-> 따라서, 단순히 깊게 쌓을 수록 좋은거 아닌가?

 

하지만 신경망은 그리 단순하게 쌓기만 한다고 높은 성능을 보장하지 않습니다.

 

신경망이 깊어질수록 생기는 문제점을 살펴보고, 이를 위한 해결책을 살펴보겠습니다.

 

▶ 신경망이 깊어질수록 생기는 문제들, 그리고 해결책

신경망이 깊어질수록 생기는 문제 중 Overfitting, Vanishing Gradient, Loss landscape에 대해 다뤄보겠습니다.

그리고 해당 문제점들에 대한 해결책 중 몇 가지도 같이 다루도록 하겠습니다.

 

문제점 1. Overfitting

과적합 - MATLAB & Simulink (mathworks.com)

 

Overfitting은 마치 주입식 암기 학습과 유사합니다.

 

신경망을 통한 학습의 주목적은,

기존 입력 데이터와 결과 데이터의 패턴을 학습하여, 새롭게 입력 데이터만이 주어졌을 때 결과를 예측하는 것입니다.

즉, 데이터의 인과관계를 파악하는 것이 학습의 목적입니다.

 

하지만, 어떠한 원인에서든지 Overfitting이 일어났다는 것은 

데이터의 인과관계나 패턴을 파악하는 것이 아닌,

특정 입력에는 특정 결과 값일 것이다라는 식으로 학습이 이뤄졌다는 것입니다.

 

이 경우, 새로운 데이터가 주어지고 예측을 하게되면 편향적인 결과가 나오게 됩니다.

 

이를 위한 주요 해결책은 다음과 같습니다.

  • 해결책 1. 데이터 확보
    • 데이터의 복잡도에 따라, 해당 데이터의 패턴을 파악할 만큼의 데이터 수가 부족할 경우 Overfitting이 일어날 수 있습니다.
    • 따라서, 절대적인 학습 데이터의 확보가 중요합니다.
  • 해결책 2. Data augmentation
    • 여러 도메인에서 다량의 데이터 확보 자체가 어려운 경우가 많습니다.
    • 따라서, 존재하는 데이터를 증강하는 것도 하나의 해결책이 될 수 있습니다.
    • 이미지 데이터를 예로 들자면, 소량의 데이터를 회전, 확대, 노이즈 추가, 색 변경 등과 같은 여러 기법을 통해
    • 한 장이었던 이미지 데이터를 여러 장으로 늘리는 방법이 있겠습니다.
    • 이를 통해, 임의로 학습 데이터를 확보할 수 있겠습니다.
  • 해결책 3. Dropout

 

 

문제점 2. Vanishing Gradient

 

순전파를 통해 구한 예측값과 실제값의 오차를 계산하고,

역전파를 통해 오차를 줄이는 방향으로 가중치를 업데이트 해야한다.

 

역전파 과정 중 각 노드의 가중치와 편향을 업데이트 하기 위해 경사하강법을 이용한다.

미분을 통해 기울기를 구하고 기울기가 줄어드는 방향으로 파라미터들을 업데이트한다.

 

그리고 이 과정이 연쇄적으로, 층을 거치며 이뤄지기 때문에 Vanishing Gradient 문제가 발생한다.

 

신경망에는 비선형성을 위해 활성화 함수를 사용하게 되는데, 주로 사용되던 함수는 sigmoid와 tanh이다.

이 함수를 미분하는 과정에서 층을 거듭하며 연쇄법칙을 적용할수록 기울기 정보가 0으로 소실된다.

https://en.wikipedia.org/wiki/File:Logistic-curve.svg   https://upload.wikimedia.org/wikipedia/commons/8/87/Hyperbolic_Tangent.svg

 

 

The Problem of Vanishing Gradients

 

  • 해결책. 활성화 함수 변경
    Rectifier (neural networks) - Wikipedia
    • 단순히, 원인이 되는 활성화 함수를 제거할 경우, 신경망의 장점인 비선형성을 확보하지 못한다.
    • 따라서, 연쇄 법칙 시 기울기가 소실되지 않을 수 있는 활성화 함수(ReLU 계열 등)으로 변경한다.

 

 

문제점 3. Chaotic Loss landscape

Visualizing the Loss Landscape of Neural Nets (umd.edu)

 

위 그림을 오차 함수를 3차원으로 표현한 그래프이다. 이를 Loss landscape이라 부른다.

신경망이 깊어질수록 왼쪽과 같이 Loss landscape이 복잡해지게 된다.

 

복잡한 형태의 Loss landscape에서 경사하강법을 실시했을 때,

전역 최소값이 아닌 지역 최소값에 빠지고, underfitting이 일어날수 있다는 문제점이 생긴다.

  • 해결책. skip-connection
    • Resnet에서 제안된 방법이며, resnet이 꾸준히 사랑받는 이유이다.
    • 위의 오른쪽 그래프는 resnet의 Loss landscape이다. 훨씬 단순하다는 것을 알 수 있다.
    • 신경망 상에서 활성화 함수를 거치며 정보의 압축과 같은 과정을 거치며 정보가 손실될 수 있다.
    • 따라서, 중간 중간 skip-connection, 데이터를 다음 레이어가 아닌 그 다음 레이어에 직접 전달하며
    • 정보의 압축, 정보의 손실을 피하고 직접 전달하여 이를 방지한다.