학습의 초기화
인공신경망(ANN, Artificial Neural Networks)의 학습에서 초기화는 모델의 성능에 중요한 영향을 미친다. 초기화가 잘못되면 기울기 소실(Vanishing Gradient) 또는 기울기 폭주(Exploding Gradient)와 같은 문제가 발생할 수 있다. 이러한 문제는 신경망의 학습 속도를 늦추거나, 최악의 경우 학습을 불가능하게 만들 수 있다.
초기화 방법의 역사적 발전
초기의 신경망 모델에서는 가중치를 작은 임의의 값으로 초기화하는 방법이 주로 사용되었다. 이러한 방식은 간단하지만, 깊은 신경망에서는 기울기 소실(Vanishing Gradient)이나 폭발(Exploding Gradient) 문제를 일으킬 수 있었다. 이를 해결하기 위해 다양한 초기화 전략이 제안되었다.
초기화 방법
대표적인 초기화 방법으로는 제비에 초기화(Xavier Initialization)와 He 초기화(He Initialization)가 있다.
무작위 초기화 (Random Initialization)
초기화 방법 중 가장 기본적인 방법은 무작위 초기화이다. 여기에서는 각 가중치를 작은 무작위 값으로 설정한다. 이러한 초기화는 각 뉴런이 서로 다른 입력 패턴에 대해 학습하도록 해준다. 일반적으로 가중치는 0을 중심으로 대칭적으로 분포된 값으로 초기화된다. 대표적인 방법으로는 작은 표준 편차를 가진 정규분포(Normal Distribution)에서 값을 샘플링하는 방식이 있다.
제비에 초기화
제비에 초기화는 Glorot et al.에 의해 제안된 방법으로, 입력과 출력의 노드 수에 따라 가중치의 분산을 조절한다. 이 방법은 기울기 소실 문제를 완화하는 데 효과적이다. Xavier 초기화에서는 가중치를 $ \sqrt{\frac{1}{n}} $ (여기서 n은 이전 층의 뉴런 수)로 초기화한다. 이 방법은 주로 활성화 함수로 시그모이드(Sigmoid)나 하이퍼볼릭 탄젠트(Tanh)를 사용할 때 적합한다.
He 초기화
He 초기화는 ReLU (Rectified Linear Unit) 활성화 함수에 최적화된 초기화 방법이다. He 초기화는 가중치를 $ \sqrt{\frac{2}{n}} $로 초기화한다. 여기서 n은 이전 층의 뉴런 수이다. 이 방법은 Xavier 초기화보다 ReLU와 같은 비선형 활성화 함수에 더 적합하며, 기울기 폭주 문제를 완화하는 데 도움이 된다.
Lecun 초기화
Lecun 초기화는 Xavier 초기화와 비슷하지만, 시그모이드와 같은 특정 활성화 함수에 더 적합한다. 이 방법에서는 가중치를 $ \sqrt{\frac{1}{n}} $ (여기서 n은 입력 뉴런 수)로 초기화한다. 이는 주로 Lecun Tanh 활성화 함수와 함께 사용된다.
Orthogonal 초기화
Orthogonal 초기화는 초기 가중치 행렬이 직교 행렬(Orthogonal Matrix)을 따르도록 설정하는 방법이다. 이 방법은 딥러닝 모델의 깊이에 상관없이 안정적인 학습을 지원할 수 있다. 주로 RNN (Recurrent Neural Networks)에서 많이 사용된다. 직교 행렬을 사용함으로써 정보가 각 층을 통해 잘 전달되도록 보장할 수 있다.
Variance Scaling 초기화
Variance Scaling 초기화는 가중치의 분산을 입력 및 출력의 크기에 맞추어 조정하는 방법이다. 이 방법은 다양한 활성화 함수와 네트워크 구조에 맞게 가중치를 조정할 수 있도록 설계되었다. 기본적으로 Xavier와 He 초기화를 포함하는 일반화된 방법으로 볼 수 있다.
Bias 초기화
가중치 초기화뿐만 아니라, 바이어스 초기화도 중요하다. 바이어스는 일반적으로 0으로 초기화한다. 이는 초기 단계에서 네트워크가 과도한 편향을 가지지 않도록 하기 위함이다. 그러나 경우에 따라 비제로 값으로 초기화하는 것이 유리할 수도 있다.
초기화의 실험적 조정
신경망의 구조나 학습 문제의 특성에 따라 초기화 방법은 실험적으로 조정될 필요가 있다. 특정 초기화 방법이 항상 최적의 결과를 보장하지는 않기 때문에, 학습 데이터를 기반으로 한 실험적 접근이 필요하다. 이를 통해 가장 적합한 초기화 방법을 찾을 수 있다.
관련 자료:
Glorot, X., & Bengio, Y. (2010). Understanding the difficulty of training deep feedforward neural networks. In Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics (pp. 249-256).
He, K., Zhang, X., Ren, S., & Sun, J. (2015). Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. In Proceedings of the IEEE international conference on computer vision (pp. 1026-1034).
Lecun, Y., Bottou, L., Orr, G. B., & Muller, K. R. (1998). Efficient backprop. In Neural networks: Tricks of the trade (pp. 9-50). Springer, Berlin, Heidelberg.
Last updated