AI Research Topic/Deep Learning

    [Deep Learning] Faster Non-Maximum Suppression

    기존 NMS 대비 빠른 Faster NMS의 속도 향상의 요인은 for 문을 사용하여 각 상자에 접근하는 대신 np.maximum 및 np.minimum 함수를 사용하여 코드를 벡터화 시키는데 있다. Faster NMS 구현 # import the necessary packages import numpy as np # Malisiewicz et al. def non_max_suppression_fast(boxes, overlapThresh): # if there are no boxes, return an empty list if len(boxes) == 0: return [] # if the bounding boxes integers, convert them to floats -- # this is im..

    [Deep Learning] Pre-trained model로 gray image를 학습하는 방법

    보통 pre-trained model(ResNet 50, ...)의 경우 RGB 3채널을 가지는 color image 를 기반으로 학습을 진행하기 때문에 모델의 입력 정보는 (height, weight, channel=3) 으로 이루어지게 된다. 따라서 이러한 모델에 임의로 1채널을 가지는 gray image를 입력할 경우 shape error 가 발생하게 된다. 이는 단순히 모델의 첫 레이어의 채널을 변경한다고해서 해결되지 않는다. 정확히 말하면 에러는 해결되지만 학습 진행이 안된다. 따라서 pre-trained model로 gray image를 학습시키는 법은 다음과 같다. 1. 첫번째 conv layer 의 채널을 1로 변경하기 2. pretrained weight load 시 1채널로 변경된 첫번..

    [Deep Learning] Gradient clipping 사용하여 loss nan 문제 방지하기

    Gradient clipping 을 하는 이유는 한마디로 학습 중 Gradient Vanishing 또는 Exploding 이 발생하는 것을 방지하여 학습을 안정화 시키기 위함이다. 학습하고자 하는 모델이 RNN 이나 DNN 같은 강한 비선형 목적함수를 가지고 있을 경우에에 미분값은 매우 크거나 작아지는 경향이 있다. 이러한 결과는 여러개의 큰 가중치값을 곱할때 생기게 되는데, 이러한 가파른 지역에 다다르게되면, Backpropagation 과정에서의 Gradient Update Step 에서 파라미터들이 굉장히 크게 움직일 수 있다. 파라미터들이 크게 움직이게 되면 여태 진행했던 학습 Epoch 들이 무효화 될 수 있다. 즉 모델 학습 시 loss nan 문제를 겪을 수 있다. Gradient는 현재 ..

    [Deep Learning] 딥러닝에서 Synthetic Dataset 을 이용하여 학습하는 연구들

    학습 데이터가 부족할 때 가상 세계에서 얻어진 데이터를 이용해 볼 수 있다. 즉 언리얼 엔진을 이용하여 만들어진 GTA 게임에서 Synthetic DataSet 을 생성하여 데이터를 보완 해 볼 수 있다. (GTA 게임 안해봄...) 찾아보니 관련 연구가 여러가지 있었는데 보통 Teacher-Student 형태의 학습 방식을 사용한다. 즉 대규모 데이터인 Synthetic Dataset을 이용하여 Teacher Net 을 구성하여 Pre-training 하고, Real Dataset 을 이용하여 Student Net 을 구성함으로써 fine-tuning 하는 방식이다. Synthetic Dataset 에는 보통 자율 주행 환경 (Car, Person Segmentation, ..) 데이터가 많았으며, 안..

    [Deep Learning] Weight Standardization (+ 2D, 3D 구현 방법)

    Weight Standardization Paper : arxiv.org/abs/1903.10520 Micro-Batch Training with Batch-Channel Normalization and Weight Standardization Batch Normalization (BN) has become an out-of-box technique to improve deep network training. However, its effectiveness is limited for micro-batch training, i.e., each GPU typically has only 1-2 images for training, which is inevitable for many computer v arxi..