Gradient Descent Algorithm - Key components
: a → 사전에 정의한 학습률
: θ → 구하고자하는 모델의 학습 파라미터로 최적의 가중치로 학습 가능한 부분

a(learning rate)의 학습 과정
a가 작은 경우)
최적의 가중치에 도달하긴 하지만 수렴 속도가 오래 걸림
a가 적당한 경우)
적절한 시간 내에 최적의 가중치에 도달할 때까지 수렴이 안정적으로 진행
a가 큰 경우)
학습이 진행되지 않음 → 오히려 loss가 커짐

Batch gradient descent
: 일반적인 gradient descent 방법으로, 파라미터가 업데이트되면서 점차 모델이 fitting 함
: local optimum에 취약하지만 어느정도 수렴을 함
problem)
해당 기법은 수식에도 나와있는 것 처럼 θ_0, θ_1의 업데이트 과정에서 전체 샘플 m개를 모두 고려해야 하기에 m(데이터 샘플)이 증가할수록 복잡도가 크게 증가함

Stochastic gradient descent (SGD)
: 일반적인 gradient descent 방법에서 m의 크기를 1로 고정시켜 놓은 방식
: 빠르게 주기를 갱신할 수 있음
problem)
샘플 하나 하나씩 파라미터를 연산하기 때문에 noise의 영향을 잘 받음

Limitation : Local Optimum
: gradient descent의 경우 어느 지점에서 최적화를 시작하냐에 따라 local optima에 수렴할 수도 있고 global optima에 수렴할 수도 있음 → local optima에 빠질 경우 최적의 파라미터를 얻을 수 없기에 문제가 됨
→ 이러한 문제를 해결하기 위해 다양한 변형된 gradient descent 알고리즘이 발명 됨

Some ideas to avoid local minimum
: Method of momentum
: 과거에 gradient가 업데이트 되어오던 방향 및 속도를 어느 정도 반영해서 현재 포인트에서 gradient가 0이 되더라도 계속해서 학습을 진행할 수 있는 동력을 제공하게 되는 것
: saddle point나 작은 noise gradient 값에 안정적으로 수렴할 수 있음
→ 현재 시점에서 멀면 멀수록 p값이 연속적으로 곱해져 먼 과거의 값은 더 작아지고 비교적 가까운 gradient의
값은 덜 작아짐
즉, momentum은 gradient가 0인 지점이 발생해도 계속 학습을 진행할 수 있음


Some ideas to avoid local minimum
: Nesterov Momentum
: 기존의 방식과 다르게 gradient를 먼저 평가하고 업데이트를 하게 됨
→ 기존 방식의 경우 momentum step과 gradient step을 벡터의 합으로 계산하여 actual step을 구함
→ Nesterov Momentum은 미리 momentum step만큼 이동한 지점에서 lookahead gradient step을 계산하여 그 두 지점에 대한 actual step을 계산함

Some ideas to avoid local minimum
: AdaGrad(per-parameter adaptive learning rates)
: 각 방향으로 learning rate를 적응적으로 조절하여 학습 효율을 높이는 방식
gradient 누적합이 큰 경우
→그 방향으로의 학습이 많이 진행되었다는 의미이기에 델타 값이 많이 작아져 그만큼 수렴 속도도 작아짐
gradient 누적합이 작을 경우
→그 방향으로의 학습이 덜 진행되었다는 의미이기에 θ값을 크게해 수렴 속도를 빠르게 함
아래 식처럼, r은 기존 r 값에 gradient의 제곱을 더하고, 학습과정에서 gradient 제곱값이 누적되어 r은 계속 커짐
두번째 수식의 r값을 보면, r이 커질 수록 θ가 작아짐을 알 수 있음
: 학습과정 진행이 빨라 r값이 크면 그 방향의 θ는 작아져 수렴속도 감소
: 학습과정 진행이 느려 r값이 작으면 그 방향의 θ는 커져 수렴속도 증가
problem)
gradient 값이 누적됨에 따라 learning rate가 너무 작아질 경우 그 지점에서 학습이 진행되지 않을 수도 있음

Some ideas to avoid local minimum
: RMSProp(per-parameter adaptive learning rates)
: 극단적으로 gradient 값이 누적함에 따라 θ값이 작아지는 것이 아니라 어느정도 완충된 속도로
학습 속도가 줄어듦

Some ideas to avoid local minimum
: Adam (adaptive moment estimation) : RMSProp + momentum
(per-parameter adaptive learning rates)
1. 첫 번째 momentum 계산(s와 같은 형태로 구성됨)
2. RMSProp와 같은 방식으로 두 번째 momentum 계산(r 값)
3. 안정된 학습을 위해 bias 보정
4. parameter 업데이트

Learning rate scheduling
: hyper parameter a를 학습과정에 따라 조정
→ 적당한 a값 조정을 통해 학습 속도를 높이면서 error를 줄이는 a를 찾아가야 함

Some optimization in regression to avoid overfitting
Model 과적합 문제
: model이 지나치게 복잡하여, 학습 parameter의 숫자가 많아서 제한된 학습 샘플에 너무 과하게 학습이 되는 것
→ 훈련된 dataset에 대해서는 매우 높은 정확률을 보이지만 새로운 sample이 들어왔을 때 예측을 하거나
일반화하는데 실패할 가능성이 높음

Overfitting 발생 원인
: 더 많은 입력 feature들이 들어가면 더 많은 paramter들이 필요하고 curse of dimension(차원의 저주)으로
데이터 개수는 더 많아지게 됨
→ 하지만, 실제 환경에서는 feature들이 늘어나 만큼 더 많은 데이터를 확보할 수 없기 때문에 과적합이 발생

solution)
1. feature의 수를 줄임
→ 유지해야할 feature들만 남겨둠
2. Regularization
→ feature들을 유지하되 parameter들의 수를 줄임(상대적으로 중요하지 않은 θ를 0으로 보내버림)

'실습 & 활동 > LG Aimers' 카테고리의 다른 글
Module 3. 지도학습 (분류/회귀) - Advanced Classification (0) | 2023.01.24 |
---|---|
Module 3. 지도학습 (분류/회귀) - Linear Classification (0) | 2023.01.19 |
Module 3. 지도학습 (분류/회귀) - Linear Regression (0) | 2023.01.16 |
Module 3. 지도학습 (분류/회귀) - SL Foundation (0) | 2023.01.15 |
Module 1. AI 윤리 (0) | 2023.01.02 |