edwith CS50강의를 보며 정리했습니다.

● 인공지능 (자연어처리)

 

우리는 소프트웨어를 작동하거나 컴퓨터 언어(프로그래밍 언어) 를 통해 컴퓨터와 상호작용을 하지만, 인간은 일상에서 컴퓨터 언어가 아닌 언어를 사용한다. 이것을 자연어 라고 부르는데, 컴퓨터가 이를 이해하도록 만들려면 자연어를 이해할 수 있도록 처리해야 한다.

가장 최초의 자연어 처리 프로그램은 1966년 조셉이 만든 ELIZA 라는 소프트웨어이다. ELIZA에서 사용하는 시스템을 패턴 매칭 (pattern matching) 이라고 하는데, 입력 받은 문자의 일부를 활용해 다시 사용자에게 반환해주는 시스템을 의미한다. 요즘은 이러한 시스템을 활용하여 구현된 챗봇을 쉽게 만날 수 있다.

사람의 언어를 기계적으로 분석하여 컴퓨터가 이해할 수 있는 형태로 바꿔 처리하는 것을 자연어 처리라고 한다. 또, 단어들의 순서나 한 단어 뒤에 다른 단어가 나올 확률 등을 확률적으로 계산하여 시스템에 반영할 수 있다.

 

● 음성인식

 

요즘 대부분의 운영체제에는 음성인식 소프트웨어가 탑재되어 있다. 예시로는 iOS의 Siri, 삼성의 빅스비 등이 있다. 이러한 소프트웨어들은 가장 아래에 음성모델, 중간에 발음모델, 그 위에 언어모델을 넣어 이루어진다. 이렇게 여러 층으로 이루어진 소프트웨어로 음성을 인식하고, 인식된 문자를 또 다시 몇 개의 층으로(단계로) 분석한다. 

Syntactic Processing, Semantic Processing, Pragmatic Processing

문장을 인식했다면, 처음엔 그 문장의 구조를 분석하고 각 단어의 의미처리를 한다. 하지만 이 단계는 인간의 말을 그대로 이해하는 것이 아닌, 상징적인 것으로 앞에서와 마찬가지로 단어와 단어의 구조를 패턴화하고 확률적으로 구하는 것이다. 문장이 실제로 어떤 의미를 뜻하는지 인식하기 위해서는 더 복잡한 인지 모델이 필요하다. 

 

우리가 소통하는 요소 중 많은 부분을 차지하는 것이 비언어적 소통이다. 단순히 텍스트만으로 소통하기보다는 물리적 거리, 바라보는 시선, 목소리 톤, 억양, 제스처 등이 함께한다. 위에서 언급한 음성인식 시스템은 이러한 부분까지 고려할 수 없지만 비 언어적 행동까지 커버하는 카메라가 달린 로봇(지보)도 있고, 세상은 조금씩 발전하고 있다.

 

● 머신러닝

 

인공 지능을 구현하기 위한 하나의 분야로, 컴퓨터가 많은 데이터를 스스로 학습하고 그 데이터의 패턴을 파악할 수 있도록 하는 것이다. 일상에서 쉽게 사용할 수 있는 머신 러닝 시스템으로는 스팸 메일 분류기가 있다. 이러한 패턴을 잘 파악하기 위해서는 많은 양의 데이터가 필요하다.

+ Recent posts