Paper : https://arxiv.org/pdf/2212.06137.pdf GitHub : https://github.com/jozhang97/DETA GitHub - jozhang97/DETA: Detection Transformers with Assignment Detection Transformers with Assignment. Contribute to jozhang97/DETA development by creating an account on GitHub. github.com Introduction 오늘 읽어볼 논문은 2022년 12월 쯤 나온 "NMS Strikes Back" 라는 논문입니다. Object Detection 모델 중 DETR(Detection Transformer)라는 ..
이번에 읽을 논문은 컴퓨터 비전 분야에서 딥러닝 모델에 적용할 수 있는 Attention 방법에 대한 Survey 논문입니다. 딥러닝에 적용할 수 있는 Attention 방법들을 보기 좋게 정리해둔 사이트는 아래와 같습니다. 최근까지도 업데이트 되는 듯 합니다. 😎 (보통 GitHub에 Research Topic과 "Awesome"이라는 단어를 조합하여 검색하면 누군가 열심히 정리해둔 레포지토리가 나옵니다.) https://github.com/MenghaoGuo/Awesome-Vision-Attentions GitHub - MenghaoGuo/Awesome-Vision-Attentions: Summary of related papers on visual attention. Related code wil..
보통 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채널로 변경된 첫번..
저번에 페이스북에서 ResNet strikes back: An improved training procedure in timm 이라는 논문이 나왔다는 게시글을 보고 논문을 살펴보았습니다. 이 논문은 pytorch-image-models github (a.k.a timm)의 원작자인 Ross Wightman의 논문입니다. Ross-Wightman-github 에 들어가보니 소개글에 아래와 같이 적혀있었습니다. 개인적으로 깊이 감명 받았습니다. 🤩 Always learning, constantly curious. Building ML/AI systems, watching loss curves. 아무튼, 이 논문은 모델을 학습하는데 있어서 기본적이면서도 유용한 테크닉들이 잘 소개되어 있으며, 제안하는 학습방법..
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..
기존 DCN(Deformable Convolutional Networks) 설명은 아래 포스팅을 참고하기 바란다. 2020/03/08 - [AI Research Topic/Object Detection] - [Object Detection] Deformable Convolutional Networks Github : github.com/CharlesShang/DCNv2 CharlesShang/DCNv2 Deformable Convolutional Networks v2 with Pytorch. Contribute to CharlesShang/DCNv2 development by creating an account on GitHub. github.com Paper : arxiv.org/pdf/1811.111..
Paper : https://arxiv.org/pdf/1910.03151.pdf Github : https://github.com/BangguWu/ECANet BangguWu/ECANet Code for ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks - BangguWu/ECANet github.com ECA-Net 은 기존에 알려져있는 SENet 보다 성능이 좋아서 Object Detection, Image Classification, Object Segmentation 분야에서 사용되고 있는 모델이다. 기존 일반적인 CNN 구조에서는 Local Receptive Field 만을 가지고 학습을 하기 때문에 전체적인 ..
BAM 및 CBAM 개요 Self-Attention 의 대표적인 네트워크인 BAM(Bottleneck Attention Module) 및 CBAM(Convolutional-BAM) 모듈을 잠깐 설명하도록 하겠다. 일단 두 모듈 모두 3D Attention Map 을 Channel-wise / Spatial-wise 로 분해하여 계산한다. 연산 및 파라미터 오버헤드는 1~2% 수준으로 매우 미미한 편이라고 한다. 이 두 모듈 모두 아주 단순한 pooling 및 convolution 으로 이루어져있다. BAM (Bottleneck Attention Module) 위와 같이 BAM 은 각 네트워크의 bottleneck 에 위치하게 된다. 여기서의 bottleneck 은 spatial pooling 이 이루어지..
학습률 (Learning Rate) 학습률은 아주 중요한 하이퍼파라미터이며, 일반적으로 최적의 학습률은 최대 학습률의 절반 정도라고 한다. 좋은 학습률을 찾는 한 가지 방법은 매우 낮은 학습률 (예를 들면 10^-5) 에서 시작해서 점진적으로 매우 큰 학습률 (예를 들면 10)까지 수백 번 반복하여 모델을 훈련하는 것이다. 반복마다 일정한 값을 학습률에 곱한다. 로그 스케일로 조정된 학습률을 사용하여 학습률에 대한 손실을 그래프로 그리면 처음에 손실이 줄어드는 것이 보인다. 하지만 잠시 후 학습률이 커지면 손실이 다시 커진다. 최적의 학습률은 손실이 다시 상승하는 지점보다 조금 아래에 있을 것이다. 일반적으로 상승점보다 약 10배 낮은 지점이라고 한다. 그 다음 모델을 다시 초기화하고 앞에서 찾은 학습률..
CBAM 논문을 살펴보았다. 저자가 한국인이라서 그런지 몰라도 논문 이름부터 시작해서 논문이 잘 읽히는 편이었고, 이미 저자가 논문을 정리해 놓은 자료도 있어서 이해하기 수월했다. CBAM 논문은 BAM(Bottleneck Attention Module) 에 이어 나온 논문이다. 두 논문 모두 CNN의 성능 향상을 위한 Self-attention Module 을 제안하고 있다. 여기서는 CBAM 의 내용을 주로 다루기로 한다. CNN 계열에서 Attention 개념은 주로 Image Captuioning 처럼 multi-modal 간의 관계를 이용한 feature selection 에서 많이 사용되었다고 한다. Attention 이라는 것 자체가 어떠한 특성에 대하여 "집중"하는 것인데, Image Cl..
활성화 함수(Activation Function)는 입력을 받아 활성, 비활성을 결정하는데 사용되는 함수이다. 어떤 활성화 함수를 사용하느냐에 따라 그 출력 값이 달라지기 때문에 적절한 활성화 함수를 사용하는 것이 매우 중요하다. 보통 어떠한 임계 값을 기준으로 활성화 되거나 혹은 비활성화 되는 형태를 가진다. 기존 활성화 함수들 Swish Swish 는 매우 깊은 신경망에서 ReLU 보다 높은 정확도를 달성한다고 한다. 또한 모든 배치 크기에 대해 Swish 는 ReLU 를 능가하며, 모든 x < 0 에 대해 함수를 감소시키거나 증가시키지 않는다고 한다. Mish 와 마찬가지로 bounded below, unbounded above 특징을 가진다. Mish Mish 는 그래프가 무한대로 뻗어나가기 때문..
MediaPipe Github : https://github.com/google/mediapipe google/mediapipe MediaPipe is the simplest way for researchers and developers to build world-class ML solutions and applications for mobile, edge, cloud and the web. - google/mediapipe github.com MediaPipe Document : https://mediapipe.readthedocs.io/en/latest/ MediaPipe — MediaPipe v0.5 documentation Alpha Disclaimer MediaPipe is currently i..
기존 2차원 컨볼루션은 세가지 문제점이 존재한다. Expensive Cost Dead Channels Low Correlation between channels 또한, 영상 내의 객체에 대한 정확한 판단을 위해서는 Contextual Information 이 중요하다. 가령, 객체 주변의 배경은 어떠한 환경인지, 객체 주변의 다른 객체들은 어떤 종류인지 등. Object Detection 이나 Object Segmentation 에서는 충분한 Contextual Information을 확보하기 위해 상대적으로 넓은 Receptive Field 를 고려할 필요가 있다. 일반적으로 CNN에서 Receptive Field 를 확장하기 위해서는 커널 크기를 확장한다던지, 더 많은 컨볼루션 레이어를 쌓는 방법을 ..
사람은 역시 기본에 충실해야 하므로 ... 딥러닝의 기본중 기본인 배치 정규화(Batch Normalization)에 대해서 정리하고자 한다. 배치 정규화 (Batch Normalization) 란? 배치 정규화는 2015년 arXiv에 발표된 후 ICML 2015에 게재된 아래 논문에서 나온 개념이다. Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift https://arxiv.org/pdf/1502.03167.pdf Gradient Vanishing / Exploding 문제 신경망에서 학습시 Gradient 기반의 방법들은 파라미터 값의 작은 변화가 신경망 출력에 얼마나 영향을 미칠 ..
1. CNN, Convolutional Neural Network 개념 Convolutional Neural Network(이하 ConvNet)은 합성곱(Convolution) 연산을 사용하는 인공 신경망의 한 종류이다. ConvNet과 일반적인 신경망의 가장 큰 차이점은 ConvNet은 입력 데이터가 이미지라는 것이다. 이미지는 다음과 같이 행렬 형태로 이루어져있으며 또한, 이미지는 Width x Height x Depth 형태로 이루어져있다. 숫자 32가 의미하는 바는 픽셀 수를 뜻한다. 또한 ConvNet의 가장 큰 특징은 일반적인 신경망 앞에 여러 합성곱 계층을 붙인 형태로 이루어진다. (1). 특징 추출(Feature Extraction)(2). 분류(Calssification) 다음 그림과 같..
참고자료 : 신경망 첫걸음 (한빛미디어) 딥러닝에서의 Hello World는 손글씨 숫자 이미지를 인식하는 것이다. MNIST 데이터셋 MNIST 데이터셋은 훈련용 55000개 및 테스트용 1만개로 이루어진 손글씨 숫자의 흑백 이미지 데이터이다. 이 데이터는 http://yann.lecun.com/exdb/mnist 에서 다운 받을 수 있다. 이미지를 다루는 경우에 데이터 전처리나 포매팅이 중요하지만, 이는 시간이 많이 걸리는 부분이다. 그러므로 이 데이터셋은 딥러닝을 시작하기에 안성맞춤이라고 한다. 이 흑백 이미지는 가로세로 비율은 그대로 유지하고 20x20 픽셀로 정규화 되어있다. 정규화 알고리즘 (가장 낮은 것에 맞춰 전체 이미지 해상도를 감소)에는 앤티에일리어싱 처리가 되어 이들 이미지에는 회색 ..
참고자료 1 : medium.com/mathpresso참고자료 2 : http://gdyoon.tistory.com/9참고자료 3 : 텐서플로 첫걸음 (한빛미디어) 1. 회귀분석 (Regression) Pose Estimation에 대한 자료를 찾다보면 Keypoints detection에서 heatmap을 이용한 포즈추정시 Regression 이라는 개념이 많이 등장한다. 사실 이 개념은 머신러닝에서 나오는 개념이며, 이번 기회에 정리해보도록 한다. 회귀분석이란 주어진 데이터가 어떤 함수로부터 생성되었는가를 알아보는 '함수 관계'를 추측하는 것이다. 즉, 훈련 데이터세트 (X, Y) 로 부터 학습알고리즘을 이용하여 가설을 생성하고, 생성된 가설에 데이터를 입력하여 예측 값 데이터를 얻는 것이다. 이러한..
Pre Training 이란? 선행학습(pre-training) 사전훈련(pre-training) 전처리과정(pre-training) 이라고도 하는데, 이는 Multi Layered Perceptron (MLP)에서 Weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 Pre-training을 통해서 효과적으로 layer를 쌓아서 여러개의 hidden layer도 효율적으로 훈련 할 수 있다. 또한, 이는 unsupervised learning이 가능하기 때문에(물론 이러한 가중치와 편향 초기화가 끝나면 레이블 된 데이터로 supervised learning 해야 한다 -> fine tuning) 레이블 되지 않은 큰 데이터를 넣어 훈련 시킬 수 있다는 점을 장점으로 들 수 있다. 또한 Drop-..
논문을 읽다가 이해가 안되던 end-to-end trainable neural network 의 의미를 알아보도록 하자. 모델의 모든 매개변수가 하나의 손실함수에 대해 동시에 훈련되는 경로가 가능한 네트워크로써 역전파 알고리즘 (Backpropagation Algorithm) 과 함께 최적화 될 수 있다는 의미이다. 예를들어 인코더(언어의 입력을 벡터로)와 디코더(벡터의 입력을 언어로)에서 모두가 동시에 학습되는 기계 번역 문제에서 효과적으로 적용 될 수 있다. 즉, 신경망은 한쪽 끝에서 입력을 받아들이고 다른 쪽 끝에서 출력을 생성하는데, 입력 및 출력을 직접 고려하여 네트워크 가중치를 최적화 하는 학습을 종단 간 학습(End-to-end Learning) 이라고 한다. Convolutional neu..