Computer Vision
- Inverse rendering (Rendering은 Computer Graphics)
Machine Learning 에서 Deep Learning 로
- Feature extraction + Classification (엔드투엔드로)
Classifier
- k Nearest Neighbors (k-NN)
Convolutional Neural Networks (CNN)
- fully connected : 탬플릿이 조금만 달라져도 다른 결과
- locally connected : 더 적은 파라미터로 효과적
- 영상에 적합하여 다양한 CV tasks에 backbone으로 쓰임
- Image-level classification, Classification+Regression, Pixel-level classification
AlexNet
- LeNet-5 : 심플한CNN
- 더 크고 , 더 많은 학습데이터에, 더 나은 activation function (ReLU), regularization technique (dropout)
- 5 convolutional layers, 3 fully-connected layers
- Local Response Normalization (LRN) : 명암을 normalization 하는데 이제 안씀 (Batch normalization으로...)
- 11x11 convolution filter 같은 큰 필터도 이제 안씀
- Receptive field : KxK conv. filters, PxP pooling layer (P+K-1)x(P+K-1)
VGGNet
- Deeper, Simpler, Better performance, Better generalization
- Input은 AlexNet과 같은 224x224 RGB
- 3x3 convolution filters, 2x2 max pooling perations, 3 FC
Data augmentation
- Brightness adjustment
- Rotate, flip
- Crop
- Affine transformation (shear)
- CutMix
RandAugment
- 랜덤하게 수행하고 좋은 성능 서치
Transfer learning
- 한 데이터셋에서 학습을 다른 데이터셋에서 사용
- FC layer만 새로 업데이트하여 학습하거나 Convolution Layer는 Low learning rate로 학습
Knowledge distillation (Teacher-student learning)
- Teacher Model 과 Student Model 간의 KL div. Loss 로 학습 : label을 사용 안함
- label이 있으면 Distillation Loss (KLdiv) 와 Student Loss (CrossEntropy) 둘을 사용
- Hard label (One-hot vector), Soft label
- Softmax with temperature(T) : 분포를 퍼트려서 soft하게 만듦
Semi-superviesd learning
- Pseudo-labeled dataset : Unlabeled dataset을 pre-trained model로 생성
- Labeled dataset과 Pseudo-labeled dataset을 합쳐서 Model 학습
Self-training
- Augmentation + Teacher-Student networks + semi-supervised learning
Deeper network
- Gradient vanishing / exploding, Computationally complex, Degradation problem
GoogLeNet
- Inception module : 하나의 레이어에 여러 필터들 적용
- 1x1 convolutions : bottleneck, 채널 수를 줄여줌
- Auxilliary classifier : vanishing 방지, 학습시에만 사용
ResNet
- Degradation problem : 레이어가 높게 쌓을수록 최적화가 잘 안되는 문제
- Shorcut (skip) connection : vanishing 문제 해결, 경로의 수 2^n으로 복잡한 맵핑 학습
DenseNet
- Dense blocks : 모두 연결, ResNet과 다르게 더하지 않고 concat
SENet
- Squeeze : golbal average pooling
- Excitation : attention weight
EfficientNet
- width, depth, resolution scaling을 적절한 비율로 compound scaling
Deformable convolution
- offset field에 따라 irregular grid sampling
CNN backbones
- GoogLeNet이 효과적이지만 쓰기 힘들어 VGGNet, ResNet을 많이 사용
Semantic segmentation
- 픽셀 단위 분류
Fully Convolutional Networks (FCN)
- 사이즈 호환성 높은 구조
- Fully connected layer 를 Fully convolutional layer (1x1 convolutions) 로
- Upssampling : Transposed convolution 에서 NN-resize, Bilinear-resize covolution 으로
- 중간단계의 특징을 합하는 것이 도움이 됨
U-Net
- Contractiong Path : 일반적 CNN과 동일
- Expanding Path : 단계별로 upsampling, Contractiong Path 대응되는 레이어 concat
- feature sizes 짝수여야함
DeepLab
- Conditional Random Fields (CRFs) : 경계를 잘 찾도록 하는 후처리 툴
- Dilated convolution (Atrous convolution) : weight 사이를 띄어서 더 넓은 영역 고려
- Depthwise separable convolution : 채널별로 Depthwise convolution 한 후 1x1 Pointwise convolution
Object detection
Gradient-based detector
- HOG(Histogram of Oriented Gradients), SVM(Support Vector Machine)
Selective search
- 비슷한 색끼리 나누고 합치고
Two-stage detector
- R-CNN, Fast R-CNN, Faster R-CNN
- IoU (Intersection over Union) : 교집합 / 합집합
- Anchor boxes : 미리 정해진 후보 박스
- Non-Maximum Suppression (NMS)
One-stage detector (Single)
- 정확도를 포기하더라도 속도를 빠르게, real-time
- You only look once (YOLO)
- Single Shot MultiBox Detector (SSD)
Focal loss
- Class imblance 문제를 해결해 RetinaNet 제시
DETR
- Transformer를 적용
CNN visualization
- filter visualization : 큰 의미 없음
Embedding feature analysis
- Nearest neighbors (NN) : 비슷한 이미지 탐색
- Dimensionality reduction : 이차원으로 줄여서 (t-SNE) 맵핑
Activation investigation
- Layer activation : 히든 노드가 바라보는 곳을 나타냄
- Maximally activating patches : 히든 노드 중 가장 높은 값인 곳
- Class visualization : 클래스에 대해 높은 값을 취하는 이미지 (Regularization term)
Saliency test
- Occlusion map : 마스크로 가려서 예측될 확률
- Backpropagation : 특정 사진으로 클래스 검출에 영향을 미친 부분, gradient magnitude map
- Rectified unit (backward pass), Guided backpropaation : 음수 값 0으로 마스크
- Class activation mapping (CAM) : 히트맵 (Global average pooling (GAP) 필요)
- Grad-CAM : 재학습 필요 없음
- SCOUTER : 왜 아닌지까지
Autograd
- Automatic gradient calculating API
- requires_grad : True로 grad를 가질 수 있는 변수로 선언
- backward : 두번 호출 하기 위해 retain_graph = True
- grad_fn : 연산에 대한 생성자
- hook : gradient를 계산할 때 마다 낚아채자
- register_forward_hook, register_forward_pre_hook, register_backward_hook
- remove : register된 hook을 지움
Instance segmentation
- Mask R-CNN : RoIAlign, Faster R-CNN + Mask branch
- YOLACT (You Only Look At CoefficienTs) : 선형결합으로 다양한 마스크 생성
- YolactEdge : feature 재활용으로 소형화
Panoptic segmentation
- UPSNet : Semantic & Instance head -> Panoptic head -> Panoptic logits
- VPSNet (for video) : 이전 프레임과 연관성을 담음
Landmark localization
- Coordinate regression : 부정확, 일반화에 문제
- Heatmap classification : 계산량이 많음, Landmark location to Gaussian heatmap (Take-home assignment는 반대로)
- Hourglass network : U-Net과 비슷한 구조가 여러개 쌓임, cancat 대신 더하고, skip도 conv layer를 통과
- DensePose R-CNN : human body를 UV map 표현으로, Faster R-CNN + 3D surface regression branch
- RetinaFace : FPN + Multi-task branches
Keypoints
- CornerNet : Bounding box의 코너 페어를 찾아서 빠르게
- CenterNet : Center 포인트도 추가, 코너 대신 Width와 Height 포인트로
Conditional generative model
- 주어진 condition에서 random sample
- audio super resolution, machine translation, article generation with the title
Conditional GAN
- conditional input이 추가됨
- Image-to-Image translation : Style transfer, Super resolution, Colorization 등
- Super resolution (SRGAN) : low resolution to high resolution, MAE/MSE loss 보단 GAN loss, realistic and sharp
Pix2Pix
- GAN loss + L1 loss 을 Total loss 로
CycleGAN
- non-pairwise dataset으로 학습
- GAN loss + Cycle-consistency loss 를 CycleGAN loss 로, 복원이 되게끔 유도
Perceptual loss
- GAN loss 보다 학습과 코드가 simple하지만 pre-trained network 필요
- Style Target과 Content Target를 Pre-trained loss network로 비교
GAN apps
- Deepfake, Face de-identification, Video translation (manipulation)
multi-modal
- 데이터의 표현 방법이 다름, 정보양과 피처의 비대칭, 특정 모달에 편중
- Matching, Translating, Referencing
Text embedding
- word2vec (Skip-gram model) : 주변 워드 간의 관계성 학습 유도
Joint embedding (Matching)
- Image tagging : Combining pre-trained unimodal models
- Image & food recipe retrieval
Cross modal translation (Translating)
- Image captioning : Show, attend, and tell - Attention, Inference
- Text-to-image by generative model
Cross modal resoning (Referencing)
- Visual question answering : End-to-end training
Sound representation
- Fourier transform (FT), Short-time Fourier trnasform (STFT), Spectrogram
Joint embedding (Matching)
- Scene regonition bt sound : SoundNet
Cross modal translation (Translating)
- Speech2Face
- Image-to-speech synthesis
Cross modal resoning (Referencing)
- Sound source localization : Unsupervised version 가능, Semi-supervised version은 양쪽 loss 모두 사용
- Looking to listen at the cocktail party
- Lip movements generation
'부스트캠프 AI Tech' 카테고리의 다른 글
GitHub 제대로 쓰기 (0) | 2023.12.14 |
---|---|
[WEEK 6-7] CV 기초 프로젝트 (0) | 2023.12.11 |
데이터 직군에 대한 지식 쌓기 (0) | 2023.11.30 |
[WEEK 3-4] Data Visualization (1) | 2023.11.23 |
[WEEK 3] DL Basic (0) | 2023.11.20 |