신경망을 훈련시킨다는 것은 고차원의 손실 함수에서 파라미터를 업데이트해가며 전역 최저점을 찾아가는 과정입니다.
신경망의 훈련은 신경망의 구조, 최적화 방법, 그리고, 가중치 초기화 등 다양한 변수의 영향을 받습니다. 즉, 네트워크를 어떻게 설정하느냐에 따라 신경망의 훈련은 쉬울수도, 어려울 수도 있습니다. ( 또한, 해당 모델에서 학습하고자 하는 목표에 대한 정의 및 어떤 loss fuction을 사용할지, 그리고 어떻게 사용할지도 고민을 같이 진행해야 합니다.)
배경 지식
- Loss Surface를 알기 위해서 공부해야 되는 개념은 Loss function이다. (Cost function이라고도 일컫어진다.)
- Loss function은 모델이 내놓은 예측값과 실제 정답이 얼마나 다른지를 나타내는 지표로서 정의된다. (모델 학습의 목표는 loss값을 최소화하는 W,B를 찾는 것이다)
- Loss function은 대표적으로 MSE(Mean Squared Error)와 CEE(Cross Entropy Error)가 자주 사용되며, 그 외 다양한 loss function이 존재한다.


Loss Surface란
- 딥러닝에서 모델은 Loss function의 내놓은 값(Loss)을 줄이는 방향으로 학습이 진행된다.
- 이 과정에서 parameter가 변함에 따라서 loss값이 변하게 되는데, parameter 개수가 2개이하가 아닌이상 사람이 알아볼 수 있는 형태로 loss 그래프를 그리기가 어렵다.
- 아래 예시는 parameter가 2개일때 loss값(z축)이 어떻게 변하는지를 나타낸 그림이고 loss값들로 이루어진 surface를 loss surface라고 한다.

Loss Surface 만드는 법
Loss Surface를 시각화하는 방법은 두개의 가우시안 분포를 따르는 랜덤 방향 벡터를 만드는 것입니다. (0,0) 의 중앙 지점은 이미 훈련된 파라미터에서의 Loss 값으로 최저점을 의미한다고 볼 수 있습니다. 두개의 방향 벡터를 만든 뒤, 각 방향벡터에 -1 부터 1까지의 상수를 곱하고, 기존 네트워크의 학습된 파라미터와 더하여 Loss Surface 를 시각화 합니다.

'딥러닝 (Deep Learning) > 딥러닝 기초' 카테고리의 다른 글
Gradient Descent란? (2) | 2022.10.07 |
---|