본문 바로가기

AI/딥러닝

1-2 경사하강법

미분

  -변수에 움직임에 따른 함수의 변화를 측정하기 위한 도구

  -주어진 점에서의 접선의 기울기

  -sym.diff()

 

***미분 값을 더하면 함숫값 // 증가 빼면 함숫값 감소

 

경사하강법

   - 미분 값을 빼서 극소값의 위치를 구하는 것을 경사하강법이라 함

 

경사 하강법 알고리즘에서는 학습률을 추가해 업데이트 속도를 조절한다.

var = var - 학습률 * grad

 

**학습률 조절이 중요하다. @@하이퍼 파라미터 값 탐색@@

 

경사하강법 사용 이유

  -함수가 복잡한 경우 근이나 미분계수를 계산하기 어려운 경우가 많고, 경사 하강법은 컴퓨터로 쉽게 구현 가능하다.

  -데이터양이 큰 경우 계산량 측면에서 효율적으로 해를 구할 수 있다.

 

경사하강법의 문제점

- Local minimum에 빠져나오지 못하는 경우가 있다.

- 안장점에서는 기울기가 0이라 멈추게 된다.

 

변수가 벡터인 경우 

- 편미분 사용

특정 X벡터의 i번째 구성성분의 변화율을 구할수 있다.

이를 이용해 그레디언트 벡터를 구함

 

 

경사 하강법으로 선형 회귀 계수 구하기

  -선형 모델에서는 무어 펠 로즈 역행렬로 구할 수 있으나 좀 더 복잡한 함수에서는 경사 하강법을 이용해야 함

     lly-Ŷ ll(L2)을 최소화하는 값을 구하는 게 목적, 경사 하강법에서는 ll Y - X*beta ll(L2)을 최소화로 만드는 beta값을 찾아야 한다.

ll Y-X*beta ll(L2) 미분

@@손미분 과정@@

 

beta를 구하는 경사하강법 알고리즘

위에서는 식을 간단히 하기 위해 L2 노름에 제곱한 값을 미분해서 학습률을 곱해주었다.(결과는 같음)

 

 

확률적 경사 하강법(SGD)

  -모든 데이터가 아닌 한 개 혹은 일부의 데이터만 사용하여 업데이트하는 방법

  -볼록이 아닌 목적식은 SGD방식을 활용하여 최적화 가능

  -미니 배치로 업데이트 하므로 연산량이 b/n으로 감소

  -미니배치 사이즈도 고려

  -매번 다른 미니 배치를 활용하여 업데이트하기 때문에 목적 식이 바뀌면서 극소값으로 다가간다.

  -만약 Local minimum에 도착했을 경우에도 목적 식이 계속 바뀌면서 진행되기 때문에 미분 값이 

    0이 나오지 않고 계속 업데이트된다.

 

***딥러닝에서의 확률적 경사 하강법은 하드웨어와 알고리즘의 효율성을 고려해서 필수이다.

 

'AI > 딥러닝' 카테고리의 다른 글

1*1 convolution  (0) 2023.02.21
Manifold learning  (0) 2022.02.14
딥러닝 Mean Square Error (MSE) / Cross Entropy(CE)  (0) 2022.02.14
CNN  (0) 2022.02.08
1-3 신경망  (0) 2022.01.23