7장. 자연어 처리를 위한 순환 신경망
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
5장에서는 텍스트를 토큰화하고 시퀀싱하여 문장을 텐서라는 숫자로 변환한 다음 신경망에 공급하는 방법을 살펴봤습니다. 그런 다음 6장에서는 이를 확장하여 비슷한 의미를 가진 단어들을 한데 묶어 감정을 계산할 수 있도록 하는 임베딩에 대해 살펴보았습니다. 풍자 분류기를 구축하면서 보셨듯이 이 방법은 정말 잘 작동했습니다. 하지만 여기에는 한계가 있습니다. 즉, 문장은 단순한 단어의 집합이 아니며 단어가 나타나는 순서에 따라 전체적인 의미가 결정되는 경우가 많다는 점입니다. 또한 형용사는 옆에 나오는 명사의 의미를 추가하거나 변경할 수 있습니다. 예를 들어, 파란색이라는 단어는 하늘과 마찬가지로 정서적 관점에서는 무의미할 수 있지만, 두 단어를 합쳐서 푸른 하늘을 만들면 일반적으로 긍정적인 정서를 나타냅니다. 마지막으로, 비 구름, 책상, 커피잔과 같이 일부 명사는 다른 명사를 한정할 수 있습니다.
이와 같은 시퀀스를 고려하려면 모델 아키텍처에 재귀를 고려하는 추가적인 접근 방식을 취해야 합니다. 이 장에서는 이를 위한 다양한 방법을 살펴보겠습니다. 시퀀스 정보를 학습하는 방법과 이 정보를 사용하여 텍스트를 더 잘 이해할 수 있는 모델 유형인 순환 신경망 (RNN)을 만드는 방법을 살펴보겠습니다.
재귀의 기초
의 작동 원리를 이해하기 위해 먼저 이 책에서 지금까지 사용된 모델의 한계를 고려해 보겠습니다. 궁극적으로 모델을 만드는 과정은 그림 7-1과 비슷합니다. 데이터와 레이블을 제공하고 모델 아키텍처를 정의하면 모델이 데이터와 레이블에 맞는 규칙을 학습합니다. 그런 다음 이러한 규칙은 향후 데이터에 대한 예측 레이블을 다시 제공하는 API(애플리케이션 프로그래밍 인터페이스)로 제공됩니다.
그림 7-1. 모델 생성의 하이 레벨 보기
하지만 보시다시피 데이터는 일괄적으로 묶여 있습니다. 세분화되어 있지 않고 데이터가 발생하는 순서를 이해하려는 노력도 없습니다. 즉, "하늘이 회색이기 때문에 오늘 나는 파랗다.", "오늘 나는 행복하고 아름다운 푸른 하늘이 있다."와 같은 문장에서 파란색과 하늘이라는 단어는 서로 다른 의미를 갖지 않습니다. 우리에게는 이러한 단어 사용의 차이가 분명하지만, 여기에 표시된 아키텍처를 사용하는 모델에게는 실제로 아무런 차이가 없습니다.
그렇다면 이 문제를 어떻게 해결할 수 있을까요? 먼저 재귀의 본질을 살펴보고, 이를 통해 기본적인 RNN이 어떻게 작동하는지 살펴볼 수 있습니다.
유명한 피보나치 수열을 생각해 보세요. 익숙하지 않은 분들을 위해 그림 7-2에 그 중 일부를 넣었습니다.
그림 7-2. 피보나치 수열의 처음 몇 개의 숫자
이 수열의 기본 개념은 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access