inflearn logo
강의

Course

Instructor

Deep Learning and PyTorch Bootcamp for Beginners (Easy! From Basics to ChatGPT's Core Transformer) [Data Analysis/Science Part 3]

RMSProp 관련 질문입니다.

173

nureongi0214

6 asked

0

안녕하세요!

 

섹션 9에서 AdaGrad, RMSProp 강의를 보다 궁금한 점이 생겨 질문드립니다.

 

제가 이해한 바로는, RMSProp은 학습이 잘 안되었음에도 t가 커질수록 $G_t$가 커지는 문제를 최대한 막는 방법이라고 이해했습니다.

 

$G_t = \gamma G_{t-1} + (1 - \gamma)g_t^2$

그런데 위 식대로라면 미분값($g_t$)이 커질때 오히려 $G_t$가 감소할수도 있을 것 같은데

RMSProp은 AdaGrad와 달리 learning_rate가 커지는 쪽으로도 조절될 수 있도록 한 것인가요?

 

만약 맞다면 제가 알기로는 learning_rate는 t에 따라 감소하도록 하는 것이 일반적이라고 알고 있는데

RMSProp에서 이렇게하면 학습에서 어떤 이점이 있는 것인지 궁금합니다.

머신러닝 딥러닝 인공신경망 pytorch vision-transformer

Answer 1

1

funcoding

안녕하세요. 답변 도우미입니다.

질문하신 내용에 대해 답변드리겠습니다.

RMSProp은 AdaGrad의 핵심 문제 중 하나를 해결하기 위해 고안된 알고리즘입니다. AdaGrad에서는 시간이 지남에 따라 누적된 그라디언트 제곱의 합 \( G_t \) 때문에 학습률이 과도하게 감소할 수 있습니다. 이로 인해 학습이 충분히 일어나기 전에 학습률이 너무 작아져 학습이 멈추는 문제가 발생할 수 있습니다.

RMSProp은 이를 방지하기 위해 지수 가중 이동 평균(Exponential Weighted Moving Average)을 사용합니다. 이 방법은 최근 그라디언트 정보에 더 많은 가중치를 두고 과거 그라디언트 정보는 점차 잊어가도록 설계되었습니다. 수식에서 \( \gamma \)는 보통 0.9와 같은 값으로 설정되어 최근의 그라디언트 \( g_t \)에 더 많은 가중치를 두게 됩니다.

\( G_t = \gamma G_{t-1} + (1 - \gamma)g_t^2 \)

여기서 \( G_t \)는 이동 평균이며, \( g_t \)는 시간 \( t \)에서의 그라디언트입니다.

미분값 \( g_t \)가 클 때, 즉, 그라디언트가 크게 변할 때 RMSProp의 \( G_t \)는 더 크게 증가하지 않고, 대신 최근의 정보를 반영하여 상대적으로 안정적인 학습률 조정이 가능합니다. 이는 AdaGrad에서 발생할 수 있는 문제를 완화시키면서도, 각 파라미터에 대해 맞춤형 학습률 조정을 가능하게 합니다.

학습률이 감소하는 것이 일반적이라는 것은 맞습니다만, RMSProp의 경우 학습률을 감소시키는 것뿐만 아니라 필요에 따라 증가시킬 수 있는 유연성을 제공합니다. 이는 특히 비볼록(non-convex) 최적화 문제, 예를 들어 딥러닝 학습에서 유용합니다. 딥러닝의 경우, 최적화 과정이 복잡하고 매끄럽지 않은 에너지 표면을 탐색하는 것과 유사하기 때문에, 학습률이 너무 빨리 감소하는 것을 방지하고, 필요에 따라 다시 증가시킬 수 있는 유연성이 중요합니다. 이렇게 함으로써, RMSProp은 이러한 복잡한 최적화 문제에 적합한 방법으로 작동할 수 있습니다.

감사합니다.

0

nureongi0214

최적화 과정이 복잡하고 매끄럽지 않기(?) 때문에 학습률을 다시 늘리는 것이 학습에 도움이 될 수도 있는 것이군요!

감사합니다!

강의 필기는 어떻게 하나요?

0

82

1

섹션 5퀴즈 4번 문제 보기 오류로 보임

0

62

1

섹션17 81번이랑 82번 강의가 중복되는 것 같아서 질문드립니다.

0

87

2

강의교안이 안 옵니다

0

78

1

17-2강 Transfer learning 실습 관련 질문

0

134

2

13섹션 강의자료가 없네요^^

0

91

1

강의자료가 없네요.

0

103

2

LSTM 모델 학습 관련한 질문입니다.

0

127

1

MSE LOSS 관련

0

129

1

test시 minibatch 사용?

0

133

1

Average Test loss 계산식 문의

0

101

1

파이토치 설치

0

244

1

[Pytorch 기울기의 누적 곱? 누적 합?]

0

131

1

3d 텐서에서의 축 구분 질문

0

118

1

항상 tensor([0., 0., 0.]) 형식으로만 나오는 이유

0

110

1

강의자료 PDF 다운로드에 관하여

0

130

1

[실무에서 판다스 copy()메서드의 깊은복사 얕은복사 조정 소요가 생길까?]

0

116

1

섹션 다양한 Optimizer 정리하기 중 딥러닝으로 Regression 문제 적용해보기 (House Price Kaggle 문제) 강의에서 오류가 발생합니다.

0

148

1

마지막에 confusion matrix 작성할때

0

157

1

아나콘다를 사용하지 않고 파이토치 사용하는 방법

0

849

1

test data 의 loss 계산식 문의

0

285

1

차원 출력 관련 문의

0

242

1

섹션 7-4 당뇨병

0

383

3

BackPropagation 질문입니다

0

372

1