ReduceLROnPlateau의 factor 관련 질문 드립니다.
547
작성한 질문수 18
ReduceLROnPlateau의 factor는 patience동안 val_loss가 개선되지 않으면, learning rate를 변화시켜서 Local minina에 빠지지 않는다고 하셨습니다.
그런데, 구글에서 검색을 하거나, 선생님이 예시로 든 코드를 보면 factor는 0.x로, 이전 learning rate보다 감소되는 방향입니다.
local minina에서 빠져나오기 위해서는 오히려 이전 learning rate보다 키워야 하는게 아닐까 생각했습니다.
factor를 0.x로 설정해서 learning rate를 감소시키는 이유가 궁금합니다.
머신러닝 강의, 캐글 강의 모두 너무 잘 들었습니다!
답변 1
0
안녕하십니까,
제 강의들을 잘 들으셨다니 저도 기분이 좋습니다.
위에서 예를 든 ReduceLROnPlateur등을 포함해서 learning rate를 epoch마다 변화 시키는 정책은 여러가지가 있습니다. epoch시마다 learning rate를 변화시키는 정책은 optimizer에서 batch 마다 optimizer learning rate를 조금씩 조절하는 것과는 약간 차이가 있습니다.
그리고 말씀하신대로 epoch시에 주기적으로 learning rate를 키우는 정책도 있습니다.
이들 여러가지 정책들중 ReduceLROnPlateur는 주기적으로 learning rate를 줄이는게 성능향상에 도움이 될 거라는 경험치라 가지고 구현된 것입니다. 이게 절대적인 성능 향상 방법은 아닙니다.
보통 epoch시마다 learning rate를 조금씩 줄이는게 성능상으로 유리할 수가 있는 경우는
epoch를 수행하면서 loss가 계속 줄다가 갑자기 조금씩 늘어나는 경우 입니다. 이 경우 loss의 최소점에 접근하지 못하고 오히려 최소점을 넘어가는 학습이 계속 되기 때문에 이 경우에 최소점에 접근하기 위해서 epoch를 수행할 때만다 learning rate를 줄이는 것이 유리할 수 있습니다.
정리하자면 ReduceLROnPlateur는 위에서 언급된 사항에서 경험적으로 learning rate를 줄이면 보다 최소 loss를 찾는데 유리하다라는 경험치를 가지고 만들어진 정책입니다. 다른 정책도 얼마든지 있을 수 있습니다.
감사합니다.
resize 질문
0
60
1
20251212 Kaggle 런타임에 scikit-learn 설치 실패 트러블 슈팅
0
87
1
Loss와 매트릭 관계
0
78
2
Boston 코랩 실습
0
173
2
배치 정규화의 이해와 적용 2 강의 질문
0
145
2
Augmentation원본에 적용해서 데이터 갯수 자체를 늘리는 행위는 의미가있나요?
0
153
2
Conv함수 안에 activation 을 넣지 않는 이유가 뭔지 궁금합니다.
0
214
2
소프트맥스 관련 질문입니다
0
215
1
강의 관련 질문입니다
0
162
2
residual block과 identity block의 차이
0
202
2
옵티마이저와 경사하강법의 차이가 궁금합니다.
1
253
1
실습 환경
0
173
2
입력 이미지 크기
0
259
2
데이터 증강
0
209
2
albumentations ShiftScaleRotate
0
212
1
Model Input Size 관련
0
295
1
마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??
0
207
1
일반적인 질문 (kaggle notebook사용)
0
276
2
실무에서 Augmentation 적용 시
0
348
2
안녕하세요 교수님
0
237
1
가중치 초기화(Weight Initialization) 질문입니다.
0
333
1
테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류
0
414
1
학습이 이상하게 됩니다.
2
1043
2
boston import가 안됩니다
0
233
1





