반응형

분류 전체보기 823

[논문 읽기] RetinaNet(2017) 리뷰, Focal Loss for Dense Object Detection

RetinaNet 논문은 모델이 예측하기 어려운 hard example에 집중하도록 하는 Focal Loss를 제안합니다. ResNet과 FPN을 활용하여 구축된 one-stage 모델인 RetinaNet은 focal loss를 사용하여 two-stage 모델 Faster R-CNN의 정확도를 능가했습니다. 클래스 불균형 문제(Class imbalance proplem) R-CNN과 같은 two-stage detector이 one-stage detector보다 높은 정확도를 나타내는 것은 일반적입니다. 하지만 one-stage detector(YOLO, SSD)는 속도가 빠르다는 장점이 있습니다. RetinaNet 저자는 one-stage detector의 낮은 정확도의 원인은 객체와 배경 클래스 불균형..

[논문 구현] PyTorch로 LeNet-5(1998) 구현하기

안녕하세요! 공부 목적으로 LeNet-5를 파이토치로 구현해보도록 하겠습니다! 논문 리뷰는 여기에서 확인하실 수 있습니다. [논문 리뷰] LeNet-5 (1998), 파이토치로 구현하기 가장 기본적인 CNN 구조인 LeNet-5 논문을 읽어보고 파이토치로 직접 구현해보면서 CNN에 대한 이해도를 높여보겠습니다. LeNet-5은 1998년 Yann LeCun의 논문 'Gradient-Based Learning Applied to Document Re.. deep-learning-study.tistory.com 전체 코드는 여기에서 확인하실 수 있습니다. Seonghoon-Yu/paper-implement-in-pytorch 공부 목적으로 논문을 리뷰하고 파이토치로 구현하고 있습니다. Contribute t..

논문 구현 2021.03.08

[확률론] 연속형 확률분포 - 감마 분포(Gamma Distribution)

고려대학교 김성범 교수님의 확률/통계 강의와 교재 'Sheldon Ross, A First Course in Probability (10th edition)' 를 공부하고 정리한 내용입니다. 감마분포(Gamma Distribution) 감마분포는 지수분포의 일반화된 형태입니다. 두 개이상의 지수분포가 합쳐지면 감마분포가 됩니다. 확률 변수 X는 k개의 이벤트가 발생할 때까지 걸리는 시간으로 정의합니다. 그리고 시간과 관련되어 있으므로 항상 0보다 큰 값을 갖습니다. 감마분포의 확률밀도함수(pdf)는 다음과 같습니다. 모수(파라미터)는 람다와 알파를 지닙니다. 감마 확률밀도함수는 감마함수를 정의하여 사용합니다. 감마함수의 특성은 다음과 같습니다. 감마분포의 모수 모수는 확률분포의 모양을 결정하는 중요한 수..

수학/확률론 2021.03.07

[논문 읽기] OHEM(2016) 리뷰, Training Region-based Object Detectors with Online Hard Example Mining

안녕하세요! 이번에 읽어볼 논문은 OHEM, Training Region-based Object Detectors with Online Hard Example Mining 입니다. 모델 구조를 개선시켜 성능을 향상시킨 논문이 아니라, 샘플링 방법을 개선하여 모델의 성능을 향상시킨 논문입니다. RetinaNet 논문을 읽다가 OHEM에 대한 내용이 이해가 안되서 OHEM을 읽어보게 되었네요ㅎㅎ Summary Fast R-CNN에서 mini-batch를 구성할 때, 두개의 이미지에서 각각 64개의 RoI를 positive, negative 1:3 비율로 샘플링하여 총 128개 RoI로 mini-batch를 구성합니다. OHEM은 loss가 높은 RoI를 선별하여 negative sample를 샘플링하는 알고..

[자료구조] DFS(깊이 우선 탐색), BFS(너비 우선 탐색) 구현

