Data Science/Deep Learning6 [Deep Learning] RNN 이번 글에서는 대표적인 딥러닝 기반의 시계열 모델인 RNN(Recurrent Neural Network)에 대해 살펴보고자 합니다. RNN은 시계열 데이터를 비롯하여 문장 형식의 텍스트 데이터에도 활발히 사용되고 있습니다. 해당 글은 '밑바닥부터 시작하는 딥러닝 2권'을 주로 참고하여 작성하였음을 미리 알려드립니다. 1. RNN 구조 Word2Vec을 비롯하여 기본적인 구조를 가지는 신경망들은 텍스트에서도 나타나는 시계열 데이터의 패턴을 충분히 학습하지 못한다는 단점이 존재합니다. 시계열 특성을 고려하기 위해 등장한 신경망 기법이 RNN으로, 데이터가 끊임없이 순환하는 구조로 되어있어 과거의 정보를 기억하는 것과 동시에 최신 데이터로 갱신된다는 특징을 가집니다. 아래의 그림은 RNN의 간단한 구조입니다... 2024. 2. 23. [Deep Learning] Word2Vec - skip-gram 이전 글에서는 딥러닝 기반의 자연어처리 기법인 Word2Vec의 개요와 Word2Vec의 대표적인 모델 중 하나인 CBOW(Continuous bag-of-words)에 대해 살펴봤습니다. 이번 글에서는 Word2Vec의 다른 대표 모델인 skip-gram과 기존 Word2Vec을 개선하는 과정에 대해 설명하고자 합니다. 해당 글은 '밑바닥부터 시작하는 딥러닝 2권' 책 내용을 바탕으로 작성하였음을 미리 알려드립니다. 1. skip-gram 모델 CBOW 모델이 맥락으로부터 타겟(중앙 단어)를 추측하는 것이라면, skip-gram 모델은 타겟(중앙 단어)로부터 맥락을 추측하는 기법입니다. skip-gram 모델은 아래의 그림과 같이 CBOW 모델을 반대로 구성한 형태로, 입력층은 하나이고 출력층이 맥락의.. 2024. 2. 20. [Deep Learning] Word2Vec - CBOW 이전 글에서는 자연어처리에 대한 간단한 설명과 딥러닝이 활용되기 전에는 어떤 기법들이 적용되었는지 살펴봤습니다. 이번 글에서는 대표적인 딥러닝 기반의 자연어처리 기법 중 하나인 Word2Vec에 대해 설명하고자 합니다. 해당 글은 '밑바닥부터 시작하는 딥러닝 2권' 책 내용을 바탕으로 작성하였음을 미리 알려드립니다. 1. Word2Vec 개요 이전에 활용되었던 통계 기반 기법의 경우(해당 내용은 이전 글에서 설명), 주어진 말뭉치를 바탕으로 PPMI(양의 상호정보량) 행렬을 만들고, 해당 행렬에 특이값 분해를 적용하여 밀집벡터(단어의 분산 표현)를 도출하였습니다. 행렬을 생성하기 위해 말뭉치 전체를 사용하기 때문에, 신경망 학습의 관점에서 봤을 때 해당 과정을 전체 데이터를 활용하는 배치 학습으로 볼 수.. 2024. 2. 8. [Deep Learning] 자연어처리(Natural Language Processing, NLP) 기초 이번 글에서는 자연어처리(Natural Language Processing, NLP)의 기초에 대해 설명하고자 합니다. 자연어처리에 대해 간단하게 설명한 이후, '밑바닥부터 시작하는 딥러닝 2권' 내용을 바탕으로 딥러닝을 적용하기 이전에는 자연어를 어떠한 방식으로 처리했는지 살펴볼 것입니다. 1. 자연어처리 자연어처리란 사람들이 평소에 사용하는 자연어를 컴퓨터가 이해하도록 만드는 기술을 의미합니다. 자연어에는 단어부터 시작하여 형태소, 문장, 문단 등 다양한 단위가 존재하며, 똑같은 단어나 문장이라고 하더라도 문맥 속에서 다른 의미를 가질 수 있습니다. 자연어를 컴퓨터가 이해하도록 만드는 것은 상당히 어려운 문제이기 때문에, 과거부터 다양한 방법들이 제안 및 발전되어 왔습니다. 특히 최근 ChatGPT가.. 2024. 2. 7. [Deep Learning] Variational AutoEncoder(VAE) 이전 글(https://dslyh01.tistory.com/23)에서 설명한 AutoEncoder 기법들은 모두 차원을 축소하여 Latent Variable를 얻도록 하는 Encoder 부분이 핵심이었습니다. 지금 설명하는 VAE는 AutoEncoder와 구조가 매우 유사하지만, 새로운 데이터를 생성하는 Generative model(생성 모델)로 Decoder 부분이 핵심입니다. 그림을 통해 VAE의 구조와 과정을 더 자세히 살펴보겠습니다. 우선 Encoder를 통해서 Input의 평균과 표준편차를 도출하고, 해당 결과를 바탕으로 가우시안 분포(정규 분포)를 생성합니다. 해당 분포에는 모든 Input에 대한 정보가 담겨있기 때문에, 랜덤하게 샘플링한다면 Input과 유사하면서도 전혀 다른 Latent .. 2022. 12. 6. [Deep Learning] AutoEncoder(오토인코더) 1. AutoEncoder의 개념 이번 글에서는 차원 축소, 노이즈 제거, 이상 감지 등 다양한 분야에서 활용되고 있는 AutoEncoder(오토인코더)에 대해 살펴보고자 합니다. AutoEndoer에 대해 간단히 설명해보면, 'Input을 차원 축소하여 압축시킨 이후 축소된 데이터를 다시 확장하여 Output을 Input과 최대한 동일하게 생성'하는 딥러닝 모델 중의 하나입니다. 아래의 그림을 통해 살펴보면, Encoder로 데이터를 압축시키고, Decoder로 다시 데이터를 확장시킵니다. AutoEncoder는 Input과 Output이 동일하여 y label이 따로 필요 없기 때문에, 주로 비지도 학습(Unsupervised Learning)으로 분류되며, Input이 곧 정답이므로 Self-sup.. 2022. 12. 2. 이전 1 다음