일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리챌린지
- Classification
- 지도학습
- ChatGPT
- LG
- supervised learning
- 분류
- LG Aimers 4th
- regression
- 해커톤
- PCA
- LLM
- gpt
- LG Aimers
- AI
- 딥러닝
- 회귀
- Machine Learning
- GPT-4
- OpenAI
- deep learning
- 머신러닝
- 오블완
Archives
- Today
- Total
SYDev
경사 하강법 본문
손실 함수와 경사 하강법 사이의 관계를 이해하고,
배치 경사 하강법과 확률적 경사 하강법에 대해 알아보자.
손실 함수와 경사 하강법
손실 함수
- 손실 함수(Loss Function): 지도학습 시에 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수이다.
- '학습 중에 알고리즘의 예측이 실패하는 정도'를 나타내는 함수로, 알고리즘의 최적화(Optimization)에 목적을 둔다.
알고리즘의 학습을 수식으로 나타내면 다음과 같다.
- $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의 기준으로 손실 함수의 개형을 나타내면 다음과 같다.
경사 하강법
- 경사 하강법: 임의의 가중치를 설정하여 그 지점에서의 기울기를 구해, 그 기울기를 바탕으로 손실 함수가 최소가 되는 최적해를 찾는 방법이다.
위에서 나타냈던 손실 함수의 최적해를 찾아가는 과정은 다음과 같이 표현할 수 있다.
수식으로 표현하면 다음과 같다.
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 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만큼 나눠 학습한다.
참고자료
'KHUDA 4th > 머신러닝 기초 세션' 카테고리의 다른 글
[KHUDA 4th] 머신러닝 3주차 기초 세션 (08.16) (1) | 2023.08.19 |
---|---|
Chapter 04-2: 확률적 경사 하강법 (0) | 2023.08.14 |
Chapter 04-1: 로지스틱 회귀 (0) | 2023.08.13 |
[KHUDA 4th] 머신러닝 2주차 기초 세션 (08.10) (1) | 2023.08.10 |
정규화 모델(릿지,라쏘 모델) (0) | 2023.08.09 |