AlexNet 보다 더 깊은 16 / 19 Layer까지 쌓은 Network로 그 이상 쌓는 경우 Saturation에 의해 더 깊게 쌓는 것이 무의미한 실험결과를 논문에서는 언급하고 있으며, 비교적 간단한 구조로 높은 성능을 내어 아직까지 자주 사용되는 모델이다. 각 Block 마다 Maxpool이 추가되어 있어 적은 Tuning으로 U-net 구조의 Feature Extractor로 사용되기도 한다. 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 o..
Vision Transformer를 간단하게 구현해보자 patch단위로 sequence형태로 변형하여 image embedding, multi head attention, MLP 구조로 구현하려고 한다. 1. Setup import torch import torch.nn as nn from torch import Tensor import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as optim from einops import rearrange, repeat from einops.layers.torch import Rearrange, Redu..
https://dreamkkt.com/15 [딥러닝 Basic] 신경망 (Neural Network) 간단하게 알아보기1 1. Intro 퍼셉트론 : 층을 쌓는 방법을 통해 복잡한 함수를 표현할 수 있으며 가중치 설정을 직접 수동으로 해야하는 단점이 있다. 신경망 : 퍼셉트론의 단점을 해결해 줄 수 있는 개념으로 가중치 dreamkkt.com 이전 글에 이어서 출력층에 대해서 작성합니다. 출력층 설계 신경망은 분류와 회귀 모두 이용가능 하며, 회귀는 항등함수, 분류는 소프트맥스를 사용(Sigmoid도 사용됨) 참고) 회귀의 기원 19세기 후반 영국의 우생학자 프랜시스 골턴 경은 사람과 완두콩 등을 대상으로 그 크기를 측정함. 관찰 결과 크기가 큰 부모의 자식은 부모보다 작고 작은 부모의 자식은 부모보다 ..
1. Intro 퍼셉트론 : 층을 쌓는 방법을 통해 복잡한 함수를 표현할 수 있으며 가중치 설정을 직접 수동으로 해야하는 단점이 있다. 신경망 : 퍼셉트론의 단점을 해결해 줄 수 있는 개념으로 가중치를 학습할 수 있게 되었다. 2. 퍼셉트론 ⇒ 신경망 Hidden Layer는 사람 눈에 보이지 않는 층(input, output만 쉽게 볼 수 있으므로)이라는 의미로 쓰이며, 층은 3개지만 가중치는 2개의 층에만 존재하므로 2층 신경망이라고도 부른다. 그림 상으로는 퍼셉트론과 차이가 없다. 퍼셉트론에 대해서는 아래 링크에서 다뤘으니 확인! https://dreamkkt.com/10 [딥러닝 Basic] XOR 문제로 간단하게 살펴보는 퍼셉트론 1. 퍼셉트론?? 인공 뉴런 / 단순 퍼셉트론으로 불리며, 그림에..
1. 퍼셉트론?? 인공 뉴런 / 단순 퍼셉트론으로 불리며, 그림에서 처럼 2개의 노드로부터 입력을 받아 $y$를 출력하는 형태이다. $x_1, x_2$를 노드 $w_1, w_2$를 가중치 $y$를 출력값으로 한다. 퍼셉트론을 수식으로 나타내면 다음과 같다. $$ y = \begin{cases} 0 \ (w_1x_1+w_2x_2 \le \theta) \\ 1 \ (w_1x_1+w_2x_2 \ge \theta)\end{cases} $$ 2. 단순 논리 회로 1. AND 게이트 진리표 x1 x2 y 0 0 0 0 1 0 1 0 0 1 1 1 입력이 둘, 출력이 하나인 게이트로 퍼셉트론으로 표현할 수 있다. $ (w_1, w_2, \theta) = (0.5, 0.5, 0.7), (0.5, 0.5, 0.8) $ ..
구조 DenseNet 이전 Conv 구조는 input이 Layer를 통과하면 이후에는 사용되지 않지만, DenseNet에서는 이전에 입력된 input과 output을 concatenate하여 이후 모든 Layer에 concatenate 되는 방식으로 학습시키는 것이 핵심이다. input이 위의 그림처럼 모든 이후 Layer에 계속해서 적용되는 것을 확인할 수 있다. Layer는 크게 Pooling, Dense Block, Transition Layer, Classification Layer로 구성되어있다. 1. Convolution and Pooling Layer 첫 Conv Layer에서는 output channel 수를 16으로 설정하였고, 7x7 filter, stride 2를 사용하였으며 Pool..