Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

경사 하강법 본문

KHUDA 4th/머신러닝 기초 세션

경사 하강법

시데브 2023. 8. 13. 20:23
손실 함수와 경사 하강법 사이의 관계를 이해하고,
배치 경사 하강법과 확률적 경사 하강법에 대해 알아보자. 

 

 

손실 함수와 경사 하강법

손실 함수

  • 손실 함수(Loss Function): 지도학습 시에 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수이다.
  • '학습 중에 알고리즘의 예측이 실패하는 정도'를 나타내는 함수로, 알고리즘의 최적화(Optimization)에 목적을 둔다.

 알고리즘의 학습을 수식으로 나타내면 다음과 같다.

 

출처: https://heytech.tistory.com/361

 

  • $L$: 손실 함수
  • $argmin$: 목적 함수를 최소화하는 입력값을 찾는 역할, arguments of minimum
  • $x$: 학습 데이터의 입력값, x로 얻어낸 예측값은 정답과 비교됨
  • $y$: 학습 데이터의 정답

-> loss를 최소화하는 최적의 파라미터를 찾는 것(최적화)이 알고리즘 학습의 목적이다.

 

손실 함수의 개형

  • 예측값과 실제값의 차이를 제곱한 제곱오차(SE)를 통해 손실함수의 개형을 알아보자.
  • 가중치($w$)가 1개인 예측값 $y'$ 기준.

$SE = (y - y')^2$

$y' = wx + b$

$SE = (y-(wx + b))^2$

 

-> loss function은 가중치 w에 따라 변하는 loss의 값을 구하는 함수이므로, w의 기준으로 손실 함수의 개형을 나타내면 다음과 같다.

출처: https://gooopy.tistory.com/66

 

경사 하강법

  • 경사 하강법: 임의의 가중치를 설정하여 그 지점에서의 기울기를 구해, 그 기울기를 바탕으로 손실 함수가 최소가 되는 최적해를 찾는 방법이다.

 

 위에서 나타냈던 손실 함수의 최적해를 찾아가는 과정은 다음과 같이 표현할 수 있다.

출처: https://gooopy.tistory.com/66

 

 수식으로 표현하면 다음과 같다.

 

w[i+1] = w[i] - α(d/dw)SE

 

  • α: 학습률
  • w: 가중치

 -> 해당 과정을 기울기가 0이 될 때까지 반복해주면 최적의 w값을 찾을 수 있다.

 

 

Epoch, Iteration, Batch size

Batch Size

  • Batch size: 모델을 학습할 때, parameter 업데이트 한 번에 사용할 데이터의 개수
  • 많은 양의 데이터를 한 번에 학습에 이용하면, 컴퓨터에 부담이 될 수 있기 때문에 Batch를 나눠서 학습한다.

 

Iteration

  • Iteration: 전체 데이터에 대해 총 Batch의 수를 의미하며, batch의 수만큼 학습을 진행하므로 반복횟수이다.

 

Epoch

  • Epoch: 전체 데이터셋을 학습한 횟수

 

batch size, iteration, epoch

 

 

배치 경사 하강법, 확률적 경사 하강법

배치 경사 하강법(Batch Gradient Descent, BGD)

  • 배치 경사 하강법: batch size를 데이터셋 전체로 잡아 진행하는 경사하강법
  • 많은 데이터를 대상으로 하므로, 안정적으로 수렴한다.
  • 안정적으로 수렴하기 때문에, local minimum(가장 가까운 극솟값)에 빠졌을 때 빠져나오기 어렵다.
  • 데이터셋 전체를 대상으로 batch size를 잡았으므로 파라미터를 한 번 구할 때마다 계산해야 할 값이 지나치게 많아져서, 계산 시간이 길어지고(학습 속도가 느려지고) 소모되는 메모리가 많다. 

 

확률적 경사 하강법(Stochastic Gradient Descent, SGD)

  • 확률적 경사 하강법: 학습 데이터셋에서 무작위로 하나의 샘플 데이터를 선정해, 그 샘플에 대해 기울기를 계산하는 방식의 경사하강법
  • 한 번에 하나의 샘플만을 대상으로 진행하기 때문에, 학습 속도가 매우 빠르며 메모리 소모량이 매우 낮다.
  • 무작위로 선정한 샘플로 경사를 구하기 때문에, batch size 하강법보다 불안정하게 수렴한다.
  • 랜덤하게 움직이기 때문에, 전역 최솟값에 완벽하게 도달하지 못할 수 있다.

 

미니 배치 확률적 경사 하강법(Mini-Batch Stochastic Gradient Descent, MSGD)

  • 미니 배치 확률적 경사 하강법: BGD와 SGD의 방식을 적절히 섞은 경사 하강법으로, 전체 데이터셋을 batch_size만큼 나눠 학습한다. 

 

출처: https://kimziont.github.io/dl_theory/batch_gradient_descent/

 

 


참고자료

 

[Deep Learning] 손실함수(Loss Function) 개념

💡 목표 손실 함수의 개념과 알고리즘 학습의 수학적 의미에 대해 알아봅니다. 1. 손실 함수의 개념 손실 함수(Loss Function)는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차

heytech.tistory.com

 

경사감소법(경사하강법)이란?

오늘은 경사감소법(경사하강법)에 대해서 정리하려고 한다. 경사감소법은 많은 머신러닝 및 딥러닝 알고리즘을 훈련시킬 때 사용되는 방법이다. 가장 간단한 선형회귀를 예를 들어 경사감소법

bskyvision.com

 

배치와 미니 배치, 확률적 경사하강법 (Batch, Mini-Batch and SGD)

이번 글에서는 batch와 mini-batch, 확률적 경사 하강법을 알아보자. 배치의 정의와 GPU (Batch) 현대 머신러닝의 비약적인 발전 배경에서 GPU는 빼놓을 수 없는 요소이다. CPU 대신 GPU(Graphic Processing Unit)

skyil.tistory.com