반응형

수학/딥러닝 이론 43

분야별 Vision Transformer 논문 정리

나중에 읽으려고 정리한 논문들입니다. ㅎㅎ 필요하신 분이 계실수도 있으니 공유합니다. 댓글로 vision transformer 논문 추천해주셔도 됩니다 ㅎㅎ Transformer가 서로 다른 데이터 사이에도 적용할 수 있고 데이터 종류에 따라 구조를 변경하지 않아도 되는 장점을 활용한 여러 분야에서 논문들 DPN, depth estimation, https://arxiv.org/abs/2103.13413 Point Transformation, Point cloud https://arxiv.org/abs/2012.09164 Perceiver, audio, video, point clouds, image, https://arxiv.org/abs/2103.03206 UniT, Multimodal, https:..

왜 Vision Transformer가 좋은 성능을 보일까요?

https://towardsdatascience.com/recent-developments-and-views-on-computer-vision-x-transformer-ed32a2c72654 Recent Developments and Views on Computer Vision x Transformer On the differences between Transformer and CNN, why Transformer matters, and what its weaknesses are. towardsdatascience.com 위 게시글을 번역했습니다. Why is Vision Transformer so accurate? Vision Transformer의 연구는 오랫동안 지속되어 왔는데요. 하지만 아직 Im..

트랜스포머 정리

트랜스포머 헷갈리는 부분 정리 단어 토큰은 id 형태로 정수로 표현된다. one hot 으로 표현된 단어 토큰들을 concat하여 행렬을 만들어준다. 행렬을 nn.Embedding에 전달하여 정수를 벡터로 표현한다.(학습을 통해 단어의 분산 표현이 가능해짐. 분산 표현이 가능해지면 다른 단어들과 유사도를 측정 가능) 이제 단어 임베딩들을 nn.Linear에 전달하여 Key, Query, Value로 만들어줍니다. 단어 임베딩을 바로 사용하지 않고 별도의 K, Q, V로 만들어서 self-attention에 전달하는 이유는 K,Q,V의 의미가 다 다르기 떄문. Q : 현재 기준으로 삼는 단어의 정보 K : Q와 비교할 단어의 정보 V : 실제로 각 K 단어에서 가져올 정보 Q, K, V 모두 다르게 학습됌..

[딥러닝] Computer Vision과 NLP에서의 attention 함께 살펴보기

안녕하세요, 최근에 NLP를 공부하고 있는데, CV에서 사용하는 attention을 생각하고 NLP의 attention을 공부했더니 이해가 잘 안되더라구요 ㅎㅎ 두 분야의 attention을 함께 살펴보도록 하겠습니다. Computer Vision CV에서 attention은 피쳐맵에서 픽셀 또는 채널 간 중요한 요소를 계산하여 중요도에 따른 가중치 정보를 담은 attention vector를 생성합니다. 그리고 이 attention vector를 피쳐맵에 곱하여 가중치를 가하죠. 대표적으로 SENet, CBAM, SKNet이 있습니다. SENet을 잠시 살펴보면 피쳐맵에서 채널 간 가중치를 계산하여 이 가중치를 피쳐맵에 element-wise로 곱합니다. class SEBlock(nn.Module): ..

[딥러닝] Batch Norm 관점에서 살펴보는 batch size 가이드 라인

안녕하세요! 모델을 학습하는 경우에 batch size에 대해 고민이 많으실 텐데요. 3개의 논문을 공부하고, 제가 생각하는 배치 사이즈 선택 가이드 라인을 정리해보았습니다 ㅎㅎ!! 많은 분들에게 도움이 되었으면 합니다. 해당 글은 computer vision 관점에서 작성하였습니다. NLP 등 다른 분야에서 활동하시는 분들에게는 이 포스팅이 도움 안될 수 있습니다. ㅎㅎ Batch normalization batch normalization은 입력값 x를 평균 0, 분산 1로 표준화하여 활성화 함수로 전달하고 활성화 함수 출력값을 분포를 고르게 합니다. x를 표준화 하는 과정에서 배치 사이즈 단위로 평균과 분산값을 계산하는데요. 어떤 배치 사이즈를 선택하느냐에 따라 평균과 분산값이 달라지므로 성능에 영..

[딥러닝] 세 가지 유명 신경망 - VGG, GoogLeNet, ResNet

