미분
-변수에 움직임에 따른 함수의 변화를 측정하기 위한 도구
-주어진 점에서의 접선의 기울기
-sym.diff()
***미분 값을 더하면 함숫값 // 증가 빼면 함숫값 감소
경사하강법
- 미분 값을 빼서 극소값의 위치를 구하는 것을 경사하강법이라 함
경사 하강법 알고리즘에서는 학습률을 추가해 업데이트 속도를 조절한다.
var = var - 학습률 * grad
**학습률 조절이 중요하다. @@하이퍼 파라미터 값 탐색@@
경사하강법 사용 이유
-함수가 복잡한 경우 근이나 미분계수를 계산하기 어려운 경우가 많고, 경사 하강법은 컴퓨터로 쉽게 구현 가능하다.
-데이터양이 큰 경우 계산량 측면에서 효율적으로 해를 구할 수 있다.
경사하강법의 문제점
- Local minimum에 빠져나오지 못하는 경우가 있다.
- 안장점에서는 기울기가 0이라 멈추게 된다.
변수가 벡터인 경우
- 편미분 사용
이를 이용해 그레디언트 벡터를 구함
경사 하강법으로 선형 회귀 계수 구하기
-선형 모델에서는 무어 펠 로즈 역행렬로 구할 수 있으나 좀 더 복잡한 함수에서는 경사 하강법을 이용해야 함
lly-Ŷ ll(L2)을 최소화하는 값을 구하는 게 목적, 경사 하강법에서는 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 |