[딥러닝] 17

[ViT] Vision Transformer란?

[ViT] Vision Transformer란? CNN등장 이후, 지난 20여년간 Computer Vision 분야에서는 CNN기반 모델(AlexNet, VGGNet, ResNet, DenseNet, NasNet, EfficientNet 등)이 사용되었습니다. CNN기반 모델이 대부분의 SOTA성능을 갖던 중 작년, 2021년에 Vision Transformer가 등장하며 ImageNet기준 1, 2위를 차지하였습니다. 이번 포스팅에서는 Vision Transformer에 대해 다루어 보도록 하겠습니다. 1. Attention Intuition 다음과 같이 $1\times1$ Convolution Filter를 통과한 이미지 Feature가 있을 때, Attention을 통하여 어느 부분이 중요한지, 중..

[딥러닝]/[ViT] 2022.08.27

[PyTorch] torch.optim.lr_scheduler

[PyTorch] torch.optim.lr_scheduler 파이토치의 learning rate scheduler에 대한 포스팅을 하도록 하겠습니다. 다음의 파이토치 공식 문서를 참조함을 밝힙니다. https://pytorch.org/docs/stable/optim.html torch.optim — PyTorch 1.10 documentation torch.optim torch.optim is a package implementing various optimization algorithms. Most commonly used methods are already supported, and the interface is general enough, so that more sophisticated ones ..

[PyTorch] optimizer.zero_grad()

코드를 짜다가 f.grad()라는 코드를 반복해서 실행할수록 gradient값이 더해져 갔다. 뭐가 문제인지 모르겠었는데 optimizer.zero_grad()라는 코드를 넣지 않아서 생기는 문제였다. optimizer.zero_grad()를 실행하여 이전에 .grad()를 통해서 얻은 기울기를 0으로 초기화한다. 기울기를 초기화 해야만 새로운 가중치나 편향에 대하여 올바른 기울기를 구할 수 있다. optimizer.zero_grad() #gradient를 0으로 초기화

[PINN] 물리 정보 신경망 - PINN 이란?

[PINN] 물리 정보 신경망 - PINN 이란? PINN(Physics-Informed Neural Network)란 이름 그대로 물리적 정보를 담는 신경망을 의미합니다. 예를 들면 heat equation을 Neural Network로 나타내는 것을 PINN이라고 할 수 있습니다. heat equation은 편미분방정식으로 표현됩니다. 저는 PINN을 PDE solver로 이해했습니다. PINN의 아이디어에 대한 간단한 예제로 소개를 드리도록 하겠습니다. 다음의 블로그를 참고하였음을 미리 밝힙니다. https://towardsdatascience.com/using-neural-networks-to-solve-ordinary-differential-equations-a7806de99cdd Using N..

[딥러닝]/[PINN] 2022.01.01

[NLP] - TextCNN

[NLP] - TextCNN 이번 포스팅에서는 TextCNN에 대해 다루어 보도록 하겠습니다. TextCNN에서는 Filter가 문장을 스캔하며 문맥적 의미를 파악합니다. TextCNN의 진행 과정은 다음과 같습니다. 1. Word embedding vector를 input으로 받음 2. Filter와 Word embedding vector의 convolution 연산을 통해 feature map 생성 3. activation function을 통해 feature map을 activation map으로 사상 4. 각 activation map을 max pooling하여 concatenation 5. concat한 벡터를 fully-connected layer의 input으로 넣은 후 classificat..

[딥러닝]/[NLP] 2021.11.10

[GAN] 1 - GAN 기본 개념

[GAN] 1 - GAN 기본 개념 GAN(Generative Adversarial Network, 생성적 적대 신경망)은 2014년에 이언 굿펠로가 고안한 생성 모델입니다. 2014년 GAN이 발표된 이후로 엄청난 인기를 끌었고 지금까지 계속해서 GAN관련 기술, 논문이 나오고 있습니다. GAN 이란? GAN에는 판별자(Discriminator)와 생성자(Generator)가 있습니다. 판별자는 진짜 데이터와 생성자가 만드는 가짜 데이터를 진짜인지 가짜인지 판별하는 것을 목표로 합니다. 생성자는 판별자가 구분하지 못하는 데이터를 생성하는 것을 목표로 합니다. GAN의 창시자 이언 굿펠로는 판별자를 경찰, 생성자를 지폐 위조범에 비유합니다. 경찰은 진짜 지폐와 지폐 위조범이 만들어내는 가짜 지폐를 구별해..

[딥러닝]/[GAN] 2021.09.14

밑바닥부터 시작하는 딥러닝 3 - 1-2에 대한 질문

1. p.68 class Function: def __call__(self, input): x = input.data y = self.forward(x) output = Variable(y) self.input = input return output def forward(self, x): raise NotImplementedError 여기서 NotImplementedError을 왜 사용하는 것인지? pass를 사용해도 괜찮지 않은 것인지 궁금합니다. 2. 반복문을 이용하여 backward를 구현하는 것이 왜 재귀를 이용한 방법보다 처리 효율이 좋은지? → 재귀방법은 중간 결과를 메모리에 유지하면서 처리를 이어가기 때문 3. (p.82) class Variable: #생략 def backward(self)..

밑바닥부터 시작하는 딥러닝 3 - ch1

수치 미분의 한계 : "자리 수 누락"에 의한 오차, 많은 계산량 자리수 누락: 중앙차분 등 차이를 구하는 계산은 비슷한 값들을 다루므로 계산결과에서 자리수 누락이 생겨서 유효자리수가 줄어들 수 있습니다. 유효자리수가 줄어들게 되면 오차가 발생되기 쉽습니다. 또한 수치 미분은 계산량이 많습니다. 신경망에서 매개변수를 수백만 개 이상 사용하므로 모두를 수치 미분을 사용하여 계산하는 것은 계산량이 비현실적으로 많습니다. 이를 해결하기 위해 역전파가 등장합니다. 하지만 역전파는 알고리즘이 복잡하여 버그가 있기 쉽습니다. 그래서 비교적 쉽고 정확한 수치 미분을 이용하여 역전파 계산 결과를 확인합니다. 이를 기울기 확인(gradient checking)이라고 합니다.

반응형