이번 포스팅에서는 딥러닝의 역사에서 왜 암흑기가 생겼는지 알아보도록 하겠습니다. 이전 포스팅에 MLP의 한계로 학습을 시킬 수 없다는 점 때문에 1차 암흑기로 들어갔다고 이야기 했습니다. 그 후 역전파를 통해 신경망을 학습시킬 수 있다는 희망을 가지게 됩니다. 그런데 다시 2차 암흑기가 시작됩니다. 그 이유를 이번 글에서 다루도록 하겠습니다.
2차 암흑기는 왜 생겼나?
층이 깊어질 수록 기울기 소실(Vanishing Gradient) 문제로 인하여 딥러닝의 학습의 한계가 보이기 시작합니다. 그리고 학습 데이터에만 최적화되어버리는 Overfitting 문제가 발생합니다. 새로운 다른 데이터가 들어왔을 때 높은 정확도를 보장 못하게 되죠. 그 밖에도 Label 된 데이터의 부족도 한몫했습니다. 딥러닝 특성상 Data Sample이 많을수록 정확도가 높아집니다. 이는 Bigdata 시대 도래로 점차 해결되어집니다. 그래서 한동안 머신러닝이 더 주목을 받습니다. SVM의 경우 MINST에서 딥러닝보다 좋은 성능 결과를 냈습니다. 또 Random Forest 등 Tree 모델 같은 머신러닝 알고리즘의 성능이 더 우수했죠.
Vanishing Gradient
기울기 소실 문제는 사실 Layer가 2~3 정도의 신경망에서는 학습하는데 문제가 없습니다. 하지만 더 deep해지면서 역적파(back propagation)로 에러를 뒤로 전파가 되지 않는 현상이 발생합니다. 경사하강법으로 가중치 업데이트 시켜줘야 하는데 활성함수 때문에 에러값이 현저히 작아져 학습이 제대로 안 되는 현상입니다. 예를 들어, 시그모이드 최대 미분값은 0.25이고 이것이 3번만 반복해도 0.015로 값이 작아집니다. (0.25 x 0.25 x 0.25 = 0.015)
2차 암흑기 탈출
활성함수 변경
역전파 과정에서 실제 값과 모델의 예측값 사이의 오차를 거꾸로 한 단계씩 미분 함으로써 값을 구합니다. 이유는 활성함수 Sigmoid는 0~1이므로 미분값이 최대 0.25이다 보니 계속 곱해질 경우 0에 근사값으로 업데이트 되게 됩니다. 그래서 활성함수를 ReLU로 변경 0이 아닌 값은 미분값이 증가하기 때문에 마지막 Layer까지 값이 전달됩니다.
Overfitting 극복
과대적합을 극복하기 위해서 다양한 방법을 통해 2차 암흑기를 탈출해 발전하게 됩니다.
- 드롭아웃(DropOut), 배치정규화 : 모델을 일반화하는 방식으로 과대적합을 극복
- 가중치 초기값 : 가중치를 random하게 하다가 Xavier(샤비에) 방법을 사용하여 성능을 향상 시킴
- 깊은 층 : 깊게 신경망을 구축한다고 해서 Neural network에서 Deep Learning으로 명칭 변경됨
마무리
딥러닝은 1,2차 암흑기를 거치면서 실현 불가능한 방법으로 생각되 연구 발전이 더뎠습니다. 하지만 위에서 언급한 것들을 하나하나 해결해 가면서 개선해 나갔죠. 지금은 인공지능 분야는 가장 핫한 연구분야가 됐습니다. ChatGPT가 그 결과물입니다. 모두 앞다퉈 이 분야에 뛰어들고 있습니다. 저 또한 딥러닝 분야에 가능성은 무한하다고 생각합니다.
2023.12.29 - [딥러닝] - 딥러닝(Deep Learning)의 역사: 왜 주목 받고 있나?
'딥러닝' 카테고리의 다른 글
텐서(Tensor)의 개념: 텐서플로우 vs 파이토치 vs 케라스 (1) | 2024.01.09 |
---|---|
RNN(순환 신경망)의 역사: LSTM, seq-to-seq, 트랜스포머 (0) | 2024.01.08 |
CNN(합성곱 신경망)의 역사: 왜 CNN인가? (2) | 2024.01.04 |
퍼셉트론과 역전파(Back propagation) (0) | 2024.01.02 |
딥러닝(Deep Learning)의 역사: 왜 주목 받고 있나? (1) | 2023.12.29 |