티스토리 뷰

ML DL

[지시딥] SGD와 BGD 그리고 학습

무엇보다_빛나는_샤트 2022. 2. 16. 23:40

안녕하세요

프로그래밍을 배우는 빛나는 샤트입니다.

 

경사 하강법을 배우다 보면 나오는 SGD!

기울기를 따라 손실함수의 값이 최소가 되는 곳을 찾는 과정인데

과연 SGD가 무엇인지 그리고 BGD는 무엇인지 알아봅시다.

 

<용어 정리>

여기서는 배치 크기 = 전체 데이터셋 크기

미니배치 = 학습을 진행할 때 전체 데이터셋을 얼마나 나눠서 진행할 것인지 단위(변수명은 batch_size)

 

아래 내용은 해당 출처에 나온 내용을 재구성했습니다. - www.kakaobrain.com/blog/113

 

⭐SGD(stochastic gradient descent) & BGD(batch gradient descent)

 

 - 미니배치 크기에 따른 학습 시간

미니배치 크기가 커질수록 학습 시간 줄어든다.

 - 미니배치 크기에 따른 최적화 탐색 경로

 1) SGD: 데이터 셋 크기가 N, 미니배치 크기가 1

 최적화 함수는 하나의 학습 데이터마다 오차를 계산하며 모델의 가중치를 1 에폭당 N번 갱신

-> 학습이 꼼꼼하게 이뤄짐

-> 시간이 오래 걸림

-> 전체 훈련 데이터의 분포에서 비정상적으로 떨어진 특이값에 따라 가중치 업데이트에 큰 편차가 발생

    (특이값에 의해 구해지는 기울기가 실제 최적화 탐색 경로를 크게 벗어나기 때문)

 

 2) BGD: 데이터 셋 크기가 N, 미니배치 크기가 N

최적화 함수는 N개의 데이터를 상대로 오차를 계산하며 모델 가중치를 1 에폭당 1번 갱신

-> 주어진 모든 훈련 데이터의 평균 특성을 파악함으로써 한번의 훈련만으로 최적의 가중치 조합을 제대로 찾아감.

에폭을 기준으로 했을 때, 배치가 클수록 기울기 방향이 더 안정적으로 작은 손실을 내는 가중치 조합을 찾아감을 확인해볼 수 있다.

 

  미니배치 크기 가중치 갱신 per 1epoch 최적화 탐색 경로 비고
SGD 1 N(데이터 셋 크기) 불안정 특이값에 의해 가중치
업데이트 큰 편차 발생
BGD N(데이터 셋 크기) 1 안정 한 번의 훈련만으로
최적의 가중치 업데이트

> 결론1: 미니배치가 큰 편이 학습 시간이 빠르고 최적화 탐색 경로 안정적

 

❓그렇다면 BGD로 다 하면 되는 것 아닐까?

문제1: 미니배치 크기가 크게 되면 모델 최적화(Optimization)와 일반화(generalization) 어렵다.

 

이유는??

최소값임을 보장할 수 없는 극소값 또는 안장점 근처에서 학습이 진행된다고 가정해보자. 배치 크기가 큰 상황에서는 이 구간을 빠져나오기가 어렵다. 반면, 배치 크기가 작을 때는 이 구간에서 빠져나오기가 훨씬 수월하다.

다시 한번 ❓ 최적화란?

>  손실 함수 그래프에서 오차를 최소화하는 가중치 탐색

 

❗왜 미니배치 크기가 크면 최소값을 찾기 어려울까?

> 비유: 위 그래프를 흘기듯이 스윽 보고 대충 판단하면 '뭐 대충 이정도 기울기면 최소겠네. 결정 땅땅땅' 이렇게 되어 버립니다.

>> 반대의 경우는 데이터 하나하나 살펴보기 때문에 '아 여기가 제일 작은 값이려나...? 좀 더 볼까? 아 역시 더 작은 값이 있었어!' 이렇게 생각하면 될 것입니다. 좀 더 설명을 하면 특이값 데이터로 인해 실제와는 다른 방향의 기울기가 구해지면 가중치 값이 급격하게 변할 가능성이 커지기 때문입니다. (위에서는 특이값때문에 최적화 탐색 경로가 불안정해서 안 좋아보였는데 최적화 측면에선 좋았네요)

 

❗결론❗

  미니배치 크기 가중치 갱신 per 1epoch 최적화 탐색 경로 비고 최적화
SGD 1 N(데이터 셋 크기) 불안정 특이값에 의해 가중치
업데이트 큰 편차 발생
극소값에
갇힐 수 있음
BGD N(데이터 셋 크기) 1 안정 한 번의 훈련만으로
최적의 가중치 업데이트
최소값을
잘 찾음

> 결론2: 학습 시간과 최적화 탐색은 BGD가 우수하나 최적화 측면에서는 좋지 못하다. SGD의 경우 최적화 측면에서는 우수하지만 다른 측면에서는 좋지 못하다.

즉, 미니배치 사이즈를 적절히 설정하는 것(SGD와 BGD 사이)이 매우 중요

 

 

LIST
댓글