그래프 순회(Graph Traversals) 그래프 순회란 그래프 탐색이라고도 불리우며 그래프의 각 정점을 방문하는 과정을 말합니다. 그래프의 각 정점을 방문하는 그래프 순회(Graph Traversals)는 크게 깊이 우선 탐색(DFS, Depth-First Search)와 너비 우선 탐색(BFS, Breadth-First Search)의 2가지 알고리즘이 있습니다. DFS가 일반적으로 BFS에 비해 더 널리 쓰입니다. DFS는 주로 스택으로 구현하거나 재귀로 구현하며 백트래킹을 통해 뛰어난 효용을 보입니다. 반면 BFS는 주로 큐로 구현하며, 그래프의 최단 경로를 구하는 문제 등에 사용됩니다. 그래프 순회 알고리즘인 DFS와 BFS를 파이썬으로 구현해보도록 하겠습니다. 그래프를 우선 정의합니다. 그래..

Python/알고리즘 2021.03.06

[MML] ch 2. 선형 대수학(Linear Algebra)

Mathematics for Machine Learning 원서를 번역한 포스팅입니다. 영어 독해가 많이 부족합니다. 공부 목적으로 번역을 한것이므로 정확한 번역이 아니라는 점을 말씀드리고 싶습니다. 2. Linear Algebra 직관적인 개념을 공식화할 때, 가장 흔한 접근법은 기호들과 이 기호들을 다루는 규칙을 만드는 것입니다. 이는 대수학(algebra)로 알려져 있습니다. 선형 대수학(Linear algebra)는 벡터와 벡터를 조작하는 방법에 대한 공부입니다. 이 책에서 벡터는 x, y 와 같이 굵은 글씨로 나타냅니다. 벡터는 더해지고 스칼라로 곱해져 또 다른 벡터를 만듭니다. 벡터 덧셈과 스칼라 곱, 두 성질을 만족하면 벡터로 고려됩니다. 벡터의 예시를 살펴보겠습니다. 1. 기하학적인 벡터(..

[확률론] 연속형 확률분포 - 지수 분포(Exponential distribution)

고려대학교 김성범 교수님의 확률/통계 강의와 교재 'Sheldon Ross, A First Course in Probability (10th edition)' 를 공부하고 정리한 내용입니다. 지수 분포(Exponential Distribution) 정규분포 다음으로 많이 쓰이는 지수분포입니다. 지수분포는 항상 시간을 떠올려야 합니다. 지수 분포는 이벤트 사이의 시간(이벤트 A와 이벤트 B 사이에 걸린 시간)을 모델링하는데 많이 이용합니다. 각 이벤트는 포아송분포에 의해서 생성됩니다. 지수 분포의 모수(parameter)는 람다($\lambda$) 입니다. 람다는 단위 시간동안 평균 이벤트 발생횟수를 의미합니다. 포아송 분포의 모수와 동일합니다. 포아송 분포와 지수 분포는 밀접한 관계가 존재합니다. 이 둘..

수학/확률론 2021.03.06

[PyTorch] 러닝 레이트 스케쥴러(Learning Rate Scheduler) ReducedLROnPlateau 함수

파이토치는 learning late scheduler로 ReduceLROnPlateau 함수를 제공합니다. ReduceLROnPlatea 함수는 val_loss가 향상되지 않고 정체되어 있으면 learning late를 factor배로 감소시킵니다. # define a learning rate schedule from torch.optim.lr_scheduler import ReduceLROnPlateau lr_scheduler = ReduceLROnPlateau(opt, mode='min', factor=0.5, patience=20, verbose=1) # try it out for i in range(100): lr_scheduler.step(1) patience를 20으로 설정했기 때문에, 20 ..

[PyTorch] Single Object Detection 모델 생성하기

Single object detection을 위한 간단한 모델을 생성하겠습니다. convolutional layer, pooling layer, skip connection을 활용한 모델입니다. # implement the model class import torch.nn as nn import torch.nn.functional as F # define the bulk of the model class class Net(nn.Module): def __init__(self, params): super(Net, self).__init__() C_in, H_in, W_in = params['input_shape'] init_f = params['initial_filters'] num_outputs = pa..

[PyTorch] 커스텀 데이터셋(custom dataset) 생성하기

AMD dataset을 사용하여 custom dataset을 생성해보겠습니다. AMD dataset은 amd.grand-challenge.org/ 여기에서 다운로드 받으실 수 있습니다. # create the training and validation datasets and the data loaders from torch.utils.data import Dataset from PIL import Image class AMD_dataset(Dataset): def __init__(self, path2data, transform, trans_params): pass def __len__(self): # return size of dataset return len(self.labels) def __getit..

반응형