본문 바로가기

전체 글68

[딥러닝 기초] Recurrent Neural Network (RNN) Sequential data Sequential data란, 순서가 있는 데이터를 말합니다. 앞의 정보가 뒤의 정보에 영향을 미치는 인과가 존재하는 것입니다. 예를 들면 사람이 하는 말, 기상 예보, 웹 로그 분석에 사용되는 데이터들을 말합니다. 이런 데이터들을 제대로 처리하기 위해선 모델로 하여금 순서에 대한 정보를 처리할 수 있게끔 하는 과정이 필요합니다. 일기 예보를 예로 들면, 지난 데이터들을 봤을 때 어느 시기에 온도가 하락했고, 어느 시기에 온도가 상승했는지를 알아야 올해에도 어느 시기에 온도가 하락하고 상승할 지를 예측할 수 있을 것입니다. 그러나 지금까지 살펴봤던 DNN이나 CNN 모델은 이런 순서에 대한 정보를 고려하는데 한계가 존재합니다. 위와 같이 DNN은 모든 뉴런끼리 연결하는 과정.. 2023. 5. 31.
[딥러닝 기초] Convolutional neural network (CNN) Dense layer(Fully connected layer, Linear layer)는 딥러닝 모델로서 훌륭한 성능을 보여줍니다. 특히 이들의 차원 수를 늘리거나 깊이를 늘리는 방식으로 그 성능을 더 높일 수 있었습니다. 그러나 dense layer는 깊게 쌓을수록 파라미터 수가 기하급수적으로 증가하고 이로 인해 메모리 증가, 학습 속도 저하 등의 문제가 생길 수 있습니다. 간단히 256차원의 dense layer를 5개만 쌓더라도 파라미터 수가 $256^5$개로 감당할 수 없는 숫자가 됩니다. '좀 더 효율적으로 파라미터를 사용할 수는 없을까?' 해서 등장한 것이 convolution layer입니다. 기존의 dense layer가 모든 input 값마다 서로 다른 파라미터가 관여하는 구조라면, co.. 2023. 5. 23.
[딥러닝 기초] 활성화 함수 (Activation function) 활성화 함수의 필요성 딥러닝 모델의 성능을 높이는 방법 중 하나는 레이어의 깊이를 늘리는 것입니다. 위 그림의 모델 수식은 아래와 같이 쓸 수 있습니다. $$ y=w_3(w_2(w_1x+b_1)+b_2)+b_3=w_3w_2w_1x+w_3w_2b_1+w_3b_2+b_3 $$ 그러나 이 모델을 자세히 본다면, 사실상 weight가 $w_3w_2w_1$이고 bias가 $w_3w_2b_1+w_3b_2+b_3$인 하나의 뉴런으로 이루어진 모델과 같다는 걸 알 수 있습니다. 즉, 뉴런을 아무리 깊이 쌓아봤자 사실상 뉴런 하나짜리 모델과 크게 다르지 않게 되는 것입니다. 이를 해결하기 위해 사용하는 것이 '활성화 함수(activation function)'입니다. 앞서 봤듯이, 선형 함수(wx+b와 같이 그래프 형태.. 2023. 5. 17.
[딥러닝 기초] 손실 함수 (Loss function) 이번엔 손실 함수에 대해 좀 더 자세히 다뤄보겠습니다. 손실 함수란, 모델의 예측값과 실제 데이터의 값 사이의 차이를 측정하기 위한 함수라고 할 수 있습니다. 손실 함수는 '목적 함수(Objective function)'라고도 합니다. 실제값과 예측값 사이의 차이(loss)는 적을수록 좋겠죠. 이를 줄이기 위해 경사 하강법(Gradient descent)을 수행합니다. 경사 하강법은 미분을 기반으로 하기 때문에 손실 함수 또한 미분 가능해야 합니다. 손실 함수는 목적 함수라고도 불리는 만큼, 학습의 목적에 따라 손실 함수의 유형도 달라집니다. 딥러닝에서의 목적은 크게 2가지로 나눌 수 있을 것 같습니다. (회귀(regression)와 분류(classification)) 지금부터 각 목적에 알맞는 손실 함.. 2023. 5. 17.
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 오늘 소개할 논문은 줄여서 RAG라고 불리는 연구입니다. RAG는 BART, GPT, T5와 같은 생성 모델의 성능을 보완하면서 모델이 학습한 정보를 컨트롤하기 쉽다는 장점을 가지는 모델입니다. RAG의 배경, 모델 구성, 실험 결과 순으로 소개를 하도록 하겠습니다. 1. 배경 소개 1-1. ODQA와 Retrieval 일반 QA task는 질문과 답변, 그리고 답이 담긴 관련 문서가 주어집니다. 그러면 딥러닝 모델은 질문과 관련 문서를 보고 답을 예측해내야 합니다. 그렇지만 ODQA(Open Domain Question Answering)는 관련 문서가 주어지지 않습니다. 질문과 답변만 주어지고 관련 문서는 거대한 문서 집합에서 모델이 직접 찾아내야 하는 것입니다. Retrieval는 ODQA 데이터의.. 2023. 5. 13.
[딥러닝 기초] 경사 하강법(Gradient descent) 오늘은 경사 하강법에 대해서 알아보겠습니다. 딥러닝 모델의 학습은 경사 하강법(gradient descent)에 의해서 이뤄집니다. Gradient descent에 미분을 사용한다고 했었는데, 왜 미분을 이용하는지에 대해 알아보고, 가장 많이 쓰이는 gradient descent 방법인 Adam optimizer에 대해서 알아보도록 하겠습니다. 미분 위키에 따르면 미분(derivate, 도함수)의 정의는 "어떤 함수의 정의역 속 각 점에서 함숫값의 변화량과 독립 변숫값의 변화량 비의 극한 혹은 극한들로 치역이 구성되는 새로운 함수"라고 합니다. 어릴 적 배웠던 수학용어들에 대해서 생각이 안 날 수 있으니까 뜻을 하나하나 알아보겠습니다. 정의역 : 함수의 입력값 $x$들의 집합 치역 : 함수에 변수 $x$.. 2023. 5. 9.
Approximate nearest neighbor Negative Contrastive Learning for Dense Text Retrieval 1. Introduction 구글, 네이버 등에 검색을 하면 관련된 블로그, 카페, 위키 페이지가 검색 결과로 나옵니다. 이런 것들을 가능케 하는 것이 retrieval입니다. Retrieval는 텍스트가 입력되었을 때 해당 텍스트와 관련 있는 내용의 문서들을 찾는 모델입니다. 이런 retrieval에는 보통 겹치는 단어를 기반으로 탐색하는 sparse retrieval가 많이 사용되었습니다. 이는 입력 텍스트에 있는 단어가 가장 많이 쓰인 문서를 관련 문서로 선택하는 방법입니다. 그러나 이 sparse retrieval는 겹치는 단어를 보는 방식 때문에 겹치는 단어가 존재하지 않는 관련 문서는 찾아올 수 없는 태생적인 한계를 갖고 있습니다. 그래서 연구된 방식이 딥러닝을 활용한 dense retriev.. 2023. 5. 5.
[딥러닝 기초] MNIST 손글씨 인식하기 이제 인공지능의 학습 방식의 흐름을 알았으니, 이를 떠올리며 MNIST 손글씨 인식 인공지능 코드를 다시 살펴보겠습니다! https://colab.research.google.com/drive/1KdjBmrpzOF2ja6dSzf7bdPbVge3ImpMy?usp=sharing 일단 만들어보자!.ipynb Colaboratory notebook colab.research.google.com 1. 문제 정의 인공지능 공부하면서 느낀 것 중 하나는 어떤 문제를 풀던간에 "입력"과 "출력"의 형태를 확실히 파악하는 것이 중요하단 것입니다. MNIST의 입력과 출력을 확실히 정의하고 가겠습니다. MNIST 데이터셋은 "이미지" 입니다. 이미지는 컴퓨터에게 픽셀들로 이루어진 행렬과 같습니다. MNIST 이미지는 가로.. 2023. 5. 1.
[딥러닝 기초] 학습은 어떻게 이루어질까 이번에는 인공지능의 학습이 어떻게 이루어지는지 간단한 예시를 통해 알아보겠습니다. 이번 포스트를 통해서 "아 인공지능은 대략 이런 식으로 학습되는구나" 하고 대강 알 수 있길 바랍니다. 1.문제 문제를 하나 내보겠습니다. 아래와 같이 왼쪽의 입력값에 의해 오른쪽의 출력값이 나오는 데이터 통계가 있다고 가정해 봅시다. 0 → 3.025 3 → 10.048 4 → 14.622 7 → 23.332 9 → 24.827 이 데이터를 그래프로 그려보면 다음과 같이 그려질 것입니다. 이 때 만약 입력값이 6이 들어온다면 출력값은 어떻게 나올까요? 저라면 쉽게 생각해서 대강 점을 따라 선을 그어볼 것 같습니다. 그 뒤에 해당 선 그래프를 보고 y가 대충 18정도로 보이니 18이라고 예측을 하면 대강 비슷하지 않을까요?.. 2023. 4. 30.