Stats & AI tech blog - '일단 시도함'
[ML/DL] DNN, Deep Neural Network (심층신경망) (2) - 차원의 저주 (Curse of dimensionality) 본문
[ML/DL] DNN, Deep Neural Network (심층신경망) (2) - 차원의 저주 (Curse of dimensionality)
justdoit ok? 2024. 4. 2. 16:54
이전 포스팅에서는 DNN의 초기 문제점 중 하나인 기울기 소실 (Vanishing Gradient)에 대해 알아보았다.
이번 포스팅에서는 두 번째 문제점으로 차원의 저주(Curse of dimensionality)에 대해 알아보도록 하겠다.
1. 차원의 저주 (Curse of dimentionality)
차원의 저주란 데이터의 차원(dimensionality)이 높아지면서 알고리즘 실행이 매우 까다로워지는 것을 뜻한다.
데이터를 학습할 때 샘플 수가 많아질수록 학습이 잘 되는 반면에, 차원(=변수의 개수)은 높아질수록 학습이 어려워지고 더 많은 샘플 수를 필요로 하게 된다.
위 그림에서 오른쪽으로 갈수록 차원이 높아지는데, 차원이 커질수록 설명공간이 지수적으로 늘어나는 것을 확인할 수 있다. 샘플 수가 동일하다면 설명 공간이 늘어남에 따라 데이터 간 거리는 멀어지게 되고, 설명할 수 없는 빈 공간이 증가하게 된다.
차원이 커질수록 학습에 필요한 데이터 수는 많아져야 하고, 더 많은 양의 데이터를 사용할수록 알고리즘 계산이 복잡해지게 된다. 결과적으로 차원이 커질수록 성능이 저하되는 현상이 발생하고 이러한 현상을 차원의 저주라고 한다.
차원의 저주는 KNN 분류 알고리즘 같이 거리 기반 알고리즘을 사용할 때 흔하게 발생되고, 이런 경우는 주로 PCA나 LDA와 같은 차원 축소 기법을 통해 문제를 해결한다. 이 부분은 추후 따로 포스팅하기로 하고 오늘은 DNN 구조에서 발생하는 차원의 저주를 해결하기 위한 몇 가지 방법에 대해 알아보자.
2. DNN에서의 해결방법
DNN은 여러 개의 은닉층을 가지고 있는 다층 퍼셉트론(MLP)구조라고 했다.
DNN의 깊어진 Layer에서 수많은 weight들의 최적화하기 위해 순전파(feedforward)와 역전파(backpropagation)을 반복해야 하기 때문에 계산량이 크게 증가해서 차원의 저주 문제가 발생하게 된다.
반복 횟수를 줄이기 위해 최적해를 경사하강법(Gradient Descent)보다 빠르게 찾을 수 있는 옵티마이저가 필요했고,
SGD, Momentum 등 여러 알고리즘이 제시되었다.
- Stochastic Gradient Descent (SGD)
최적해를 구하는 과정에서 손실함수(Loss function)를 계산할 때, 전체 train-set을 사용하는 것을 Batch Gradient Descent, BGD라고 한다. BGD방법은 전체 데이터를 사용하기 때문에 많은 계산량을 필요로 하게 된다.
그래서 제시된 개념이 mini-batch인데, 전체 데이터 대신 train-set을 작은 단위로 나눈 mini-batch에 대해 error를 계산하고 weight를 조정하는 방식이다. mini-batch를 선택하는 과정이 무작위로 진행되기 때문에 이 방법을 Stochastic Gradient Descent, SGD방법이라고 부른다.
* 장점 : BGD(Batch Gradient Descent)보다 계산속도가 상대적으로 빠름
* 단점 : 고정된 학습률(learning rate)로 인해 학습 속도가 여전히 느리고, 전역 최소값에 도달하지 못함 - Momentum
이동하는 과정에 일종의 관성을 주는 것 처럼 이전의 gradient를 고려해서 학습 방향을 잡아가도록 설정된 알고리즘이다. 다만, 자칫 최적화 지점을 지나칠 수 있기 때문에, 학습률(learning rate)을 조정할 필요가 있다.
* 장점 : SGD에 비해 상대적으로 빠르고 지역 국소값에서 빠져나올 수 있음
* 단점 : 과거에 대한 정보를 저장해야하므로 기존보다 많은 메모리가 필요함 - Adaptive Gradient (AdaGrad)
이전에 조정이 크게 된 weight는 이미 최적화 지점(optimum)에 가깝게 있을 확률이 높기 때문에 학습률(learning rate)를 작게 해서 step size를 줄이자는 개념이다. 반대로, 이전에 조정이 적게된 weight에는 높은 학습률을 부여한다.
* 장점 : feature의 특성을 고려해서 효율적으로 학습률을 적용함
* 단점 : 학습을 계속 진행하면 step size가 너무 줄어들어 학습이 진행되지 않음 - Adaptive Momentum Estimation (Adam)
Momentum 알고리즘과 AdaGrad 알고리즘의 장점을 결합한 방법이다.
즉, 학습의 방향과 학습률을 모두 개선한 기법으로 딥러닝 옵티마이저로 가장 많이 사용되어 왔지만, 최근에는 Adam의 한계점을 보완한 RAdam, AdamW와 같은 더 우수한 성능을 보이는 옵티마이저가 제안되었다.
* 장점 : 학습 방향과 learning rate 모두 고려한 기법
* 단점 : 학습 초기에 bad local optima에 수렴할 수 있다는 한계점 존재
지금까지, DNN 등장 초기의 두 번째 문제점인 차원의 저주의 개념과 해결 방법에 대해 알아보았다.
다음 포스팅에서는 마지막 문제점인 과적합(overfitting)에 대해 알아보겠다.
'Statistics & AI > Deep Learning' 카테고리의 다른 글
[ML/DL] 딥러닝 최신 연구 동향 및 모델 참고 사이트 (0) | 2024.04.15 |
---|---|
[ML/DL] CNN, Convolutional Neural Network (컨볼루션 신경망) (0) | 2024.04.05 |
[ML/DL] DNN, Deep Neural Network (심층신경망) (3) - 과적합 (overfitting) (0) | 2024.04.03 |
[ML/DL] DNN, Deep Neural Network (심층신경망) (1) - 기울기 소실 (Vanishing gradient) (0) | 2024.04.02 |
[ML/DL] MLP, Multi-Layer Perceptron (다층 퍼셉트론) (0) | 2024.04.01 |