본문 바로가기

DL_general

(10)
학습 중 GPU를 100% 쓰지 않는 이유, GPU util을 올리려면? 딥러닝의 학습 파이프라인은 크게 두 가지로 구성된다. 데이터 (CPU) 티스크에서 데이터 읽기 전처리 batch 만들기 학습 (GPU) forward loss back propagation 딥러닝 학습 파이프라인을 최적화한다 하면(GPU-util을 99% 찍는다고 하면) 두 가지 모두를 최적화해야 한다. 그래야 비로소 GPU가 최적의 상태로 일을 하게 된다. 1. 데이터가 GPU에 올라가는 과정 데이터를 읽으라는 명령을 받는다 (user mode) user mode > kernel mode (context switching) kernel mode에서 file system I/O에 디스크에 있는 해당 데이터를 return해달라고 명령 return받은 데이터를 메모리에 올림 (kernel mode > use..
XGBoost Boosting이란? m1~m3 모델이 있을 때 m1에서는 x에서 샘플링된 데이터를 넣는다. m1에서 나온 결과 중 예측이 잘못된 값들에 가중치를 반영해서 다음 모델인 m2에 넣는다. (올바르게 예측한 샘플에 대해서는 가중치를 감소시킨다) 마찬가지로 y2 결과에서 예측이 잘못된 값들에 가중치를 반영해서 m3에 넣는다. 각 모델 성능이 다르므로 각 모델에 가중치 W를 반영한다. >> 새로운 모델이 추가될 때마다 오류 최소화를 목표로 학습되고, 실제 값과 예측 값 사이의 오류가 줄어들게 된다. Boosting을 사용하는 대표적인 모델은 Adaboost, Gradient Boosting 등이 있고, XGBoost는 그 중 gradient를 이용하여 boosting하는 gradient boosting을 사용해서..
localization 보통 classification with localization이라고 개념을 합쳐서 말함. Image classification과 bbox를 통하여 object를 표시하는 것을 일컫음. classification(위 그림에서 4개 class가 있음) 정보에 추가적으로 bbox를 그리기 위한 bx, by, bh, bw 좌표정보가 필요하게됨. bx, by = bbox의 중점 bh, bw = 높이, 너비 neural network가 class label 뿐만 아니라 bbox 좌표를 훈련 시에 받아서 훈련을 하면 classification과 localization을 동시에 수행할 수 있음 loss function은 대표적으로 squared error를 사용할 수 있음. sigma (target - output)..
YOLO motive grid 방식에서는 grid cell의 개수가 곧 proposal의 수로 proposal을 구하는 과정에서 오버헤드가 전혀 없다. YOLO는 실시간성을 확보하기 위해 proposal의 수가 적은 grid 방식을 발전시켜 사용했다. unified detection 입력 이미지를 7X7 그리드 영역으로 나눠준다. 각 grid cell은 두 개의 bbox와 bbox에 대한 confidene score를 갖는다. 각 grid cell에서 크기가 일정하지 않은 bbox 2개를 생성한다. cell에 object가 없으면 confidence score는 0 Grid cell이 7x7=49개 이므로 bbox는 총 98개이다. Bbox 안에 object가 있을 것 같다고 확신할수록 박스를 굵게 그린다. Bb..
cosine similarity 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미한다. 두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90°의 각을 이루면 0, 180°로 반대의 방향을 가지면 -1의 값을 갖는다. 즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다. 벡터 간의 크기는 무시되고 방향의 차이만 계산된다. 문서의 유사도 ex. 문서1 : 저는 사과 좋아요 문서2 : 저는 바나나 좋아요 문서3 : 저는 바나나 좋아요 저는 바나나 좋아요 문서3은 문서2에서 단지 모든 단어의 빈도수가 1씩 증가했을 뿐이므로 기존의 문서와 코사인 유사도의 값이 1이다. 하지만 유클리드 거리로 유사도를 연산하면 문서의 길이에 영향을 받기 때문에 ..
auto encoder 정의 입력 데이터를 encoder 부분에서 최대한 압축시켜서 compressed data(=latent vector = latent variable = code = feature = bottleneck hidden layer)를 다시 decoder 부분을 통해 입력 데이터와 동일하게 복원시키는 뉴럴 네트워크 unupervised learning의 일종이다. 왜 이름이 auto encoder인가? auto encoder에게 latent vector를 찾으라고 시켰을 때 결과이다. 위 예시에서 보면 x축으로는 기울기, y축으로는 두께가 변하는 것을 알 수 있다. 이를 통해 이 모델의 latent vector는 기울기와 두께라는 class로 정의되어 있다는 것을 알 수 있다. latent vector는 미리 ..
Federated learning motive 기존 연구는 data를 data center에 올려놓고 학습을 진행 Mobile device data의 경우 data center에서 학습을 진행하게 되면, privacy issue 발생 + data수에 따라 cost가 비례적으로 증가 정의 다수의 client와 하나의 중앙 서버가 협력하여 데이터가 탈중앙화된 상태에서 하나의 글로벌한 model을 훈련시키는 기술. 로컬 클라이언트에서 모델을 훈련시킨 뒤 모델 파라미터들을 서버로 보내 취합해서 하나의 모델을 만든다. 중앙 서버는 데이터를 가지고 있지 않음에도 불구하고 데이터를 가지고 모델을 훈련시킨 효과를 낼 수 있다. 장점 - 네트워크를 타고 이동하지 않기 때문에 데이터 정보 유출 위험 감소 - 클라이언트와 중앙 서버간의 커뮤니케이션 코스트 ..
[simplified] GAN 종류 1. Deep Convolutional GAN - DCGAN 기존 GAN의 구조는 FC로 연결되어 있기 때문에 성능이 제대로 나오지 않았던 것이었다 DCGAN에서는 FC를 CNN으로 바꾸어 성능 향상을 하고자 하였다. generator에서 transposed convolution을 사용하여 image를 upsampling하였다. discriminator는 단순 convolutional network이다. 또한 DCGAN architecture guideline은 다음과 같다. 1. 미분이 불가능한 pooling layer를 제거하고 미분 가능한 convolution layer로 대체 2. batch normalization layer 추가 3. FC hidden layer 삭제 4. generator m..