728x90

Deep Learning 7

[ML/DL] 쿨백-라이블러 발산 (Kullback-Leibler Divergence)

쿨백-라이블러 발산은 머신러닝이든 딥러닝이든 공부를 지속해가다보면 심심치 않게 만나볼 수 있는 개념이다. 공부를 할 때마다 위키피디아를 들락날락하지 않도록 블로그에 정리해보고자 한다. Kullback-Leibler Divergence (KLD) KLD는 knowledge distillation, variational inference 등 두 개의 분포 간의 차이를 계산할 때 사용되는 measure이다. 정의 X가 이산확률변수일 경우 $$D_{KL}(P||Q) = {\sum_{i} P(i)\ log\frac{P(i)}{Q(i)}}$$ X가 연속확률변수일 경우 $$D_{KL}(P||Q) = {\int_{x} p(x)\ log\frac{p(x)}{q(x)}} $$ 의미 위의 정의를 풀이하자면, 어떠한 확률분포..

DeepLearning/Basic 2022.03.25

[Object Detection] RetinaFace(2019) 리뷰

Object Detection의 subtask인 Face Detection 연구 중 하나로, 2019년 발표된 논문이다. extra supervision (label을 손수 추가)과 self supervision을 joint하게 학습시킴(multi-task learning)으로써 WIDER FACE hard 데이터셋 기준 기존 SOTA보다 1.1% 정도의 face box AP를 끌어올렸다. RetinaFace WIDER FACE hard test set → 91.4%로 기존 SOTA보다 1.1% 앞섬. IJB-C test set, RetinaFace을 사용하면 face verification의 sota인 ArcFace도 성능 향상이 이루어짐 Backbone을 가볍게 한다면 싱글 코어 CPU 환경에서도 실..

[Object Detection] Focal Loss

Focal Loss class imbalance in a one-stage detector inefficient training 대부분의 location이 easy negatives이고 이들은 학습에 어떠한 유용한 정보도 주지 않음. Loss overwhelmed Easy Negatives가 loss의 대부분을 차지하기 때문에 loss가 실질적으로 hard example을 제대로 반영할 수 없게 됨. 이전까지의 연구에서 이를 어떻게 해결해왔는가? Hard Negative mining! Ex) Boosting Classifier에서 hard example을 보다 잘 학습하기 위해 sampling을 더 많이 시키는 형태(sampling weight 부과)로 학습을 시킴. (명시적으로 hard example을..

[DL/CV] NN interpolation의 backward propagation

Nearest Neighbor Upsampling FPN(Feature Pyramids Network)에서는 top-down path를 통과할 때 high level feature와 low level feature를 섞기 위해서 upsampling 연산을 하는데, upsampling 방법으로는 Nearest Neighbor Upsampling을 사용한다. Nearest Neighbor Upsampling은 다음과 같은 연산이다. (나중에 Upsampling을 한 번에 정리할 필요가 있다고 느낌) 간단하게 생각하면 upsampling 시, 채워야 하는 부분을 가까운 값의 copy로 채우는 연산이다. NN(Nearest Neighbor) Upsampling의 Backward path NN Upsampling..

[Pytorch] hook (forward_hook, backward_hook)

Hook 패키지 중간에 자기가 원하는 코드 끼워넣을 수 있는 부분 정도로 이해하면 될 듯하다! (register hook) hook: 일반적으로 hook은 프로그램, 혹은 특정 함수 실행 후에 걸어놓는 경우를 일컬음. pre-hook: 프로그램 실행 전에 걸어놓는 hook forward hook register_forward_hook: forward 호출 후에 forward output 계산 후 걸어두는 hook # register_forward_hook should have the following signature hook(module, input, output) -> None or modified output input은 positional arguments만 담을 수 있으며 (index 같은?) ..

[Object Detection] object detection 성능평가지표

Object Detection 성능의 평가 모델이 얼마나 객체 탐지를 성공적으로 수행했는가는 두 가지 측면에서 살펴볼 수 있다. 1) 얼마나 잘 탐지하는가? 2) 얼마나 빠르게 탐지하는가? 얼마나 잘 탐지하는가는 Accuracy의 측면으로, mAP로 흔히 평가한다. 얼마나 빠르게 탐지하는가는 inference time을 얼마나 단축시키는가의 측면으로, 모델의 효율성 등과 연관되며 이는 FPS로 흔히 평가한다. 얼마나 잘 탐지하는가 Precision and Recall Recall = TP / (TP+FN) = TP / # of ground truths Precision = TP / (TP + FP) = TP / # of predictions 간단히 말하면 Recall은 actual == True인 경우 ..

[Object Detection] Faster R-CNN 논문 리뷰

Faster R-CNN : Towards Real-Time Object Detection with Region Proposal Networks Idea Fast R-CNN은 selective search 수행으로 인한 region proposals(object가 있는 곳을 파악하는 과정)에서의 시간 소요 (bottleneck)가 단점으로 작용함 Faster R-CNN에서는 Region Proposals를 CNN으로 수행함으로써 속도 개선 (“Region Proposal Networks; RPNs” ) → end-to-end object detection model 구성 → 5 fps 까지의 속도 향상, Pascal VOC 기준 mAP 78.8%의 성능 개선 RPNs Region proposals 부분에서..

728x90