사이토고키의 을 공부하고 정리해보았습니다. 1. VGG VGG는 합성곱 계층과 풀링 계층으로 구성되는 기본적인 CNN입니다. 다만, 아래 그림과 같이 비중 있는 층(합성곱 계층, 완전연결 계층)을 모두 16층(혹은 19층)으로 심화한 게 특징입니다. (층의 깊이에 따라서 'VGG 16'과 'VGG19'로 구분합니다.) VGG에서 주목할 점은 3x3의 작은 필터를 사용한 합성곱 계층을 연속으로 거칩니다. 그림에서 보듯 합성곱 계층을 2~4회 연속으로 풀링 계층을 두어 크기를 절반으로 줄이는 처리를 반복합니다. 그리고 마지막에는 완전연결 계층을 통과시켜 결과를 출력합니다. 2. GoogLeNet GoogLeNet의 구성은 다음과 같습니다. 그림의 사각형이 합성곱 계층과 풀링 계층 등의 계층을 나타냅니다. 그..

[딥러닝] 신경망의 층을 깊게 하는 것의 중요성

사이토고키의 을 공부하고 정리해보았습니다. 층을 깊게 하는 것의 중요성 층을 깊게 하는 것의 중요성은 ILSVRC로 대표되는 대규모 이미지 인식 대회의 결과에서 파악할 수 있습니다. 이 대회에서 최근 상위를 차지한 기법 대부분은 딥러닝 기반이며, 그 경향은 신경망을 더 깊게 만드는 방향으로 가고 있습니다. 층의 깊이에 비례해 정확도가 좋아지는 것입니다. 층을 깊게 할 때의 이점은 다음과 같습니다. 1. 신경망의 매개변수 수가 줄어듭니다. 층을 깊게 한 신경망은 깊지 않은 경우보다 적은 매개변수로 같은(혹은 그 이상) 수준의 표현력을 달성할 수 있습니다. 합성곱 연산에서의 필터 크기에 주목해 생각해보면 쉽게 이해할 수 있습니다. 예를 보겠습니다. 아래 그림은 5X5 필터로 구성된 합성곱 계층입니다. 여기에..

[딥러닝] CNN에서 정확도를 높이는 방법 - 데이터 확장(data augmentation)

사이토고키의 을 공부하고 정리해보았습니다. 데이터 확장 - data augmentation 데이터 확장은 입력 이미지(훈련 이미지)를 알고리즘을 동원해 '인위적'으로 확장합니다. 아래 그림과 같이 입력 이미지를 회전하거나 세로로 이동하는 등 미세한 변화를 주어 이미지 개수를 늘리는 것입니다. 이는 데이터가 몇 개 없을 때 특히 효과적인 수단입니다. 데이터 확장은 다양한 방법으로 이미지를 확장할 수 있습니다. 예를 들어 이미지 일부를 잘라내는 crop이나 좌우를 뒤집는 flip 등이 있습니다. 일반적인 이미지에는 밝기 등의 외형 변화나 확대, 축소 등의 스케일 변화도 효과적입니다. 데이터 확장을 동원해 훈련 이미지의 개수를 늘릴 수 있다면 딥러닝의 인식 수준을 개선할 수 있습니다. 데이터 확장을 위한 파이..

[딥러닝] CNN의 원조 LeNet, 딥러닝을 주목 받도록 이끈 AlexNet

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - CNN 시각화 하기 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 지금까지 CNN에 대해서 알아보았습니다. 이번에는 대표적인 CNN을 알아보도록 하겠습니다. 대표적인 CNN CNN 네트워크의 구성은 다양합니다. 이번에는 그중에서도 특히 중요한 네트워크를 두 개 소개합니다. 하나는 CNN의 원조인 LeNet이고, 다른 하나는 딥러닝이 주목받도록 이끈 AlexNet입니다. 1. LeNet LeNet은 손글씨 숫자를 인식하는 네트워크로, 1988년에 제안되었습니다. ..

[딥러닝] 합성곱 신경망(CNN) - CNN 시각화 하기

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - CNN 구현하기 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 이전 포스팅에서 CNN을 구현해보았습니다. 이번에는 합성곱 계층을 시각화 해보겠습니다. CNN 시각화하기 CNN을 구성하는 합성곱 계층은 입력으로 받은 이미지 데이터에서 무엇을 보고 있는지 알아보도록 하겠습니다. 1. 1번째 층의 가중치 시각화하기 이전에 MNIST 데이터셋으로 간단한 CNN 학습을 해보았는데, 그때 1번째 층의 합성곱 계층의 가중치는 그 형상이 (30, 1, 5, 5)였습니다.(필터..

반응형