Loading...
2024. 4. 17. 23:42

Pytorch에서 learning rate scheduler 사용하는 방법 알기

1. 개요 learning rate는 model train 성능을 결정하는 중요한 요소 동일한 learning rate를 사용하여 처음부터 끝까지 학습을 할 수도 있지만, 초반에는 큰 learning rate를 사용하여 빠르게 최적값에 가다가, 후반에는 작은 learning rate를 사용하여 미세조정을 할 수도 있다. 기본적인 원리는 지정한 epoch 스텝마다 learning rate에 gamma를 곱한 값을 새로운 learning rate라 하고 다음 epoch을 돌린다. 2. 기본적인 사용법 Pytorch에서는 다양한 learning rate scheduler를 지원하고 있다. 기본적으로 학습시에 batch마다 optimizer.step()을 하고 나서, batch마다 learning rate를 바..

2023. 4. 26. 00:29

pytorch에서 optimizer & metric 기본개념 재활

1. optimizer는 무엇일까 loss는 gradient를 발생시키지만 gradient로부터 parameter를 업데이트시키는 것이 optimizer 업데이트하는 방식에 따라 다른 특징을 보이며 다른 성능을 나타낸다. 어떤 것을 선택하느냐에 따라 수렴속도나 수렴의 안정성에 차이가 있을 수 있어 신중하게 선택할 필요가 있다 2. learning rate learning rate는 계산된 gradient로부터 parameter를 얼마나 업데이트시킬지 결정하는 요소중에 하나로 학습 중에 고정시켜 사용할 수 있지만 그렇게 한다면, 고차원의 함수를 학습하고자 하는 딥러닝에서는 global minimum을 못찾을 가능성이 높다 반면 학습 중에 learning rate를 변화시킬 수 있으면 유연하게 global ..

Adan: Adaptive Nesterov Momentum algorithm for faster optimizing deep models

2022/09/01 1. abstract adaptive gradient algorithm은 수렴을 빠르게 하기 위해 gradient의 1차, 2차 적률을 추정하는 heavy ball acceleration의 moving average idea를 빌려왔다. 그러나 nesterov acceleration은 이론상 heavy ball acceleration보다 더 빠르게 수렴하고 또한 많은 경험적인 사례에서 adaptive gradient 세티에서 훨씬 덜 조사된다? 이 논문에서 우리는 deep neural network의 training 속도를 올리기 위해 ADAptive Nesterov momentum algorithm, 줄여서 Adan을 제안한다. Adan은 먼저 기본 Nesterov acclerati..

2022. 6. 1. 01:51

딥러닝의 핵심요소

1. deep learning의 기본 인공지능을 단순하게 정의하면 ‘사람의 지능을 모방하는 것’ 딥러닝이 인공지능의 모든 것은 아니다. 2. 딥러닝의 핵심요소 모델이 배워야할 data, 데이터를 어떻게 변형시킬지 model, 모델의 나쁜 정도를 측정하는 loss function, loss를 최소화하는 parameter를 추정하는 알고리즘(optimizer) 4가지만 논문에서 정확히 보더라도 해당 논문의 거의 대부분을 이해할 수 있는 수준 2-1) data 데이터(data)는 풀고자하는 문제에 따라 다르다 semantic segmentation > 이미지의 픽셀이 어느 class에 속할지 pose estimation > 이미지의 스켈레톤(동작)을 추정함 visual QnA > 시각이미지를 보고 질문에 대한..

2022. 5. 16. 01:52

transformer에 사용된 warm up learning rate scheduler

1. warm up learning rate scheduler 최적화 알고리즘인 optimizer의 learning rate는 중요한 hyperparameter인데 보통 하나의 값을 선택하고 전 과정동안 그 값으로 학습을 진행함. 그러나 조금 더 빠르게하면서 모델 성능은 높이고 싶다면 학습 중 변경하는 방법도 생각해볼 수 있음 이런 기법을 learning rate scheduling라고 부른다. 학습 중 적절한 방식으로 learning rate를 변경하면서 학습한다. 모델의 성능을 높이고 학습도 빠르게 할 수 있는 여러 기법들이 있다. warm up learning rate scheduler은 transformer에서 사용한다면 학습이 경험적으로 잘 된다고 많은 경우 알려져있다. 2. 직관적으로 warm..

2022. 1. 2. 00:05

여러가지 optimizer의 원리

1. Optimizer 일반적으로 최적화 알고리즘으로 gradient descent method를 사용하는데 손으로 하기도 어렵고 귀찮다. 그래서 요즘 컴퓨터가 다 계산해주는데 어떻게 계산해주느냐에 따라 여러가지 종류가 나왔다. 2. Gradient Descent 일반적인 gradient descent 방법 가중치에 그래디언트와 learning rate의 곱을 빼면서 update한다. 문제는 learning rate를 어떻게 잡아야할지가 고민이다. 너무 크게 잡자니 overshooting으로 학습이 안되는 현상이 나타나고 너무 작게 잡자니 너무 학습이 느림 3. Momentum 어떻게 하면 최적치에 더 빨리 갈수 있을까라는 생각에 이전 gradient의 정보를 가진 momentum을 이용하자. 이전에 g..