Self Attention 설명 : 최소한의 수식과 관련 논문으로 쉽게 이해하기
다양한 일상 생활과 딥러닝의 사례를 통해 Attention의 개념을 설명합니다. 언어 모델과 비전 모델에 적용된 Self Attention의 원리를 최소한의 수식으로 쉽게 이해해봅니다. 파이썬으로 Self Attention을 구현해 봅니다.
다양한 일상 생활과 딥러닝의 사례를 통해 Attention의 개념을 설명합니다. 언어 모델과 비전 모델에 적용된 Self Attention의 원리를 최소한의 수식으로 쉽게 이해해봅니다. 파이썬으로 Self Attention을 구현해 봅니다.
1. 들어가며 딥러닝 모델은 역전파 알고리즘을 사용하여 학습합니다. 딥러닝 모델의 학습이란 Loss 값이 작아지는 방향으로 모델의 가중치를 업데이트하는 것이죠. 이때 모델의 가중치들은 아주 복잡하게 얽혀 있습니다. 따라서 가중치 값을 업데이트할 때 서로 간의 연관관계를 고려하여 업데이트해줘야 합니다. 이렇게 서로 얽혀있는 변수 간의 상관관계를 계산하는 방법이 Chain Rule입니다. 구체적으로 Chain Rule은 여러 개의 변수가 조합된 수식을 …
1. 들어가며 이미지 데이터 처리를 위한 딥러닝 모델에는 CNN이 있다면, 시퀀스 데이터 처리를 위한 딥러닝 모델에는 RNN이 있습니다. RNN의 등장 이후로 시퀀스 데이터 처리 네트워크는 발전을 거듭하였습니다. 그 결과 RNN은 현재 많이 사용되고 있는 네트워크는 아닙니다. 하지만 RNN은 시퀀스 데이터를 처리하는 네트워크 철학의 근간을 형성한 중요한 모듈입니다. 이번 글에서는 RNN이 왜 필요했는지, 어떤 방법으로 시퀀스 데이터를 …
1. 들어가며 딥러닝 또는 통계를 공부하다 보면 평가지표 개념을 반드시 접하게 됩니다. 평가지표란 성능을 수치화하여 하나의 값으로 표현하는 방법입니다. 딥러닝 모델의 성능을 객관적으로 평가하기 위해 반드시 필요하죠. 그런데 문제는 이 평가지표가 단순히 하나의 점수가 아니라는 겁니다. 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-Score, AUROC 등 자료마다 사용하는 평가지표가 다르죠. 이렇게 다양한 평가지표를 사용하는 이유는 각 평가지표마다 점수를 측정하는 관점이 …
1. 들어가며 이번 글에서는 평균이라는 개념에 대해 깊이 있게 다뤄봅니다. 평균에는 다양한 종류가 있습니다. 각각의 평균은 특정 상황에서 그 중요성을 발휘합니다. 이 글을 통해 산술 평균, 기하 평균, 그리고 조화 평균에 대한 이해를 높이고, 각각의 평균이 어떤 상황에서 유용하게 쓰이는지, 그리고 그것이 왜 중요한지 이해해 보겠습니다. 본문에서는 산술 평균을 설명하기 위해 시험 성적의 평균을 구하는 …
1. 들어가며 다양한 딥러닝 네트워크에서 1×1 convolution 연산을 사용하는 모습을 자주 볼 수 있습니다. 대표적인 초창기 네트워크로 GoogleNet (Inception), ResNet을 들 수 있습니다. GoogleNet에서는 1×1 convolution을 사용하여 연산량은 줄이면서도 성능은 향상할 수 있었죠. Convolution 연산은 넓은 window에서의 정보를 추출하는 연산인데요. 이러한 관점에서 생각했을 때 1×1 convolution 연산은 어떠한 장점이 있는지 쉽게 떠오르지 않습니다. 1×1 convolution은 …
1. 들어가며 지난 글에서는 Translation Invariant 네트워크를 만드는 과정을 살펴봤습니다. Fully Connected Network(FCN)로 강아지와 고양이 이미지를 구분하는 과정을 따라가 보았죠. 이 과정에서 FCN에서는 필연적으로 데이터의 위치 의존성을 가질 수밖에 없음을 알 수 있었습니다. 이를 해결하기 위해 다양한 방법을 살펴봤는데요. 대표적으로 Convolution과 Pooling 연산을 도입하였습니다. 이렇게 Convolution과 Pooling 연산을 조합하여 구성한 네트워크가 Convolutional Neural Network (CNN) 임을 …
1. 들어가며 Convolutional Neural Network(CNN)는 가장 유명한 딥러닝 네트워크 중 하나입니다. 이미지뿐만 아니라 시계열 데이터를 다루는 데에도 강력한 성능을 보이죠. 딥러닝의 부활은 2012년 발표된 AlexNet으로 시작되었습니다. 이 AlexNet의 성공은 CNN의 사용 덕분이라고 해도 과언이 아닙니다. Convolutional Neural Network 는 기존 Fully Connected Network(FCN)과는 차별화되는 결정적인 장점이 있습니다. 바로 위치가 다른 물체도 동일한 물체로 인식할 수 …
1. 들어가며 Backpropagation(역전파)는 딥러닝을 이루는 핵심 알고리즘들 중 하나입니다. 따라서 반드시 직접 네트워크를 미분해 보며 그 의미를 느껴봐야 합니다. 딥러닝 모델을 연구, 개발할 때 대부분은 PyTorch, TensorFlow 등의 딥러닝 프레임워크를 사용하는데요. 이러한 프레임워크들은 대부분 Backpropagation을 위한 자동 미분 메서드를 제공합니다. 따라서 특별한 경우를 제외하면 Backpropagation을 위한 코드를 직접 짜는 경우는 잘 없습니다. 그런데 왜 굳이 …
1. 들어가며 지금까지 컴퓨터에게 강아지와 고양이 이미지를 가르쳐주기 위한 다양한 방법을 살펴봤습니다.아주 다양하고 중요한 용어들이 나왔었는데요. 인공지능, 전문가 시스템, 머신러닝, 인공신경망, 딥러닝 등등 많이 들어봤지만 헷갈리는 용어들이 많았습니다. 더 나아가기 전에 이번 글에서는 지금까지 나온 개념들의 용어 정리를 하겠습니다. 2. 인공지능 (Artificial Intelligence) 먼저 인공지능에 대해 정리해 보겠습니다. 지금까지 컴퓨터에게 강아지와 고양이를 가르쳐주기 위한 이야기를 …