전체 글
-
RTX a6000 pytorch 버전 문제 해결리눅스(Ubuntu) 2021. 10. 28. 20:04
GPU를 사용하여 deep learning 코드를 돌릴 때 종종 아래와 같은 Runtimeerror를 볼 수 있다. Unable to find a valid CuDNN algorithm to run convolution 위와같은 에러가 생기는 이유는 대표적으로 1. memory 정리가 되어있지 않아서 2. 기존 pytorch cuda 등의 버전이 서로 맞지 않아서 이다. 오늘은 RTX a600 GPU를 사용 중일 때 해당 에러를 해결하는 방법을 두 가지 경우로 나누어 설명하도록 하겠다. 1. memory 정리 문제 memory가 꽉 차있어서 에러가 나는 것이라면 1)현재 컴퓨터 메모리가 가득 차 있거나 2) 현재 돌리고 있는 모델이 너무 무거운 경우이다. 1)의 경우 단순히 python 혹은 jupyte..
-
Style Transfer과 Cycle Gan에 대하여 : "화풍 따라하기"전반적인 딥러닝 기법 2021. 10. 20. 16:57
의료 영상 데이터를 이용해서 deep learing algorithm을 돌릴 때 가장 큰 장애물 중 하나가 데이터 자체 확보의 어려움이다. 높은 ROC curve를 요구하는 의료영상 기반 딥러닝 네트워크는 보다 좋은 양질의 학습 데이터를 필요로 하지만, 개인정보 보안 상 등 여러 이유로 한꺼번에 몇천개의 데이터를 획득하는 것은 쉽지 않다. 물론 현재 여러 open source medical data가 있지만, 아직도 다른 성격의 데이터들에 비해 학습용 데이터가 턱없이 부족한 것은 사실이다. 이러한 단점을 해결하기 위해 최근 GAN을 이용하여 synthetic medical image data를 만드는 새로운 시도들이 이어지고 있다고 한다. GAN이 도대체 무엇이길래 높은 정밀도를 요구하는 의료 데이터까지..
-
SAM : Sharpness-Aware Minimization For Efficiently Improving Generalization2021_Project/generalization 2021. 10. 12. 15:12
저번 실험에서 training loss 및 validation loss(=MAE) 가 3 초반으로 낮았음에도 불구하고 다른 domain에서의 external validation dataset에 대해서는 잘 예측하지 못함(MAE=5.xx)을 확인하였다. 이는 나의 모델의 generalization이 부족함을 의미하며, 이를 해결하기 위해 domain adaptation이 필요하다는 생각을 하였다. model generalization에 대한 방법을 찾던 도중, 교수님께서 최근 발표된 optimization 기법인 SAM에 대해 이야기 하셨으며 이를 한번 내 모델에 적용시켜보라고 권유하셨다. 따라서 이번 포스트에서는 SAM이 무엇인지에 대해 소개하고 brain age prediction model에 적용한 ..
-
[Pytorch] 다른 조합의 Train, Validation set 나누기전반적인 딥러닝 기법 2021. 9. 15. 20:20
보통 feature 기반의 deep learning algorithm의 경우, 좀 더 global한 solution을 위해 cross-validation을 사용한다. 이는 나의 model이 내 특정 test dataset에 overfit하는 것을 방지해주며 모든 데이터를 학습에 사용하므로 data 부족으로 인한 underfitting 문제도 어느 정도 해결해준다. 통상적으로 brain age prediction에 관련해서 대다수의 논문들이 10-fold cross validation을 사용한다. 하지만 이는 비교적 running time이 짧은 모델에서만 쓰일 뿐, 학습시간이 nn일 걸리는 image 기반의 모델에서는 CV를 하지 않는 추세이다. 나 역시 현재 RTX A6000으로 3D ResNet을 돌..
-
Synthesizing Tabular Data using Generative Adversarial Network : TGAN2021_Project/Linear Regression 2021. 8. 23. 19:32
medical dataset을 사용하여 딥러닝을 학습할 때 가장 어려운 점은, 데이터셋의 확보가 어렵다는 것이다. 좋은 성능을 위해 다량의 학습 데이터가 필요하다는 면에서 medical domain에서의 인공지능은 challenging하다고 볼 수 있다. 이러한 데이터 부족 문제를 해결하기 위해 최근들어선 GAN을 사용하는 사람들이 늘어나고 있다. 특히 medical image dataset에 대해선 GAN으로 학습하여 만든 synthetic image와 source image를 합하여 data augmentation을 했다는 연구 결과들이 들려오고 있다. 하지만, 만약 내가 갖고 있는 데이터가 영상데이터가 아닌 다른 feature 데이터면 어떻게 할 것인가? 만약 내가 갖고 있는 데이터가 EMR 혹은 ..
-
Scheduler전반적인 딥러닝 기법 2021. 8. 13. 18:01
처음 딥러닝을 시작하면 접하는 용어가 바로 learning rate이다. 일반적으로 딥러닝 모델에서 cost function을 최소화하기 위해 gradient descent 방법을 사용한다. Gradient descent algorithm을 사용하게 되면 기울기의 크기가 줄어드는 방향으로 학습이 진행되며 loss값을 줄이는 때, 이때 얼만큼의 step으로 건너뛰는가를 결정하는 것이 바로 leaning rate가 해주는 일이다. 모델 학습 과정에서 적절한 learning rate를 설정하는 것은 매우 중요한데 그 이유는 위 그림으로 설명이 가능하다. 만약 learning rate가 매우 작을 경우 학습이 천천히 이루어지므로 optimal한 minimum에 도달하기 까지 시간이 매우 많이 걸릴 것이다. 하지..
-
-
Decision Tree Regressor2021_Project/Linear Regression 2021. 8. 5. 13:36
Decision Tree Regressor을 설명하기 앞서 우선 Decision Tree 모델이 무엇인지 설명하도록 하겠다. Decision Tree는 일정한 기준을 질문으로 제시했을 때, '예' 혹은 '아니오'로 갈라질 수 있는 결정 모델을 의미한다. 조건식에 따라 여러 노드들이 마치 나무처럼 형성이 되기 때문에 Decision Tree라고 불린다. 그렇다면 이 decision tree와 회귀모델이 만나면 어떻게 될까? Decision tree regressor을 먼저 설명하기 앞서 decision tree classification 모델을 살펴보는 것이 이해하기 더 쉬울 것이다. 1. Decision Tree classification Decision tree classification에서 root ..