논문을 바탕으로 간단하게 구현해보자! 1. Setup import numpy as np import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as optim import time import random import torch.backends.cudnn as cudnn seed = 2022 torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) np.random.seed(seed) c..
고윳값(Eigenvalues), 고유벡터(Eigenvectors)를 구하는 방법에 대해서 알아보자 다음은 동치관계이다. 1. $\lambda$ : 행렬 $A$의 고윳값 2. $A-\lambda I$ 는 singular 3. $\det{(A-\lambda I)} = 0 $ : eigenvalues를 구하기위한 equation으로 특성다항식('characteristic polynomial')이라 부르며 오직 $\lambda$ 에 대한 식이다. 이를 바탕으로 각 $\lambda$에 대해서 $(A-\lambda I)x = 0 $을 풀어서 eigenvector $x$를 구하면 된다. 예제를 통해 확인해보자 singular $ A = \begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix}$..
AI를 공부하면서 선형대수를 공부할 때 반드시 알아야하는 Singular Value Decomposition(SVD)를 알려면 고윳값, 고유벡터에 대해서도 알아야한다. 이에 대해 간단하게 알아보자! 이번 글에서는 아래 내용에 대해서 정리할 예정이다. - 고유벡터(Eigenvector) $x$가 어떤 line Ax 위에 있다는 것은 $Ax = \lambda x$ 를 만족한다는 의미이며 이때 $\lambda$를 고윳값(Eigenvalue)이라 부른다. - 만약 $Ax = \lambda x$를 만족하면, $A^{2}x = \lambda^{2}x $, $ A^{-1}x = \lambda^{-1}x $, $ (A + cI)x = (\lambda + c)x$ 를 만족하며 모두 같은 벡터 $x$를 의미한다. - 만약..
ImageNet에서 분류대회 기준 2위를 한 모델로 AlexNet보다 더 깊은 layer를 쌓으면서 간단한 구조로 설계되어 지금까지도 자주 사용되는 모델이다. CNN 모델에서 중요한 모델 중 하나인 만큼 간단하게 리뷰해보자! 1. Abstract Convolutional Network depth에 대한 연구를 진행했으며 3x3 Conv를 활용해 더 깊은 depth의 Network를 설계하여 이전 SOTA모델 보다 높은 성능의 Performance를 보여주었다.(16-19 layers) 다른 데이터셋에서도 일반적인 퍼포먼스를 보여줬으며, 컴퓨터 비전의 많은 연구에서 이용할 수 있도록 만들었다. (특히 U-Net 같은 Semantic Segmentation 모델의 backbone) 2. Intro 컴퓨터 비..
Computer Vision(CV) 를 공부한다면 CNN은 당연히 공부할 것이고, 가장 기본적인 Network인 AlexNet을 공부하지 않는다는 것은 우리나라 사람이 우리역사를 모르는 것과 같다. 그만큼 AlexNet을 알고가는 것은 매우 중요하다고 볼 수 있다. 그럼 간단하게 알아보자 1. Abstract AlexNet이 발표 전까지도 ImageNet의 1000개 클래스를 갖는 이미지 분류를 위해 large and deep Convolutional Neural Network를 학습시켜왔다고 언급한다. AlexNet은 이전 SOTA모델보다 높은 성능을 보여줬고, 다섯개의 Conv layers와 Max Pooling, 3개의 fully connected layers with final 1000-way s..
ResNet101을 기준으로 구현했다. bottleneck 을 class로 따로 떼었으며, first 변수로 사이즈를 줄이는 layer 여부를 구분했다. bottleneck은 conv 1x1 - batchnorm - relu - conv 3x3 - batchnorm - relu - conv 1x1 - skip connection - batchnorm - relu로 구성했다. 1. Setup import torch import torch.nn as nn import numpy as np import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as..