Haekt‘s log

[AI] 특징 추출을 위한 N-Gram 언어모델 본문

AI 인공지능/인공지능

[AI] 특징 추출을 위한 N-Gram 언어모델

Haekt 2023. 3. 6. 00:24
  • trade-off 문제로 n 선택시, 5 를 넘으면 안된다.(희소문제, 모델크기 증가)
  • 참고 - 점프 투 파이썬

 

- ngram


n-gram 은 n개의 단어로 이루어진 언어를 구분하기 위한 언어모델이다 .

언어의 갯수마다 명칭이 다르며, 각 명칭은 아래와 같다 .

 

  • unigrams : 1개
  • bigrams : 2개
  • trigrams : 3개 
  • 4-grams : 4개

 

언어분리는 오직 n-1 개의 단어에만 적용된다.

만약 4-gram 을 사용하여 언어 예측을 한다고 했을 경우 4-1 인 3개의 단어만을 가지고 예측을 하게 된다.

 

💡 나는 행복한 하루를 보냈어. 너는 어떤 하루를 보냈니?

 

위 문자 다음에 올 내용을 4-gram 으로 예측한다고 했을 경우.

 

앞의 단어들은 무시하고, 예측할 부분 바로 이전의 3단어인 어떤 하루를 보냈니 를 사용하게 된다.

 

예측할 때에는 이런 식으로 예측하게 된다.

먼저 예시로 

 

"어떤 하루를 보냈니?" 가 100 번 사용되었다 했을 때,

A : "어떤 하루를 보냈니? 행복했어" 가 60번,

B : "어떤 하루를 보냈니? 최악이었어" 가 20번 사용되었다면

 

A 는 60%, B 는 20% 의 확률을 가지게 된다.

따라서, 더 확률이 높은 "어떤 하루를 보냈니? 행복했어" 가 더 적합하다고 판단하게 된다.

 

 

 

- n-gram 활용 예시


n-gram 을 이용하여 멀웨어 탐지를 할 경우, 특정 부분의 어셈블리어를 예측하여 탐지를 할 수 있다.

n-gram 을 사용한 kaggle의 멀웨어 탐지 프로젝트에서 99.89% 정확도를 보였다고 한다.

'AI 인공지능 > 인공지능' 카테고리의 다른 글

[AI기초] 모델 학습의 종류  (0) 2022.10.04
[AI기초] 머신러닝 프로세스  (0) 2022.10.04
[AI기초] DataSet이란?  (0) 2022.10.04
Comments