앎을 경계하기

deeplearning 13

[YOLO 정독] YOLO v2 (YOLO 9000)

YOLO v1에 이어 v2에 대한 정리글을 쓴다. YOLO v2 논문 구조가 매우 신박하다. intro, conclusion 사이에 Main Idea에 대해 Better, Faster, Stronger로 나눠서 설명한다. (보통 intro, related work, method, experiment, conclusion 순) 오히려 좋아 지난 v1과 비교했을 때 달라지는 부분들이 몇 개 있기 때문에 이러한 부분들에 집중해서 포스팅을 해야겠다. 먼저 달라진 점은 v1에서는 20개의 카테고리를 대상으로 Object Detection을 진행하였다. 하지만 객체검출이라하면.. 일반적으로 매우 많은 사물에 대해서도 잘 동작해야한다. 예를 들어, 나무, 사람은 검출하면서 컵은 검출못한다면..? 검출할 수 있는 객체..

[YOLO 정독] YOLO v1

YOLO는 "You Only Look Once"라는 논문으로 세상에 나오게 되었다. 작명센스가 미쳤다.. You only live once 아님 ^^ YOLO의 핵심은 "one stage object detection"이라는 것이다. YOLO가 발표되기전 최신논문이었던 R-CNN 계열은 바운딩박스 후보군을 생성하는 region propose part와 bounding box 정보를 예측하는 Bounding box regressor와 해당 바운딩박스의 클래스를 분류하는 classfier를 따로 따로 나눠서 학습시킨다. 이것을 two-stage object detection이라고 함. 아무튼 그러다보니 R-CNN은 학습이 느리고 최적화가 어렵다. (각 역할마다 모델을 다 따로따로 분리해놨으니 당연히 최적화가..

[Pytorch Tutorials] Image and Video - Transfer Learning for Computer Vision Tutorial

이번 튜토리얼에서는 transfer learning(전이학습)을 사용하여 image classification용 CNN을 어떻게 학습하는지를 배운다.transfer learning의 두 가지 주요 시나리오는 다음과 같다.Finetuning the convnet랜덤 초기화 대신, imagenet 데이터셋으로 학습된 모델같이 pretrained network를 사용하여 네트워크를 초기화한다.ConvNet as fixed feature extractor마지막 fully connected layer를 제외한 모든 레이어의 weight를 고정시키고, 마지막 fully connected layer를 랜덤 weight로 새롭게 구성하고 그것만 학습시킨다.from __future__ import print_functi..

Machine Learning 2021.03.16

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - TRAINING A CLASSIFIER

What aoubt data?일반적으로 이미지, 텍스트, 비디오, 오디오 데이터를 다룰 때 numpy array로 데이터를 읽고 torch의 tensor로 변환한다. 각 데이터마다 유용하게 사용하는 라이브러리가 존재한다.Images : Pillow, OpenCVAudio : scipy, librosaText : NLTK, SpaCy특히 vision 분야에서는 torchvision을 사용해서 유명한 데이터셋을 불러서 사용할 수 있다.torchvision.datasets, torch.utils.data.DataLoader 유명 이미지 데이터셋 중 하나인 CIFAR10을 사용해보자.CIFAR10은 RGB 컬러 32*32 사이즈 이미지의 총 10개의 카테고리로 이루어져있는 이미지 데이터셋이다. Training ..

Machine Learning 2021.03.08

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - NEURAL NETWORKS

NEURAL NETWORKSNeural Networks는 torch.nn 패키지를 사용해서 만들 수 있다.매우 유명한 Yann Lecun의 LeNet-5 CNN 구조이다.구조는 굉장히 간단하다.32*32 필기체 숫자 이미지를 넣으면 Convolution layer와 Fully Connected layer를 거쳐 최종적으로 필기체로 쓴 숫자가 무엇인지 output이 출력된다.이러한 뉴럴 네트워크 모델들이 학습이 되는 과정은 일반적으로 다음과 같다.학습가능한 파라미터들로 이뤄진 뉴럴넷을 만든다.반복적으로 입력 데이터셋을 뉴럴넷에 전달한다.정답과 예측값 간 차이, 즉 loss를 계산한다.backpropagation 과정을 통해 뉴럴넷의 파라미터들의 각 gradient를 계산한다.네트워크의 weights를 gr..

Machine Learning 2021.03.08

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - TORCH.AUTOGRAD

torch.autogradPyTorch는 자동 미분 계산을 지원한다.이번 섹션에서는 neural network 학습을 위해 어떻게 자동미분을 적용하는지 개념적으로 이해하도록 한다.Background뉴럴넷은 어떠한 입력 데이터에 대해 실행되는 연결된 함수들(신경망)의 집합이다.이러한 함수들은 weight와 bias로 구성된 parameters에 의해 정의되고, 이것들은 Tensor 형태로 저장된다.뉴럴네트워크 학습 과정은 크게 2단계로 나눌 수 있는데, forward propagation과 backward propagation이다.Forward propagationinput data를 각 함수들에 대해 통과시켜서 가장 옳은 output을 만들어내는 과정이다.Backward propagationforward..

Machine Learning 2021.03.05

[VISION 논문 읽기] simple copy-paste is a strong data augmentation method for instance segmentation

두 장의 이미지에서 한 장을 source, 나머지 한 장을 target으로 하여 source 이미지 내 객체들의 부분 집합을 선택해 target 이미지에 붙여넣음으로써 어렵고, 새로운 이미지 데이터셋을 만들 수 있다. 코드 이식성이 좋아서 쉽게 다른 모델을 사용할 때 data augmentation 적용할 수 있으며 여러 실험을 진행해본 결과, (object detection, instance segmentation, semantic segmentation, self-supervised learning ...)성능 또한 우수함. 데이터가 적은 상황에서 데이터 효율성을 끌어올릴 수 있다. YOUTUBE : youtu.be/jPWHdj2caC8

Hierarchical multi-scale attention for semantic segmentation

ABSTRACTsemantic segmentation의 성능을 개선시키기 위해 Multi-scale inference를 사용한다. 여러 스케일의 이미지가 네트워크를 통과하고 그 결과가 averaging 또는 max pooling 연산을 통해 결합된다. 이 논문에서는 multi-scale로 예측한 결과를 결합하기 위해 attention을 사용하는 접근법을 소개한다. 특정 스케일들로 예측하는 것은 특정 고장난 형태를 해결하는 데 더 효과적이다. 그리고 네트워크는 더 나은 예측을 하기 위해서 이러한 스케일들을 선호하는 것을 학습한다. 이 논문에서 사용되는 attention mechanism은 계층적이다. 이 방법은 다른 최근 접근법들보다 학습하는데 대략 4배 더 메모리 효율적이다. 게다가 학습할 때 더 크게 ..

[머신러닝 개념정리] Normalization/Standardization/Regularization

Normalization/Standardization/Regularization Data preprocessing을 위해 Normalization, Standardization과 같은 방법을 사용한다. model의 weight가 overfitting하는 것을 막기 위해 Regularization을 사용한다. Normalization original data distribution을 (0, 0)으로 shift 한 후, 분포의 범위를 [0,1]로 rescale 하는 방법 $$ \frac{X-\min(X)}{\max(X)-\min(X)} \ or \ \frac{X-\mu}{\sigma} \ \text{2번째는 standardization이기도 함.} $$ 사용하는 이유 Local minimum에 빠질 가능성을..

Machine Learning 2020.04.08