[AI] NLP

도톨이·2024년 5월 12일

AI

목록 보기
3/14
post-thumbnail

NLP

NLP 의 종류

왼쪽의 원은 NLP 로 자연어 처리를 나타내고 오른쪽의 원은 Deep learning 을 의미한다. 이 두개가 겹치는 지점을 DNLP 라고 한다.
이것들은 NLP 와 관련있는 모델이면서 동시에 딥러닝 모델이다.

DNLP 의 하위 섹션으로는 Seq2Seq가 존재한다.
이 모델은 NLP를 위해 존재하는 최첨단 모델이다.

Classical vs Deep Learning Models

NLP 와 DNLP 는 어떻게 다를까?
몇 가지 예를 살펴보자.

우선
if/else rule(챗봇)은 다이어그램의 NLP 부분에만 존재한다. 질문과 질문에 대한 답변의 목록만 존재한다. 질문이 있고 이미 결정된 답이 있는 것이다.

다음은 오디오 주파수 구성 요소 분석(음성 인식)인데 이는 NLP 영역에만 존재하는 모델을 사용할 수 있다. 음성이나 음파를 관찰해서 어떤 형태인지 알아보는 것이다. 이는 신경 계산을 수행하진 않고, 관찰할 수 있는 주파수에 대한 수학적 계산을 진행해서 주파수 라이브러리의 데이터와 비교해서 말을 인식하게 된다.

다음으로 살펴볼 것은 Bag-of-words 모델(Classification) 이다. 이 또한 NLP 영역에만 존재할 수 있는데 이는 DNLP 에도 존재할 수 있다. 우선 NLP 영역에만 존재하는 모델에 대해 얘기하자면, 예를 들어 학생들이 제출한 과제에 누군가에겐 pass 누군가에겐 fail 을 줬다고 하자. 그리고 각각의 과제에 코멘트를 남겼다면 어떤 단어에 pass 또는 fail 을 줬는지 분류하는 것이다.

이제 DNLP 를 알아보자.
우선 텍스트 인식을 위한 CNN (classification)이다. Convolution Network 는 비디오와 같은 이미지 인식에 주로 사용되는데, 컨벌루션 레트워큭가 텍스트 처리에도 사용될 수 있다.
이는 단어를 매트릭스로 변환해서 합성곱을 수행하고 피쳐맵을 생성한다. 그리고 각 맵에 대해 맥스풀링을 통해 각 피쳐맵에서 가장 큰 수를 남긴다. 그리고 flatten 하게 만들어서 최종적으로 소프트맥스 레이어는 피쳐값을 받아 문장을 분류한다.

다음은 sequence-to-sequence 모델(many application)로 DNLP 처리의 메인이 된다.

profile
Kotlin, Flutter, AI | Computer Science

0개의 댓글