본문 바로가기

Data science/Deep learning11

Gradient accumulation (그레디언트 누적) 요약Gradient Accumulation은 GPU 메모리 한계를 극복하면서 더 큰 배치(batch) 크기로 학습한 것과 동일한 효과를 내기 위해 사용하는 기법입니다. 문제: GPU 메모리 한계로 큰 배치를 한번에 학습할 수 없는 경우 발생해결방법작은 배치에서 계산된 loss을 gradient을 누적합니다. (=.backward()만 호출하면 gradient값이 더해집니다.)정해진 횟수(gradient accumulation step)만큼 누적되었다면 optimizer로 가중키를 업데이트 합니다.최종기울기가 큰 배치에서 한번에 처리한 결과와 동일하도록 각 loss을 gradient accumulation step만큼 나눠주어 스케일링합니다. 코드 스니펫아래와 같은 코드스니펫으로 사용될 수 있습니다. 주요.. 2025. 1. 22.
Pytorch DDP(Distributed Data Parallel), DP(Data Parallel) 비교 총정리 요약 DPDDP모델 복제 오버해드매 반복마다 각 GPU에 모델 복제초기 한번만으로 프로세스에 모델 복제데이터 분산 및 수집Scatter-Gather방식으로 통신비용발생각 프로세스가 독립적으로 작업(통신비용 적음)GILGIL로인해 multi-thread 성능제한GIL문제없음통신비용GPU간 동기화없음GPU 간 All-redeuce 통신비용발생적합한 환경단일 머신멀티노드 DataParallel (DP)DP은 데이터 병렬화 기술 중, 싱글노드에서만 사용할 수 있는 병렬화 기술입니다. DP은 한 프로세스에서만 돌아가기에 "Single process, multi-threaded"입니다. 하나의 프로세스에서 여러 GPU을사용하는 방식입니다. 즉 하나의 프로세스이기 때문에, 모델과 데이터를 한 번만 메모리에 로드하고,.. 2024. 5. 3.
[5분 컷 리뷰] Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics 요약 Multi-task learning은 연관된 복수의 테스크를 하나의 모델에 학습시키면서, 추가적으로 성능이 올라갈 수 있어 종종 사용됩니다. 이 논문에서는 Multi-task learning시에 복수의 테스크들의 밸런스를 어떻게 주어야하는지, 불확실성(Uncertainity)을 기반으로 방법론을 제시합니다. 이 논문에서는 불확실성을 타나낼 수 있는 학습가능한 파라미터를 제시해서 손실함수에 함께 사용합니다. Multi-task deep learning 아래의 이미지는 한 이미지로부터 서로 다른 3가지의 테스크을 수행하고, 3테스크의 손실함수를 합하여 최적화하는 일반적인 방법론입니다. 멀티테스크러닝(MTL)은 이런 유사한 테스크를 함께 사용하는 경우 하나의 테스크만 사용하는 것보다 더 높은 성능을 보일.. 2024. 4. 22.
[5분 컷 리뷰] Self-distillation 설명 Data-Distortion Guided Self-Distillation for Deep Neural Networks , AAAI 2019 배경: Knowledge distillation 큰 모델의 model confidence (softmax output)은 이 큰 모델이 학습한 지식을 담고있지 않을까라는 가설로 시작됩니다. 큰 모델의 결과물(증류된 정보)을 이용해서 작은 모델을 간단히 학습할 수 있지 않을까라는 생각입니다 [1]. 즉 큰 모델의지식(knowledge)이 model confidences 분포이겠구나라는 것입니다. 아래의 그림과 같이 Teacher model이 훨씬 큰 딥러닝모델이고, Student모델이 더 작은 모델입니다. 큰 모델의 예측결과(model confidences)자체가 큰 .. 2024. 4. 11.
분류문제: Cross entropy 대신에 MSE을 쓸 수 있나? + 역전파 및 MLE해석 본 포스팅은 naver d2 이활석님의 발표자로를 글과 이해가 쉽도록 만든 Figure들로 재구성했음을 알립니다. 요약 MSE로 최적화하는 것과 MLE로 최적화 하는 것은 동치이다. sigmoid을 출력값으로 하는 경우 MSE로 최적화하는 것보다 CE로 하는 경우, 학습이 더 빨리 된다. 이는 activation function(sigmoid)의 도함수를 한 번 계산하지 않아도 되기 때문이다. 1. Backpropgation (역전파) 과정에 대한 가정(Assumption) 역전파알고리즘을 이용하기 위해서는 2가지 가정이 일단 필요하다 [1]. Average $E = 1/n \sum_{x}E_{x}$: $n$개의 training 데이터에 해당하는 각각의 $x$에 대한 손실함수의 합의 평균은 손실함수 전체.. 2022. 11. 23.
[5분 컷 이해] Multiple Instance learning 이란? 요약 요약: Supervised learning의 일반적인 개념으로, Supervsed learning에서는 분류하고자할 instance가 정확히 True/False 등의 라벨이 필요한데,Multiple instance learning에서는 Instance까지는 True/False 까지는 안되어있어도, Instance의 묶음(Bag) 내에 True가 있을까? False일까를 맞추는문제. 주로 탐색해야할 영역들이 넓은 Pathological image, Document classification에 사용된다. 입/출력에 대한 상세: 입력값의 형태, 출력값의 형태, 문제는 어떤형식인가? 구체적으로는 각각의 instance까지의 라벨은 안되어도, instance을 포함하는 bag들의 라벨만 있으면 되는 형식이다.. 2022. 11. 8.