IT

학습률(Learning rate) & 학습률 감소/계획법(Learning rate Decay / Scheduling)

rimicode 2022. 6. 7. 19:03
728x90
반응형
SMALL
model.compile(optimizer = tf.keras.optimizers.Adam(learning_rate = lr_decayed_fn)
				, loss = 'sparse_categorical_crossentropy'
                , metrics = ['accuracy']

신경망 학습이 더 잘되도록 하는 방법

학습률(Learning rate, lr)

매 가중치에 대해 구해진 기울기 값을 얼마나 경사 하강법에 적용할지를 결정하는 하이퍼파라미터

해당 지점에서의 기울기를 구하여 기울기가 감소하는 방향으로 이동

학습률은 얼마나 이동할지를 조정하는 하이퍼파라미터

경사 하강법이 산길을 내려가는 과정이라면 학습률은 보폭을 결정

학습률이 크면 보폭이 크니 Iteration 마다 성큼성큼 이동하고, 작으면 보폭이 작아 조금씩만 이동

학습률이 너무 낮으면 최적점에 이르기까지 너무 오래 걸리거나, 주어진 Iteration 내에서 최적점에 도달하는 데 실패

반대로 너무 높으면 경사 하강 과정에서 발산하면서 모델이 최적값을 찾을 수 없게 됨

최적의 학습률을 찾는 것은 학습에서 중요한 요소


학습률 감소 (Learning rate Decay)

학습률 감소는 Adagrad, RMSprop, Adam 과 같은 주요 옵티마이저에 이미 구현되어 있기 때문에 쉽게 적용 가능

해당 옵티마이저의 하이퍼파라미터를 조정하면서 감소 정도를 변화

compile 내에 있는 optimizer 에 Adam 등의 옵티마이저 적용 후 내부 하이퍼파라미터를 변경하면 학습률 감소 적용 가능

model.compile(optimizer = tf.keras.optimizers.Adam(lr = 0.001, beta_1 = 0.89),
				, loss = 'sparse_categorical_crossentropy'
                , metrics = ['accuracy'])

학습률 계획법 (Learning rate Scheduling)

Warm-up Step 포함한 학습률 계획 방법 적용

Learning Rate Schedule

학습률 계획은 다음과 같이 experimental 내부의 함수를 사용하여 설계 가능

first_decay_steps = 1000
initial_learning_rate = 0.01
lr_decayed_fn = (
	tf.keras.experimental.ConsineDecayRestarts(
    	initial_learning_rate,
        first_decay_steps))
728x90
반응형
LIST