Adadelta는 AdaGrad의 한계를 극복하기 위해 개발되었습니다. AdaGrad는 학습 과정에서 그래디언트의 제곱을 계속 누적하여 학습률을 조정했지만, 이로 인해 학습이 진행될수록 업데이트가 너무 작아지는 문제가 있었습니다. Adadelta는 이를 해결하기 위해 그래디언트의 이동 평균을 사용하고, 추가로 파라미터 업데이트의 이동 평균을 도입했습니다. 이를 통해 Adadelta는 학습률을 별도로 설정할 필요 없이 자동으로 조정하며, 학습 후반부에도 적절한 크기의 업데이트를 유지할 수 있게 되었습니다.
2. 동작 원리
그래디언트 누적 제한
AdaGrad는 모든 과거 그래디언트를 누적했지만, Adadelta는 "지수 이동 평균"(Exponential Moving Average, EMA)을 사용하여 최근의 그래디언트에 더 큰 가중치를 둡니다.
E[g2]t=ρE[g2]t−1+(1−ρ)gt2
여기서 ρ는 감쇠율로, 보통 0.95의 값을 사용합니다. 이 방식으로 오래된 그래디언트의 영향을 줄이고 최근 그래디언트에 더 많은 가중치를 줍니다.
동적 학습률 조정
Adadelta는 명시적인 학습률을 사용하지 않습니다. 대신, 이전 파라미터 업데이트의 제곱 평균을 사용하여 현재 파라미터 업데이트를 조정합니다.
AdaDelta는 AdaGrad의 단점을 보완하기 위해 개발되었습니다. 과거의 모든 그래디언트를 누적하는 대신, 고정된 크기의 윈도우 내의 그래디언트만을 사용합니다. 또한, 학습률을 동적으로 조정합니다.
Δθt=−E[g2]t+ϵE[Δθ2]t−1+ϵ⋅gt
(E[g2]t:분모에위치하여큰그래디언트를가진파라미터의업데이트를줄이는효과)
(E[Δθ2]t:분자에위치하여이전업데이트의크기에비례하여현재업데이트를조절하는효과)
여기서 E[Δθ2]t−1는 이전 파라미터 업데이트의 제곱 평균입니다. 이 값도 EMA를 사용하여 계산됩니다:
E[Δθ2]t=ρE[Δθ2]t−1+(1−ρ)Δθt2
3. 장점과 단점
장점
학습률이 자동으로 조정되어 수동으로 설정할 필요가 없습니다.
AdaGrad의 학습률 감소 문제를 해결합니다.
단점
메모리 사용량이 AdaGrad보다 더 많습니다.
계산 복잡도가 약간 높습니다.
일부 경우에 수렴 속도가 느릴 수 있습니다.
Adamw
1. Adamw Optimizer
AdamW는 Adam 최적화 알고리즘의 개선된 버전으로, 2017년에 제안되었습니다. Adam은 적응적 학습률과 모멘텀을 결합한 효과적인 알고리즘이었지만, L2 정규화(weight decay)를 제대로 처리하지 못하는 문제가 있었습니다. 이로 인해 일부 상황에서 일반화 성능이 저하되는 현상이 발생했습니다. AdamW는 이 문제를 해결하기 위해 weight decay를 loss function에서 분리하여 직접 적용하는 방식을 도입했습니다.
2. 동작 원리
AdamW의 동작 원리는 다음과 같은 수식으로 표현됩니다.
(1) 1차 모멘트 업데이트
mt=β1mt−1+(1−β1)gt
(gt:그래디언트)
(β1:모멘트추정을위한감쇠율(일반적으로β1=0.9))
(mt:1차모멘트추정값)
(2) 2차 모멘트(속도) 업데이트
vt=β2vt−1+(1−β2)gt2
(β2:모멘트추정을위한감쇠율(일반적으로β2=0.999))
(vt:2차모멘트추정값)
(3) 편향 보정
m^t=1−β1tmt
v^t=1−β2tvt
(4) 파라미터 업데이트:
θt=θt−1−ηv^t+ϵm^t−ηλθt−1
(θt:시간t에서의파라미터)
(η:학습률)
(λ:가중치감쇠계수)
(epsilon:0으로나누는것을방지하기위한작은상수(일반적으로10−8))
3. 장점과 단점
장점
효과적인 가중치 감쇠로 일반화 성능 향상
적응적 학습률을 통한 빠른 수렴
큰 모델과 데이터셋에서 뛰어난 성능
그래디언트 크기에 덜 민감한 안정적 학습
Adam과 동일한 메모리 효율성
단점
SGD나 모멘텀 방식보다 약간 높은 계산 복잡도
가중치 감쇠 계수(λ) 선택을 위한 추가 튜닝 필요
학습 초기에 간혹 불안정할 수 있음
일부 간단한 문제에서는 SGD가 더 효과적일 수 있음
기본 SGD보다 복잡한 구현으로 디버깅이 어려울 수 있음
NAG
1. NAG Optimizer
NAG Optimizer는 1983년 Yurii Nesterov가 제안한 최적화 알고리즘으로, 기존의 Momentum 방식을 개선한 것입니다. Momentum이 현재 위치의 그래디언트를 사용하는 반면, NAG는 모멘텀에 의해 이동할 것으로 예상되는 미래 위치의 그래디언트를 근사하여 사용합니다. 이 "미리 보기" 메커니즘을 통해 NAG는 더 정확한 방향으로 파라미터를 업데이트할 수 있게 되었습니다. NAG는 특히 볼록 최적화 문제에서 이론적으로 최적의 수렴 속도를 달성할 수 있음이 증명되어 주목받았으며, 딥러닝과 기계학습 분야에서 널리 사용되고 있습니다.
2. 동작 원리 (Momentum과 비교)
NAG Optimizer의 핵심 아이디어는 모멘텀에 의해 이동할 것으로 예상되는 위치에서의 그래디언트를 사용하는 것입니다. 이는 일반 Momentum과의 주요 차이점입니다.
NAG와 Momentum의 동작 원리를 비교하여 설명하겠습니다.
Momentum의 동작 원리
(1) 속도 벡터 업데이트
vt=μvt−1+η∇f(θt−1)
(2) 파라미터 업데이트
θt=θt−1−vt
NAG의 동작 원리
(1) 속도 벡터 업데이트
vt=μvt−1+η∇f(θt−1−μvt−1)
(2) 파라미터 업데이트
θt=θt−1−vt
여기서:
(vt:시간t에서의속도벡터)
(μ:모멘텀계수(일반적으로0.9))
(η:학습률)
(∇f:비용함수의그래디언트)
(θt:시간t에서의모델파라미터)
(1) Momentum Step : 과거의 움직임을 반영
μvt−1
이는 이전 속도 벡터에 모멘텀 계수를 곱한 것으로, 파라미터가 모멘텀에 의해 이동할 것으로 예상되는 방향과 크기를 나타냅니다. NAG에서는 이 step을 먼저 적용하여 '미리 보기' 위치를 계산합니다.
(2) Gradient Step : 미래 예상 위치에서의 그래디언트를 반영
η∇f(θt−1−μvt−1)
이는 '미리 보기' 위치 (θt−1−μvt−1)에서 계산된 그래디언트에 학습률을 곱한 것입니다. 이 step은 현재 파라미터 위치가 아닌, 모멘텀에 의해 이동할 것으로 예상되는 위치에서의 그래디언트를 사용합니다.
(3) Actual Step : Momentum Step과 Gradient Step을 결합한 최종 업데이트 벡터
vt=μvt−1+η∇f(θt−1−μvt−1)
이는 실제로 파라미터를 업데이트하는 전체 step입니다. Momentum step과 Gradient step의 합으로 구성되며, 이 값을 현재 파라미터에서 빼서 새로운 파라미터 값을 얻습니다.
주요 차이점(그래디언트 계산 위치)
Momentum: ∇f(θt−1) - 현재 파라미터 위치에서의 그래디언트
NAG: ∇f(θt−1−μvt−1) - 모멘텀에 의한 예상 이동 후 위치에서의 그래디언트
"미리 보기" 메커니즘
NAG는 θt−1−μvt−1 항을 통해 파라미터가 모멘텀에 의해 이동할 예상 위치를 계산합니다.
이 예상 위치에서의 그래디언트를 사용함으로써, NAG는 더 정확한 방향으로 파라미터를 업데이트할 수 있습니다.
수렴 특성
Momentum: 빠른 수렴을 제공하지만, 때때로 목표를 지나칠 수 있습니다.
NAG: Momentum보다 더 나은 수렴 특성을 보이며, 특히 곡률이 큰 영역에서 더 효과적으로 감속합니다.
3. 장점과 단점
장점
빠른 수렴: NAG는 "미리 보기" 메커니즘을 사용합니다. 현재 위치가 아닌 예상 이동 위치의 그래디언트를 계산하여 더 정확한 방향으로 이동합니다. 이로 인해 불필요한 지그재그 움직임이 줄어들어 빠르게 수렴합니다.
향상된 일반화: 미래 위치의 그래디언트를 사용함으로써 급격한 방향 전환을 줄입니다. 이는 과적합의 위험을 낮추고, 더 부드러운 최적화 경로를 따르게 하여 일반화 성능을 향상시킵니다.
이론적 보장: NAG의 수학적 구조는 볼록 함수에서 최적의 수렴 속도를 보장합니다. 이는 알고리즘의 동작이 수학적으로 잘 정의되어 있음을 의미합니다.
지역 최솟값 회피: 모멘텀 성분이 이전 업데이트의 관성을 유지하여, 작은 지역 최솟값을 넘어갈 수 있는 힘을 제공합니다. 이는 더 넓은 영역을 탐색하는 데 도움이 됩니다.
안정적인 수렴: 미래 위치의 그래디언트를 사용하여 현재 움직임을 조절하므로, 최적점 근처에서 과도한 진동을 방지합니다. 이는 보다 부드럽고 안정적인 수렴을 가능하게 합니다.
단점
하이퍼파라미터 민감성: NAG의 성능은 학습률과 모멘텀 계수에 크게 의존합니다. 이 두 값의 상호작용이 복잡하여 최적값을 찾기 어려울 수 있습니다.
비적응성: NAG는 모든 파라미터에 대해 동일한 학습률을 사용합니다. 이는 각 파라미터의 특성이나 그래디언트의 크기를 고려하지 않아, 일부 상황에서 비효율적일 수 있습니다.
비볼록 문제에서의 한계: NAG의 이론적 보장은 주로 볼록 함수에 대해 성립합니다. 비볼록 문제에서는 수학적 보장이 약해지며, 복잡한 손실 함수 지형에서 예측하기 어려운 동작을 보일 수 있습니다.
계산 복잡성: NAG는 미래 위치의 그래디언트를 계산해야 하므로, 기본 경사 하강법보다 약간 더 많은 연산이 필요합니다. 이는 대규모 모델에서 계산 시간을 증가시킬 수 있습니다.
메모리 요구: NAG는 현재 파라미터 값 외에도 속도 벡터를 저장해야 합니다. 이는 모델의 파라미터 수에 비례하여 추가 메모리를 필요로 합니다.
Nadam
1. Nadam Optimizer
NAdam(Nesterov-accelerated Adaptive Moment Estimation) Optimizer는 2016년 Timothy Dozat가 제안한 최적화 알고리즘입니다. 이는 Adam(Adaptive Moment Estimation)과 NAG(Nesterov Accelerated Gradient)의 장점을 결합한 것입니다. Adam이 적응적 학습률과 모멘텀을 사용하는 반면, NAdam은 여기에 Nesterov의 "미리 보기" 메커니즘을 추가했습니다. 이를 통해 NAdam은 Adam의 적응성과 NAG의 향상된 수렴 특성을 모두 갖추게 되었습니다. Adam이 딥러닝 분야에서 널리 사용되는 가운데, NAdam은 더 빠른 수렴과 향상된 일반화 성능을 제공하여 주목받고 있습니다.
2. 동작 원리(Adam과 비교)
NAdam의 핵심 아이디어는 Adam의 적응적 학습률 조정 메커니즘에 Nesterov의 모멘텀 개념을 통합한 것입니다. Adam과 NAdam의 동작 원리를 단계별로 비교하여 설명하겠습니다.
Adam의 동작 원리
(1) 1차, 2차 모멘트 업데이트
mt=β1mt−1+(1−β1)gt
vt=β2vt−1+(1−β2)gt2
(2) 편향 보정
m^t=1−β1tmt
v^t=1−β2tvt
(3) 파라미터 업데이트
θt=θt−1−v^t+ϵηm^t
NAdam의 동작 원리
(1) 1차, 2차 모멘트 업데이트 (Adam과 동일)
mt=β1mt−1+(1−β1)gt
vt=β2vt−1+(1−β2)gt2
(2) 편향 보정 (Adam과 동일)
m^t=1−β1tmt
v^t=1−β2tvt
(3) Nesterov 모멘텀 적용 및 파라미터 업데이트
θt=θt−1−v^t+ϵη(β1m^t+1−β1t(1−β1)gt)
(θt:시간t에서의파라미터값)
(mt:그래디언트의1차모멘트(평균)추정값)
(vt:그래디언트의2차모멘트(제곱의평균)추정값)
(m^t:편향이보정된1차모멘트추정값)
(v^t:편향이보정된2차모멘트추정값)
(β1:1차모멘트추정값의감쇠율(일반적으로0.9))
(β2:2차모멘트추정값의감쇠율(일반적으로0.999))
(η:학습률)
(gt:시간t에서의손실함수의그래디언트)
(ϵ:0으로나누는것을방지하기위한작은상수(일반적으로10−8))
(t:현재까지의업데이트횟수)
주요 차이점
(1) 모멘텀 적용
Adam: 편향 보정된 1차 모멘트 m^t만 사용합니다.
NAdam: Nesterov 모멘텀 개념을 도입하여 β1m^t+1−β1t(1−β1)gt를 사용합니다.
β1m^t: 현재의 모멘텀 항으로, 과거 그래디언트 정보를 반영합니다. 1−β1t(1−β1)gt: 현재 그래디언트의 룩어헤드 항으로, 미래 예상 위치의 그래디언트를 근사합니다.
NAG vs NAdam의 차이:
NAG: 미분하기 전에 momentum step을 적용합니다. 즉, gt=∇f(θt−1−μvt−1)로 그래디언트를 계산합니다.
NAdam: 미분 후에 momentum과 유사한 효과를 적용합니다. 일반적인 그래디언트 gt=∇f(θt−1)를 계산한 후, 파라미터 업데이트 단계에서 momentum 효과를 구현합니다.
(2) 그래디언트 계산
Adam: 현재 파라미터 위치에서의 그래디언트만 사용합니다.
NAdam: 현재 위치의 그래디언트와 모멘텀에 의해 예상되는 미래 위치의 그래디언트를 함께 고려합니다.
NAdam의 "미리 보기" 메커니즘은 파라미터 공간에서 더 효율적인 경로를 찾는 데 도움을 줍니다.
이는 특히 급격한 곡률 변화가 있는 손실 함수 지형에서 유용할 수 있습니다.
(3) 적응성
Adam: 각 파라미터에 대해 개별적인 적응적 학습률을 사용합니다. 이는 2차 모멘트 v^t를 통해 구현됩니다.
NAdam: Adam의 적응적 학습률 메커니즘을 유지하면서, 여기에 Nesterov의 "미리 보기" 개념을 추가합니다.
3. 장점과 단점
장점
빠른 수렴: Nesterov 모멘텀과 Adam의 적응적 학습률을 결합하여, 더 정확한 그래디언트 방향을 예측합니다.
향상된 일반화: "미리 보기" 메커니즘으로 과도한 진동을 줄이고, 더 부드러운 최적화 경로를 따릅니다.
적응적 학습률: Adam처럼 파라미터별 학습률을 조정하여 다양한 스케일의 그래디언트를 효과적으로 처리합니다.
희소 그래디언트 처리: 적응적 학습률로 인해 자주 업데이트되지 않는 파라미터도 효과적으로 학습합니다.
하이퍼파라미터 강건성: 적응적 특성으로 인해 초기 학습률 설정에 덜 민감합니다.
단점
계산 복잡성: Nesterov 모멘텀 계산으로 인해 Adam보다 약간의 추가 연산이 필요합니다.
메모리 요구: 1차 및 2차 모멘트 추정치를 저장해야 하므로 추가 메모리가 필요합니다.
이론적 이해의 한계: Adam과 NAG의 복잡한 결합으로 인해 수학적 분석이 어려울 수 있습니다.
일부 상황에서의 성능 저하: 모든 문제에 최적화되어 있지 않아, 단순한 문제에서는 오히려 성능이 떨어질 수 있습니다.
학습 초기의 불안정성: 초기 단계에서 모멘텀과 적응적 학습률의 상호작용으로 불안정할 수 있습니다.
안녕하세요 잘 봤습니다! 궁금해서 그러는데 혹시 이쪽 분야를 어느 기간정도 공부하셨나요?
다른 프로젝트들 보는데 퀄리티가 정말 좋네요