[트랜스포머] 트랜스포머 (Transformer)
📄 관련 논문: [NeurIPS 2017] Attention Is All you Need Overview 트랜스포머의 아키텍처는 아래와 같으며, 크게 인코더와 디코더로 이루어져 있다. 인코더: 입력 문장의 맥락과 단어 간의 연관성을 이해해서, 문맥 정보를 반영한 Context Vector를 생성하는 역할을 한다. 디코더: 인코더가 전...
📄 관련 논문: [NeurIPS 2017] Attention Is All you Need Overview 트랜스포머의 아키텍처는 아래와 같으며, 크게 인코더와 디코더로 이루어져 있다. 인코더: 입력 문장의 맥락과 단어 간의 연관성을 이해해서, 문맥 정보를 반영한 Context Vector를 생성하는 역할을 한다. 디코더: 인코더가 전...
Regularization은 모델이 학습 데이터에 너무 오버피팅되는 것을 방지하는 기법이다. L1 / L2 Regularization 손실 함수에 정규화 term $R(W)$를 추가하는 방법이다. 이 추가되는 정규화 term의 형태에 따라 L1, L2로 분류된다. [L(W)=\underbrace{\frac{1}{N}\sum_{i=1}^NL_i(...
손실 함수 (Loss Function) 손실 함수는 아래 손실 함수의 표기에서 $N$은 샘플의 개수, $i$는 샘플 인덱스를 의미한다. 오차 기반 손실 함수 두 값의 차이를 측정하며, 주로 회귀 문제에서 사용한다. MSE (Mean Squared Error) 오차 제곱의 평균이다. [L_{MSE}=\frac{1}{N}\sum_{i=1}^N...
그래디언트를 이용해 파라미터를 업데이트하는 최적화 기법에는 여러 가지가 있다. SGD (Stochastic Gradient Descent) 전체 학습 데이터에서 1개를 무작위로 샘플링해서 그래디언트를 계산하고 파라미터를 업데이트하는 방법이다. 파라미터 업데이트 수식은 다음과 같다. [\boldsymbol{\theta}{t+1}=\boldsymb...
신경망의 복잡한 연산은 덧셈, 곱셈 등 일련의 단순한 기본 연산으로 분해할 수 있다. 계산 그래프는 이러한 개별 연산들을 노드로 삼아 전체 연산 과정을 구조화한 것이다. 예를 들어, $z=w\cdot x+b$ 연산을 다음과 같은 계산 그래프로 표현할 수 있다. 연쇄 법칙 (Chain Rule) 역전파 과정에서 연쇄 법칙은 다음 식을 따른다....
경사 하강법 (Gradient Descent) 모델이 학습한다는 것은 파라미터 $\theta=\lbrace w,b\rbrace$를 업데이트한다는 의미이다. 그럼 어떤 기준과 방법으로 파라미터들을 업데이트할까? 모델이 파라미터를 업데이트하는 기준은 손실 함수 $\mathcal{L}$의 값을 최소화하는 것이다. 이를 위해 손실 함수의 그래디언트를 ...
딥러닝 모델에서 데이터를 학습하는 과정은 크게 순전파(Forward pass), 역전파(Backward pass), 그리고 파라미터 업데이트(Parameter Update)로 이루어진다. 순전파 (Forward pass): 입력 데이터에서 출발해 계산 그래프를 따라 각 노드의 출력을 차례대로 계산하며, 최종적으로 모델의 예측값과 실제 정답을...
퍼셉트론 (Perceptron) 퍼셉트론은 인공 신경망에서 가장 작은 세포 하나라고 생각하면 된다. 인간 뇌의 뉴런이 신호를 주고받는 방식을 단순하게 수학적으로 만든 모델로, 아래 그림에서 동그라미가 뉴런을 의미한다. [출처] 위 그림에서 $x$는 입력 신호, $w$는 각 신호의 중요도를 의미하며, 모델은 학습을 통해 가중치 $w$의 값을 조...
주성분 분석 (PCA - Principal Component Analysis) PCA는 고차원 데이터에 존재하는 변수들을 정보 손실을 최소화하면서 저차원으로 압축하는 차원 축소 기법이다. PCA는 데이터를 설명하는 다수의 특성이 있을 때, 그보다 적은 새로운 특성으로 데이터를 설명할 수 있다는 것이 기본 원리이다. 예를 들어, 아래와 같이 데이터...
Boosting Boosting은 여러 개의 약한 학습기 (Weak Learner)를 결합하여 강력한 하나의 강한 학습기 (Strong Learner)를 만드는 앙상블 기법이다. Boosting에서는 모델들이 동시에 독립적으로 학습하는 것이 아니라, 이전 모델이 잘못 예측한 부분에 집중하여 다음 모델이 그 오차를 보완하도록 순차적으로 학습을 진행한...