DeepLeaning
ConvNeXt 는 Attention 을 제외한 Convolution 연산만을 사용하는 모델로서, 여전히 Convolution 연산이 CV 분야에 유용하다는 것을 알렸습니다. 이번 포스팅에서는 ConvNeXt 를 구현해보겠습니다. ConvNeXt 리뷰는 아래 링크에서 확인할 수 있습니다. https://dreamrunning.tistory.com/15 1. 구현방법 기본적으로, ConvNeXt 는 ResNet 구조를 개량한 구조이기 때문에 ResNet 과 비슷하게 구현할 수 있습니다. 이 포스팅에서는 ResNet 과 유사한 방법으로 구현하겠습니다. 공식 GitHub 이 공개되어있으므로, 공식 구현 방법이 궁금하시면 찾아보면 되겠습니다. 2. LayerNorm ConvNeXt 에서는 Normalizaito..
1. 초록 시각 인식의 '활기찬 20년대'는 비전 트랜스포머(ViT)의 도입으로 시작되었으며, 이는 최첨단 이미지 분류 모델로서 ConvNet을 빠르게 대체했습니다. 반면에 바닐라 ViT는 Object Detection 및 semantic segmentation과 같은 일반적인 컴퓨터 비전 작업에 적용할 때 어려움을 겪습니다. Hierarchical Transformer(계층형 트랜스포머)(예: Swin Transformer)는 여러 ConvNet 선행 모델을 재도입하여 트랜스포머를 일반 비전 백본으로 실질적으로 사용할 수 있게 하고 다양한 비전 작업에서 놀라운 성능을 보여주었습니다. 그러나 이러한 하이브리드 접근 방식의 효과는 컨볼루션의 내재된 귀납적 편향보다는 트랜스포머의 본질적인 우수성 때문인 경우..
이번 포스팅에서는 ResNet 을 Pytorch로 구현해보겠습니다. 이전 ResNet 논문 리뷰 링크 https://dreamrunning.tistory.com/10 ResNet 은 2015년에 나온 CNN 모델로서, 현재도 다양한 분야에서 많이 쓰이는 모델입니다. 특히 ResNet 에서 처음 제안하고 사용한 Residual Learning 개념은 현재에도 다양하게 응용되고 있습니다. 우선 필요 패키지를 불러옵니다. import torch import torch.nn as nn import torch.nn.functional as F 1. Basic Building Block 및 Bottleneck Building Block ResNet 의 가장 기본 구조인 Basic Building Block 및 Bo..
ResNet 은 2015년에 나온 CNN 모델로서, 현재도 다양한 분야에서 많이 쓰이는 모델입니다. 특히 ResNet 에서 처음 제안하고 사용한 Residual Learning 개념은 현재에도 다양하게 응용되고 있습니다. ResNet 논문을 리뷰해보겠습니다. 1. 초록 더 깊은 신경망은 훈련하기가 더 어렵습니다. 저희는 이전에 사용된 네트워크보다 훨씬 더 심층적인 네트워크를 쉽게 훈련할 수 있도록 residual learning framework를 제시합니다. 참조되지 않은 함수를 학습하는 대신 레이어 입력을 참조하여 잔여 함수를 학습하는 방식으로 레이어를 명시적으로 재구성합니다. 이러한 residual network가 더 쉽게 최적화할 수 있으며, 상당히 깊어진 심도를 통해 정확도를 높일 수 있음을 보..
Attention 을 Pytorch 를 통해 구현해보겠습니다. Transformer 는 크게 Encoder 와 Decoder 로 나뉘고, 각각 내부에는 Attention 및 Feedforward Network 구조로 이루어져 있습니다. 그리고 가장 핵심은 Attention 구조입니다. Scaled Dot Product Attention 을 구현하는 것이 핵심입니다. 1. 필요 패키지 import Pytorch 로 구현을 하기 때문에 다음과 같이 패키지를 import 합니다. import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F 2. Scaled Dot-Product Attention (SD..
딥러닝을 공부하다보면 필수적으로 공부해야 하는 이론 중 하나가 backpropagation 입니다. Backpropagation 에 의해 모델이 학습이 된다는 것은 잘 알고 있을 것입니다. 이번 포스팅에서는 Backpropagation 을 다뤄보겠습니다. 1. 개요 딥 러닝의 뉴럴 네트워크를 훈련은 두 단계로 구성됩니다. Loss Funtion(손실함수) 를 계산하기 위한 순방향 Pass 학습 가능한 Parameter(매개변수) 를 계산하기 위한 역방향 Pass 여기서, Loss Funtion 을 최소화 하기 위해 역방향으로 손실 함수의 값을 전달하여 가중치 $w$ 를 갱신하는 것을Backpropagation 이라 합니다. 간단한 네트워크를 통해 Backpropagation 을 이해해 봅시다. 위 네트워..
Transformer 와 Attention (1) https://dreamrunning.tistory.com/3 지난 포스팅에 이어서 이번 포스팅에서는 Attention 의 종류인 Self-Attention 과 Cross-Attention 에 대해 이야기하겠습니다. 6. Self-Attention 과 Cross-Attention Query, Key, Value 를 이용해 유사도를 구해 Vector의 의미를 계산하는 Attention 의 종류에는 Self-Attention 과 Cross-Atttention 두 가지가 있습니다. Self Attention 은 Query, Key, Value 가 하나의 벡터에서 생성되어 Attention 연산을 합니다. Transformer 에서는 Encoder 에서 사용합니..
Attention 은 최근 딥러닝 분야에서 CV, NLP, Recsys 분야를 가리지 않고 널리 쓰이는 아키텍쳐입니다. 농담삼아서 일단 Attention 을 집어넣으면 딥러닝 성능이 마법처럼 올라간다고 말하기도 합니다. 이런 유용함 덕분에 최근 화제가 되고 있는 Chat-GPT 나 생성모델인 Stable Diffution 등 다양한 모델에서 사용되고 있습니다. 이번 포스팅에서는 attention 이 널리 알려지게 된 Transformer 에 대해 살펴보고, Attention 구조를 중점으로 공부해보겠습니다. 1. Transformer? Transformer 는 $Attention$ $is$ $all$ $you$ $need$ $(2017)$ 에서 소개된 오직 Attention 아키텍쳐만 이용한 Encode..
딥러닝을 공부하다 보면 어떤 모델을 학습하는 것은 손실함수(Loss Funtion) 값을 최소화 하는 가중치(Weight)를 구하는 과정이라는 것을 배웁니다. 이 떄, 여러종류의 손실함수 중 가장 많이 접하는 손실함수는 MSE(Mean Squared Error) 와 Cross Entropy 일 것입니다. MSE 는 오차 제곱의 평균으로서 그 개념을 직관적으로 이해하기 쉽지만, Cross Entropy 라는 것은 개념이 생소하죠. Cross Entropy 에 대해 이해할려면 Entropy 에 대해 알아야 하고, Entropy 에 대해 알려면 정보이론에서 말하는 정보의 정의와 척도에 대해 알아야 합니다. 먼저 정보의 표현 방법에 대해 논의해봅시다. 1. 정보를 어떻게 효율적으로 표현할 수 있을까? 정보를 무..



