상세 컨텐츠

본문 제목

인공지능과 선형회귀

카테고리 없음

by HAKIIM 2025. 11. 11. 14:36

본문

경사 하강법 (Gradient Descent)

그래디언트는 함숫값이 가장 가파르게 증가하는 방향을 가리킨다.

따라서 현재 위치에서 그래디언트를 구한 후, 그 반대 방향으로 이동하면 Loss를 줄일 수 있다.

 

두 가지 문제

1. 계산 속도가 느리다.

Loss 함수가 모든 데이터를 고려하고 있다.

최소점에 수렴하기까지 매우 오랜 시간이 걸린다.

 

2. 좋지 않은 Local Minimum에 빠질 수 있다.

Local Minimum : 주변의 작은 영역에서는 가장 낮은 값을 가지지만, 전체 영역에서 반드시 가장 낮은 값은 아닌 지점.

Global Minimum(전체 영역에서 가장 낮은 값)과 상반되는 개념.

 

 

Local Minimum 해결방법

확률적 경사 하강법 [Stochastic Gradient Descent]

단 하나의 데이터만을 무작위로 선택하여 손실값을 계산한다.

 

SGD 해결방법

Mini-Batch Gradient Descent

SGD는 단 하나의 데이터만을 고려하기 때문에, 대규모 데이터셋에서 문제가 발생할 수 있다.

예) 100만개 중 1개만 사용 -> 99만 9,999개의 데이터는 무시 => 편향된 업데이트 초래

복수의 데이터를 Loss계산에 포함시킨다.

Batch Size가 2일 때, 주머니에서 두 개의 데이터를 무작위로 뽑아 그 평균을 Loss로 삼고 그래디언트를 계산하여 파라미터를 업데이트한다. 그 후, 남은 데이터 중 다시 두 개를 무작위로 선택하여 계산-업데이트 과정을 반복한다.

Batch Size가 1이면 SGD와 같고, 사이즈를 키울수록 GD에 가까워진다.

 

일반적으로 배치사이즈가 커질 수록 Validation Error가 증가한다.

1. Linear Scaling Rule

배치 사이즈를 키울 때 Learning Rate도 비례하여 키운다.

2. Learning Rate Warmup

학습 초기에 Learning Rate를 0에서 시작하여 점진적으로 증가시킨다.

 

 

이제 구현을 해보자!!

[link]


 

현재 시점의 그래디언트만을 고려하고 있어 개선의 여지가 있다.

이를 더 발전시킨 방법으로 Momentum, RMSProp, Adam 이 있다.

이 알고리즘들은 과거의 그래디언트 정보도 활용하여 더 효과적인 학습을 수행한다.

 

다음 장에서 이 알고리즘에 대해 알아보자!!


참고!

 

*웨이트 초기화

파라미터의 초깃값이 최소점으로부터 멀리 떨어져 있을수록 최적값에 도달하기 위해 더 많은 업데이트가 필요하다.

이는 학습 시간을 늘리고 모델의 성능에 부정적인 영향을 미칠 수 있다.

 

웨이트 초기화 방법

1. Yann LeCun

2. Kaiming He

3. Xavier

  • 입력값과 출력값 모두를 고려하여 역전파에 적합
  • Sigmoid와 tahn 활성화 함수를 사용할 때 효과적

공통적으로 웨이트를 평균 0인 랜덤한 값으로 초기화하며, 웨이트의 분산은 각 방식에 따라 다르게 설정한다.

 

 

* 순전파

입력 데이터가 신경망의 입력층에서 출력층까지 층층이 전달되며 계산되는 과정

입력되는 데이터의 수가 많아질 수록 분산을 작게하여 웨이트를 0에 더 가깝게 초기화

* 역전파

그래디언트를 계산할 때는 출력층에서 입력층 방향으로 웨이트가 곱해지고 더해지는 연산이 수행된다.