딥러닝60 순환신경망(RNN) 구현, Time RNN 이전 글에서 RNN의 학습에 대해 알아봤다면, 이번에는 RNN의 구현에 대해 이야기해 보겠습니다. '밑바닥부터 시작하는 딥러닝 2'가 잘 설명하고 있어서 책의 내용을 기반으로 작성되었습니다. 순환신경망(RNN) 구현 RNN은 순환하는 신경망이라고 했습니다. 그리고 몇번 순환할 것인지가 횟수가 t입니다. RNN은 순환하는 길이가 t인 시계열 데이터를 받을 경우 각 시각의 은닉 상태를 t개 출력합니다. 이를 모듈화 해보면 신경망을 '하나의 계층'으로 구현할 수 있습니다. 일반적인 신경망은 가중의 종류가 하나지만, 은닉층의 메모리 셀은 ℎ𝑡를 계산하기 위해서 총 두 개의 가중치를 가집니다. 입력층을 위한 가중치 𝑊𝑥 이전 시점 t-1의 은닉 상태값인 ℎ𝑡−1을 위한 가중치.. 2024. 4. 9. 순환신경망(RNN) 학습, Truncate BPTT 순환 신경망(RNN)을 언어 모델에 사용한 이유는 고정된 데이터가 아니라 순차 데이터를 처리하도록 설계된 인공 신경망이기 때문이었습니다. 이는 자연어 처리외에도 시계열 예측, 음성 인식과 같은 작업에 유용한 네트워크 구조인데요. 이번 글에서는 RNN의 학습 프로세스에 대해 설명해 보도록 하겠습니다. BPTT란 RNN의 학습은 쉽게 생각해 순환 구조를 펼친 후 한다고 생각하면 됩니다. 그 다음엔 일반적인 오차역전파법을 적용하면 되는거죠. 우선 순전파를 수행하고, 이어서 역전파를 수행하여 원하는 기울기를 구합니다. 단지 순환구조라는 것만 다릅니다. 이런 구조 때문에 RNN에서 오차역전파법은 '시간 방향으로 펼친 신경망의 오차역전파법' 이라고 말합니다. 영어로 BPTT (Backpropagation Throu.. 2024. 4. 1. 순환신경망(RNN)이 언어 모델로 사용된 이유 처음에 확률적 언어모델기반으로 발전했습니다. CBOW 모델로 학습해서 손실함수(말뭉치 전체 손실함수 총합)를 최소화하는 가중치 매개변수를 업데이트 했습니다. 이런 방법은 맥락으로 타깃을 추측 가능하나, 맥락 안에 단어 순서는 무시된다는 한계있습니다. CBOW 모델의 문제점 CBOW 모델도 맥락의 크기를 키울 수는 있겠죠. 하지만 두가지 측면의 문제점이 존재합니다. 첫째, 단어의 순서를 반영하지 않는다는 것이고, 둘째는 단어가 늘어날수록 가중치가 증가하는 점입니다. 이런 점을 보완하기 위해 대안으로 나온것이 순환 신경망(RNN)입니다. RNN은 맥락이 아무리 길어도 그 맥락의 정보를 기억하는 구조입니다. 그리고 순서가 있는 시계열 데이터에도 유연하게 대응 가능하죠. 그렇기 때문에 문장의 정보를 습득하여 학.. 2024. 3. 27. Word2Vec: CBOW 모델 추론 및 학습 이번 CBOW의 설명은 '밑바닥부터 시작하는 딥러닝2'의 내용을 기반으로 작성하였습니다. 이번 글에서는 CBOW의 모델 추론과 학습에 대해 설명합니다. CBOW 모델 추론 CBOW와 Skip-gram은 개념은 비슷하기 때문에 이제 부터는 CBOW 모델을 기준으로 살펴보도록 하겠습니다. 앞에서 설명했듯이 CBOW는 맥락(주변 단어)으로부터 타겟(중앙 단어)을 추측하는 용도의 신경망입니다. 그림에서 입력층이 2개인 이유는 맥락의 고려할 단어를 2개로 정했기 때문입니다. 첫번째 입력층이 ℎ1으로 변환, 두 번째 입력층이 ℎ2 로 변환되었다고 하면, 은닉층 뉴런은 12(h1+h2)가 됩니다. 여기서 가중치 W𝑖𝑛는 단어의 분산 표현을 나타냅.. 2024. 3. 26. Word2Vec의 아이디어와 역할 Word2Vec은 자연어 처리(NLP) 및 기계 학습 작업에 사용되는 인기 있는 단어 임베딩 기술입니다. 2013년 Tomas Mikolov가 이끄는 Google 연구원 팀에 의해 소개되었습니다. 우선 생각할 문제가 신경망에서 단어 처리는 어떻게 할까요? 신경망에서 Input Layer는 고정길이 벡터를 넣어야 합니다. 보통 단어는 고정길이가 니죠. 그래서 단어를 원핫 표현으로 변환해 주어야 합니다. 단어ID와 같은 원소는 1, 나머지는 모두 0으로 설정하는 '원핫 인코딩'을 합니다. 그림과 같이 7개 단어에 대해 7개 size만큼 있습니다. Word2Vec이란 기본적인 아이디어는 "유사한 단어가 서로 더 가깝게 위치할 것이다."였습니다. 그래서 연속 벡터 공간에서 단어를 나타내보는 것이죠. 이 표현은 .. 2024. 3. 25. 통계 기반 기법 vs 추론 기반 기법의 차이점 머신러닝을 공부하다 보면 통계 기반 기법과 추론 기반 기법이 어떻게 다르지 하는 궁금증이 생기게 됩니다. 일반적으로 현장에서는 두 기법을 같이 사용하고 있는데요. 어떤 차이점이 있는지 살펴보도록 하겠습니다. 추론 기반 기법이란 추론 기반 기법은 추론하는 과정, 즉 계속 정답을 맞춰가는 과정을 활용한 기법입니다. 예를 들어, 신경망을 이용하는 경우는 미니배치로 학습하는 것이 바로 추론 기반 기법이죠. 미니배치 학습을 통해 신경망에 한 번에 소량(미니배치)의 학습 데이터를 반복해서 학습하게 됩니다. 그리고 그 과정에서 Loss를 계산해 가중치를 갱신하는 작업을 합니다. 이때 병렬 처리를 한다고 하면 병렬처리 한 것끼리 평균으로 update 하게 되죠. 언어모델로 생각해 보면, 미니배치 작업을 통해 어휘수가 .. 2024. 3. 22. 통계 기반 언어 모델 특징 및 한계점(feat. 시소러스, WordNet) 통계 기반 언어 모델은 통계적 방법을 사용하여 인간 언어를 분석하고 생성하는 자연어 처리(NLP) 모델 클래스입니다. 시소러스와 같은 유의어 사전과 통계적 언어 모델은 자연어 처리(NLP)에서 보완적인 역할을 하지만 접근 방식과 기능이 근본적으로 다릅니다. 먼저 시소러스에 대해 알아보겠습니다. 시소러스(Thesaurus) 란? 시소러스의 사전적 의미는 단어를 의미에 따라 분류·배열한 일종의 유의어 사전이라고 합니다. 뜻이 비슷한 단어를 그룹으로 분류하고 단어 사이의 상위와 하위 관계를 트리로 체계화하는 방법입니다. NLP에서 가장 유명한 시소러스는 WordNet이 있죠. WordNet 워드넷은 프린스턴 대학에서 1985년부터 구축되었는데요. 우리가 잘 알고 있는 ImageNet이 WordNet의 이름을 .. 2024. 3. 18. 자연어 처리 과정과 n-gram 자연어 처리 전체적인 과정이 어떻게 이루어질까요? 이 글은 우리가 알고 있는 자연어 처리 알고리즘에 들어가기 전에 어떤 과정으로 자연어 처리가 이루어지는지 알아보도록 하겠습니다. 그리고 임베딩 과정인 n-gram에 대해서도 간략하게 설명해 보도록 하겠습니다. 자연어 처리 과정 1. 코퍼스(Corpus) 모델 생성에 필요한 텍스트 데이터셋인 Corpus를 구성, 이는 거대언어모델(Large Language Model, LLM) 에서 방대한 데이터가 되는 원천 데이터입니다. 2. 텍스트 전처리 텍스트 데이터에서 불필요한 부분을 제거하고, 의미 단위로 구분하는 처리 과정(Text Preprocessing)을 진행합니다. 이때, 토큰화, 정규화, 필터링 등의 작업을 합니다. 3. 임베딩 컴퓨터가 처리할 수 있도.. 2024. 3. 14. 자연어 처리(NLP) 역사 및 동향 요즘 ChatGPT, 네이버 Cue, 구글 제미나이 등 거대언어모델(Large Language Model, LLM)이 대세입니다. 언어모델의 기원은 자연어 처리(NLP)에서 시작되었습니다. 자연어 처리의 역사는 수십 년간의 연구와 기술 발전을 이루어 지금의 모습이 되었죠. NLP(자연어 처리, Natural Language Processing) 란 사람의 말을 컴퓨터가 이해하도록 만들어서, 컴퓨터가 우리에게 도움이 되는 일을 수행하게 하는 것을 말합니다. 핵심은 인간의 언어를 이해하고 해석하고 생성할 수 있도록 초점을 맞춘 인공 지능(AI)이라는 것이죠. 여기서 자연어를 통한 컴퓨터와 인간 간의 상호 작용이 포함됩니다. 그 외에도 대용량 텍스트에서 정보를 찾는 것부터 해서 음성인식, 문서요약, 문서분류,.. 2024. 3. 12. 이전 1 2 3 4 5 ··· 7 다음