이번에는 MobileNet V1을 직접 구현해보았다. 확실히 ResNet, VGGNet보다 학습속도가 빠르다는 것을 확인할 수 있었다. 1. Setup 이전 구현과 똑같이 세팅을 했다. import torch.nn as nn import torch import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as optim import time import numpy as np import random import torch.backends.cudnn as cudnn seed = 2022 torch.manual_seed(seed) torch.cuda..
이번 글에서는 ShuffleNet논문을 간단하게 리뷰해보려 한다. Intro와 Architecture 중심으로 작성해보겠다. 0. Abstract 이 논문에서는 Mobile 장치에 특화된 extremely computation-efficient CNN인 ShuffleNet을 소개한다. ShuffleNet은 Channel shuffle과 pointwise group convolution operation을 이용하여 computation cost는 낮추면서도 accuracy는 유지하여 MobileNet보다 더 좋은 효율을 보여준다. 1. Intro 현재 트렌드는 CNN을 더 깊게, 더 크게 design하여 성능을 올리는 것이다. 하지만 현재 SOTA 모델들은 layer도 수백개, channel은 수천개에 달..
이번에는 MobileNet v1 논문에 대해서 간단하게 리뷰해보려고 한다. 1. Intro AlexNet 이후로 CV분야는 딥러닝 네트워크를 중심으로해서 많은 발전을 이뤄냈다고 언급한다. Network의 연구는 대부분 더 깊게 쌓고, 복잡하게 구성하여 parameter수를 늘려 performance를 증가시키는 방향으로 진행되고 발전해왔다고 한다. 하지만 그것이 size, speed 관점에서는 더 효율적이라고 말할 수는 없다는 것이 이 논문의 핵심이다. 로보틱스, 자율주행, AI가 탑재된 앱 등 다양한 Recognition Task에서 제한된 플랫폼(하드웨어 성능)에서 빠른 정보전달이 중요하다고 말한다. 이 논문에서는 작은 parameter를 통한 size와 low latency를 목적으로 두 개의 Hy..
지난 글에서 Eigen Value, Eigen Vector를 구하고 이를 통한 Matrix의 Eigen Decomposition에 대해서 알아보았다. 이번 포스팅에서는 일반적인 직사각형의 matrix에 대한 Decompostion이 가능한 SVD(Singular Value Decomposition) 에 대해서 작성해보려고 한다. SVD는 Singular Value Decomposition의 약자로 m by n matrix를 여러개의 간단한 형태로 Decomposition 하는 것을 의미한다. Eigen Decomposition과 비슷하지만 어떤 matrix 더라도 Decomposition이 가능하다는 것이 큰 특징이다. SVD와 Eigen Vectors는 큰 연관성을 갖는다. 어떤 matrix $A$에 ..
지금까지 AlexNet, VGGNet, ResNet, DenseNet을 리뷰해봤다. 모델의 성능을 올리기위해 개선했던 방향은 여러가지가 있지만 크게 Layer의 Depth를 깊게하거나 각 Layer의 width(feature 수)를 크게 하거나 Resolution을 높이는 방향으로 전개되었다. efficientnet은 3가지 조건에 대한 적절한 비율을 찾아내어 적은 epoch으로 높은 성능을 보여주는 이름 그대로의 효율적이면서 높은 성능을 보여주었다. 그래서 이번에는 EfficientNet 논문을 리뷰해보려고 한다. 1. Abstract 이 논문은 model scaling과 Depth, width, resolution의 적절한 비율을 통해 더 좋은 성능을 이끌어낼 수 있음을 연구했다. 그래서 효율적인 c..
실생활문제를 해결하기위해 머신러닝, 딥러닝 모델이 많이 활용되고 있다. 이번 글에서는 분류(Classification)문제에서 자주사용되는 Loss Function인 Cross Entropy에 대해서 알아보려고 한다. 먼저 알아야될 개념인 정보량과 엔트로피에 대해서 간단하게 알아보자 1. 정보량 $H = -\log p(x)$로 구할 수 있으며 여기서 $p(x)$ 는 어떤 사건 $x$의 확률을 의미한다. 예를 들어 이해해보자 '해가 동쪽에서 뜬다'라는 사건에 대해서 지구의 공전, 자전 등이 바뀌지 않는 이상 확률값은 1이다. 따라서 $H = 0$ 이다. 합리적이다. why? 너무나 당연한거라 우리가 얻을 정보가 없기 때문이다. '내일 서울에 비가 온다.'라는 사건에 대해서 우리가 확률 값을 계산할 수 있다..