[리뷰] Attention Is All You Need
·
Artificial Intelligence/Article
Attention Is All You Need는 실제 구글 번역기에 적용된 'Transformer' 기술을 소개하는 논문이다. BERT 나 ChatGPT 역시 transformer 모델을 기반으로 변형한 모델을 만들어 사용 있고, 현재 가장 진보된 번역모델로 알려진 NLLB-200 역시 transformer 모델을 기반으로 하고 있기에 시계열 데이터를 처리함에 있어 매우 중요한 논문이라고 할 수 있다. 때문에 해당 논문을 자세히 분석해 보고자 포스팅을 작성한다. 1. Introduce & Background 기존에 시계열 데이터를 처리하는 방식은 recurrence 계열의 RNN - LSTM - GRU기술이 있다. 하지만 이 기술들은 하나씩 문제점을 가지고 있다. 그 중 공통적으로 가지고 있는 문제점은 ..
어텐션이란?
·
Artificial Intelligence/Basic
구글이 번역기에 적용한 것으로 유명한 인공신경망 트랜스포머(transformer)모델에서 핵심적인 개념은 어텐션(Attention) 이다. 말 그대로 주목이라는 의미를 가지는 이 기법은 입력데이터의 특정 부분에 집중하여 해당 부분이 더 중요하게 반영되도록 하는 방법을 통칭한다. 해당 포스팅은 번역을 어떻게 어텐션 + LTSM 을 통해서 수행하는가를 예제로, 어텐션의 정의에 대해 살펴본다. 1. Seq2Seq 사이토 고키 저자의 밑바닥부터 시작하는 딥러닝 2 도서에서는 seq2seq 모델을 개선하기 위해서 어텐션을 사용한다. 따라서 어텐션에 대해 설명하기 전에 이 seq2seq 에 대해서 간략하게 설명하고 진행하겠다. seq2seq은 번역작업에 많이 사용되었던 모델로서, RNN을 기반으로 한다. seq2s..
점별 상호정보량(PMI, Pointwise Mutual Information)
·
Artificial Intelligence/Basic
RNN을 포함한 여러 자연어 처리 방법중 통계 기반 기법에선 PPMI라는 것이 사용된다. PPMI$^{Positive\,PMI}$를 설명하기 위해서 PMI를 우선적으로 설명한다. PPMI는 PMI에서 발전된 형태로 $Pointwise\,Mutual\,Information$을 나타낸다. 우리는 인공지능을 통해 자연어를 학습시킬 때에 '동시발행 행렬'에 의존한다. 예를 들어 아래와 같은 자연어가 있다고 가정하자 $$ I\,get\,in\,the\,car\,and\,go\,to\,drive. $$ 위에서 $car$라는 단어가 나올 때는 바로 옆에있는 $the$라는 단어와 높은 연관성이 있다고 생각될 것이다. 이 발상이 기본적인 '동시발행 행렬' 기법의 원리이다. 하지만 단순히 인접한 단어만으로 연관성을 판단하..
연쇄법칙(Chain Rule)
·
Artificial Intelligence/Basic
소개 신경망은 학습 데이터를 주면 손실을 출력한다. 이 때, 우리가 얻고 싶은것은 각 매개변수에 대한 '기울기$^{gradient}$' 이다. 바로 여기서 오차역전파법이 등장하고, 이 오차역전파법을 이해하기 위해서 연쇄법칙$^{chain\, rule}$ 을 알아야 한다. 연쇄법칙 자체는 어렵지 않다. 예로, 아래와 같은 함수가 둘 있다고 가정 해 보자. $$ z = g(y) $$ $$ y = f(x) $$ 이를 치환하면 $z = g(f(x))$ 가 되어, 최종 출력 $z$는 두 함수를 조합해서 계산할 수 있다. 이때 이 합성함수의 미분은 아래와 같이 구할 수 있다. $$ {\partial z \over \partial x} = {\partial z \over \partial y} {\partial y \..
윈도우에서 Tensorflow GPU 사용
·
Artificial Intelligence/Preferences
분명 4년전 쯤에는 윈도우에서도 Tensorflow(GPU) 를 잘 사용했던 기억이 있었는데. 최근들어서 다시 인공지능 공부를 하면서 끄적여 보는데 GPU가 인식되질 않는다. 그래서 한 2시간 남짓 뻘짓을 했는데 다른 분들 뻘짓하지 말시라구 포스팅 해 둔다. 윈도우에 Tensorflow-GPU(2.5.0) 설치하기 - 그래픽카드 버전, CUDA 버전 등등 목차 텐서플로우만 설치해서 CPU버전으로 사용하는 것은 매우 쉽습니다. 하지만 gpu연동하는 것은 정말 쉽지 않은 것 같아요. 하나라도 잘못하면 안돌아가는 경우가 다반사입니다. 주의해서 꼭 chancoding.tistory.com 여러 블로그 글들도 뒤져보고... StackOverflow, Reddit 등등 커뮤니티도 여럿 둘러봤지만 해결법을 찾지 못하..
배치정규화
·
Artificial Intelligence/Basic
배치 정규화는 각 층에서의 활성화 값이 적당하게 분포되도록 조정하는 것을 의미한다. 배치 정규화는 학습 시 '미니배치' 단위로 정규화한다. 이 때, 평균이 0, 분산이 1이 되도록 정규화 한다. 수식은 아래와 같다. $ \Large \mu_B \leftarrow { 1 \over m } \sum_{i = 1}^{m}{x_{i}} $ $ \Large \sigma^{2}_{B} \leftarrow {1 \over m} \sum_{i=1}^{m}{(x_{i} - \mu_{B})^2} $ $ \Large \hat x_{i} \leftarrow { x_{i} - \mu_{B} \over \sqrt{\sigma_B^2 + \varepsilon}} $ $B = {x_1, x_2, ..., x_m}$ 는 $m$ 개의 ..