- 카카오 면접 질문
- loss space? (가중치와 데이터에 따라 생성되는 loss 공간)에서 1, 2, 3 중 어떤 지점이 이상적일까
- 좋은 대답: 2
- loss가 가장 낮은 지점은 3번이지만 테스트 데이터처럼 학습 데이터와 다소 다른 데이터가 입력된다면 x축에서 이동이 일어나며 급격하게 loss가 상승하는 -> 테스트 성능이 나쁠 수 있다 (일반화 성능 저하).
- 그러므로 loss가 낮으면서도 경사가 좀 완만한 로컬 미니마에 도달하는 것이 안정적이다.
- 여담
- 수학적으로는 1번이 가장 좋은 지점이라고 하나 실제로 수학적 해석은 크게 의미없는 경우가 많다.
- 글로벌 미니마를 찾기는 거의 불가능하다.
- 꼭 2번이 아니더라도 다른 답에 대해서도 자기 의견을 잘 전개하도록 하자.
- 그렇다면 2번같은 완만한 경사의 로컬 미니마에 도달하려면 어떤 하이퍼파라미터를 조정해야하는가?
- batch size & 학습률
- batch size가 작을수록 데이터에 포함된 노이즈가 큰 비중을 차지하므로 날카롭게 파인 로컬미니마를 탈출하기도 한다. (loss가 탁 튀면서 탈출하고 다른 미니마를 향하는 경우)
- batch size가 클수록 노이즈가 희석되고 안정적인 스텝을 밟게된다.
- 학습률을 크게 하여 큰 스텝을 밟을수록 날카롭고 좁은 형태의 미니마를 건너뛴다.
- batch size는 작을수록 좋은가?
- 2, 4, ...: 너무 작다. batchnorm이 제 역할을 못한다. batch의 평균과 표준편차가 무의미
- 32, 64, ...: 가장 성능이 좋다
- 여담: 고전적인 통계에서 데이터를 정규분포로 변환할때 충분히 많은 수의 데이터가 필요하다고 하며 그 수는 30 또는 50 개 이상
- 1024, 2048, ...: 가장 학습이 빠르다.