데이터 스터디/DL

05. 경사 하강법

케이와이엠 2022. 7. 16. 16:21

이제 결론적으로 우리가 앞에서 살펴봤던 loss function을 최소화해줘야한다.

이를 위해서는 우리는 가중치에 대해서 미분하는 과정을 거치게 된다.

 

경사 하강법

그래서 미분한 함수가 최소가 되는 지점, 다시 말해서 접선의 기울기가 0에 가까워지는 지점을 단계적으로 차근차근 밟아가는 경사하강법을 거친다.

 

이때 배치 크기에 따라서 경사하강법 방법도 달라지는데, 배치라는 건 매개변수 값을 조정하기 위해서 사용하는 데이터의 양을 말한다.

그래서 전체 데이터를 갖고 매개변수의 값 조정할지/  아니면 정해준 일정한 양을 가지고 조정할지에 따라서 경사하강법의 방법은 달라진다. 아는사람은 이미 알겠지만 전체 데이터 쓰는 건 batch 경사 하강법, 사용자가 지정해주면 minibatch 하강법이다. 

 

1. 배치 경사 하강법 (Batch Gradient Descent)

그래서 먼저 배치 경사 하강법은, 전체 데이터셋이 n개라면 데이터셋 전체를 하나의 배치로 묶어서 학습시키는 방법이다.

그래서 한 스텝에 전체 데이터를 이용하기 때문에 1 epoch 매개변수 업데이트가 수행되게 된.

따라서 업데이트 횟수가 적고, 전체 데이터를 모두 한번에 처리하기 때문에 학습시간이 오래 걸리고 메모리가 많이 필요하다.

그리고 항상 모든 데이터를 대상으로 경사를 구하기 때문에 기울기가 안정적으로 수렴하는데,

이때 안정적으로 움직이다보니까 로컬 미니멈에 만약에 빠지게 되면, 쉽게 빠져나오질 못한다.

Local Minimun에 빠질 위험이 크다.

 

 

2. 확률적 경사 하강법 (Stochastic Gradient Descent)

확률적 경사 하강법은 전체 데이터 중 무작위로 단 하나의 데이터를 샘플링해서 경사 하강법을 1회 진행(배치 크기가 1)하는 방법이다. 전체 데이터가 아닌, 랜덤으로 선택한 1개의 데이터에 대해서만 계산해서 매개변수를 업데이트하게 된다.

따라서 더 적은 데이터를 사용하기 때문에 수행시간이 더 빠르다.

다만, 개별 데이터에 대해 미분을 수행하기 때문에 기울기의 방향이 매번 크게 바껴서 최적화 갱신 경로가 매우 비효율적이라는 단점은 있지만, 보편적으로 좋은 값을 내는 방향으로 수렴하긴 한다.

 

 

3. 미니 배치 경사 하강법 (Mini-batch Gradient Descent)

앞선 배치 경사하강법과 확률적 경사하강법의 절충안으로 미니배치경사하강법이 등장한다.

배치크기를 사전에 사용자가 지정해서 전체 데이터를 batch_size씩 나눠서 학습시키는 것을 말한다.

그래서 배치 경사 하강법보다는 빠르고 확률적 경사 하강법보다는 안정적이게 된다. 

 

'데이터 스터디 > DL' 카테고리의 다른 글

자연어처리 입문  (0) 2022.07.16
06. 옵티마이저 (optimizer)  (0) 2022.07.16
04. 신경망 학습 - loss function  (0) 2022.07.16
03. 신경망 추론 - 활성화 함수, 출력층 함수  (0) 2022.07.16
02. 인공신경망  (0) 2022.07.16