본문 바로가기
반응형

AI/딥러닝26

[Pytorch] Hyper-parameter Tuning , Pytorch Troubleshooting 1. Hyper-parameter Tuning 모델의 성능이 잘 안 나오면 보통 모델을 바꾸거나, 데이터를 바꾸거나, Hyper-parameter를 Tuning한다. 이 중 성능 향상에 큰 기여는 하지 않지만 좋은 데이터와 모델을 통해 어느 정도 성능을 갖추었을 때 미세하게 성능 향상을 할 수 있는 Hyper-parameter Tuning에 대해 알아보자. ■ Hyper-parameter Search Hyper-parameter를 탐색하는 가장 기본적인 방법에는 grid search와 random search가 있다. 아래 그림에서 왼쪽은 grid search를 나타내고 오른쪽은 random search를 나타낸다. Grid search를 예를 들면, learning rate를 가로축으로 하여 0.1 0.. 2021. 8. 21.
[Pytorch] Multi-GPU 파라미터 개수가 많은 경우 하나의 GPU로는 연산을 감당할 수 없다. 오늘은 여러개의 GPU를 사용하여 병렬적으로 학습하는 방법에 대해 알아볼 것이다. 1. Multi-GPU Multi-GPU에 학습을 분산하는 방법에는ⓛ Model parallel(모델 나누기)와 ② Data parallel(데이터 나누기)가 있다. ■ Model parallel Model parallel은 model내의 layer들을 여러 GPU에 올리는 방법이다. 아래의 Alexnet이 가장 유명한 Model parallel이다. C1부터 두개의 GPU를 사용하여 parameter를 주고받으며 병렬적으로 학습하고 있는 모습을 볼 수 있다. Model parallel로 학습을 진행할 경우 아래 그림의 첫번째 상황을 조심해야 한다. 두번.. 2021. 8. 21.
[Optimization] Generalization , Under-fitting vs Over-fitting , Cross Validation 1. Optimization Optimization의 핵심 개념을 아래의 순서대로 다루어볼 것이다. · Generalization · Under-fitting vs Over-fitting · Cross Validation · Bias and Variance Tradeoff · Bootstrapping · Bagging and Boosting ■ Generalization Generalization이란 Training Error와 Test Error 간 차이를 말한다. Training Error가 작다고 해서 Test Error가 작은 것은 아니다. 어느 순간 Over-fitting이 되면서 Test Error가 커지기 때문이다. 또한 Generalization gap이 작다고 Test Error가 작다고.. 2021. 8. 16.
weight를 갱신할 때 기울기에 왜 Learning rate를 곱할까? Optimizer를 공부하면서 Learning rate에 대해 의문이 들었다. Gradient자체가 얼마나 Loss에 영향을 주는지를 의미하니까 어느 방향으로 내려가야하는지 뿐만아니라 어느 정도로 업데이트 해야할지에 대한 정보도 담고있다고 생각했는데 왜 또 보폭을 설정해주는 지 궁금했다. 다시 생각해봐야할 것은 gradient라는게 weight 한 단위가 변할 때 loss에 대한 영향력을 나타낼 뿐, 그것이 극값의 위치에 도달할 수 있는 크기를 의미하지 않는다는 것이다. 아래 예시를 보자. weight를 기울기만큼 이동하면 방향은 왼쪽으로 잘 가고 있지만 너무 많이 이동해서 계속 (1, 1)과 (-1, 1)로만 갱신되는 모습을 볼 수 있다. 즉, 기울기는 방향에 대한 정보는 잘 전달하지만 극값에 다가가기.. 2021. 8. 15.
728x90
반응형