인공지능 학습과 프로그래밍 - 인공지능 학습과 텍스트 데이터
본문 바로가기

용어 정리, 이슈/과학&기술

인공지능 학습과 프로그래밍 - 인공지능 학습과 텍스트 데이터

728x90

1. 인공지능이라는 개념의 탄생

현대 대부분의 컴퓨터에서 쓰이는 존 노이만  구조

1945년, 헝가리계 미국인 수학자이자 컴퓨터 과학자였던 존 폰 노이만(John von Neumann, 1903~1957)은 <EDVAC에 관한 보고서 제1초고(First Draft of a Report on the EDVAC)>에서 세계 최초로 프로그램 내장식 컴퓨터의 논리적 설계에 대해 발표했다. 그가 보고서 초고에서 적은 프로그램 내장식 컴퓨터는 훗날 현재에도 거의 대부분의 컴퓨터에서 사용하는 방식인 폰 노이만 구조(Von Neumann architecture)라고 불린다.

 

1946년, 영국 출신의 수학자이자 컴퓨터 과학자 앨런 튜링(Alan Turing, 1912~1954)은 최초의 프로그램 내장식 컴퓨터(stored-program computer) 설계와 관련된 논문을 발표했다.

 

시간 순으로 보면 최초로 이 프로그램 내장식 컴퓨터에 관한 내용을 기재한 것은 존 폰 노이만이 맞다. 그러나 폰 노이만의 기록은 상세하지 않았다. 당연히 초기니까 그럴 수 밖에 없었을 수도 있겠지만, 이 부분에선 현대에도 논란이 있다. 1937년에 앨런 튜링이 튜링 기계를 소개한 적도 있고, 1945년에 존 폰 노이만이 합병 정렬을 개발하기도 하는 등 프로그램 내장식 컴퓨터 방식과 관련된 명확한 기원을 찾기에는 다양한 발명과 필기의 역사가 혼합되어 있기 때문이다. 그럼에도 최초로 프로그램 내장식 컴퓨터 방식을 설계한 사람이 존 폰 노이만인가 앨런 튜링인가라는 문제 중에서 확실한 것 하나는 있다.

세계 최초로 프로그램 내장식 컴퓨터 방식에 대한 보고서를 작성한 것은 존 폰 노이만이며, 세계 최초로 프로그램 내장식 컴퓨터 방식에 대한 논문을 작성한 것은 앨런 튜링이다.

이 정도 정리만 하고 넘어가자. 인공지능과 관련된 주제이기 때문에 이에 대한 논거는 다음에 기회가 되면 하겠다.

 

1950년 10월, 앨런 튜링(Alan Turing, 1912~1954)은 <컴퓨팅 기계 및 지능(Computing machinery and intelligence)>이라는 논문에서 기계가 '지능적(intelligent)'이라고 불릴 수 있는 표준을 정의하기 위한 시도이자 기계가 사람과 샅은 지능을 가졌는지를 테스트하는 튜링 테스트(Turing test)를 고안했다.

컴퓨터 A와 사람 B 모두 자신이 사람이라고 주장하는 상황. C의 판단 과정과 대답에 따라 튜링 테스트의 결과가 달라진다.

그가 고안한 튜링 테스트는 인간 질문자가 대화를 통해 자신이 현재 대화하는 상대가 컴퓨터인지 인간인지 확인하는 검사다. 만일 인간 질문자가 해당 대상을 컴퓨터인지 사람인지 구분하지 못한다면, 즉 컴퓨터와 다른 인간을 구별하지 못했다면(테스트에 통과했다면) 컴퓨터가 생각한다(think)고 말할 수 있다는 것이다.

 

이러한 기본적 개념이 생겨난 뒤인 1956년, 흔히 다트머스 회의라고도 불리는 다트머스 인공지능에 관한 여름 연구 계획(Dartmouth Summer Research Project on Artificial Intelligence)이 미국의 유명 컴퓨터 과학자 존 매카시(John McCarthy, 1927~2011)를 필두로 해서 개최되었다! 당시 그 회의는 참가 인원끼리 합의도 잘 이루어지지 않았고, 몇몇 교수는 방문 기간이 달라 전인원이 한 자리에서 논의한 적은 없었을 정도로 그 명성에 비해 안타까웠다고 한다. 그러나 일부 가시적인 결과는 있었다! 우선 회의의 주체자 격인 존 매카시는 인공지능(AI, Artificial Intelligence)이라는 용어를 만들어냈으며, 회의의 참석자 중 아서 사무엘(Arthur Samuel, 1901~1990)이 1959년에 기계 학습(머신러닝, machine learning)이라는 프로그램을 만들어낸 것이다. 요약했지만 이런 과정을 통해 인공지능(AI)이라는 말과 그와 관련된 학문들이 세상에 등장한 것이다.

인공지능
규칙기반 인공지능 학습기반 인공지능

초기 인공지능 연구자들은 인간의 학습능력, 추론능력, 지각능력, 논증능력, 자연언어에 대한 이해 능력 등을 컴퓨터로 구현하려는 지능(intelligence) 시스템 개발에 있어서 2가지 접근 방법을 시도했다. 첫번째는 '두뇌는 무엇을 하는가?'라는 관점에서 출발한 규칙기반 인공지능(rule-based AI)이며, 두번째는 '두뇌는 어떻게 작동하는가?'라는 관점에서 출발한 학습기반 인공지능(learning based AI)이다.

 

2. 규칙기반 인공지능

규칙기반 인공지능

규칙기반 인공지능(rule-based AI)기호(symbol)와 논리(logic)를 이용해 다양한 규칙을 미리 프로그램하여 작동하도록 하는 인공지능으로, 흔히 if-then 학습 방법을 사용한다. 예를 들어 '만약 노란색 피부를 가지고, 빨간색 상의를 입고, 귀는 둥글고, 눈은 동그랗고, 코는 검정색 역삼각형이고, 전체적으로 몸집이 크며, 벌집 모양의 꿀단지를 들고 다닌다면, 이것은 '곰돌이 푸'이다'라는 특정한 if-then식 문장을 컴퓨터가 이해할 수 있는 언어(주로 C, JAVA, LISP, PROLOG)로 프로그래밍 하는 방식이다. 이 방식은 높은 정확도를 보여주면서 결과값에 대한 회수율(recall)이 낮다는 장점이 있다. 그러나 점차 모든 규칙을 미리 다 프로그램할 수없다는 한계와 인간이 추구하는 학습을 통한 문제해결과는 거리가 있다는 점 때문에  그 한계성이 두드러져 결국 규칙기반 인공지능은 실용적 측면에서 전문가시스템 개발 분야로 편중되어 발전하게 되었다.

 

3. 학습기반 인공지능

머신러닝 등의 방식을 사용하는 규칙기반 인공지능

학습기반 인공지능(learning based AI)데이터와 데이터의 해답을 입력해 스스로 규칙을 찾게 하는 신경과학에 기반을 둔 인공지능을 말한다.

 

이 AI 중 특히 다양한 입력 데이터와 이 데이터로부터 기대되는 해답을 컴퓨터에 제공해 컴퓨터가 입력된 훈련 데이터를 이용해 스스로 규칙을 만들어 새로운 데이터가 들어오면 이 규칙을 적용해 새로운 결과를 내는 학습 기반 인공지능기계학습 혹은 머신러닝(Machine Learning)이라고 한다. 이 기술이 처음 등장했을 때는 컴퓨터의 처리 속도가 지금처럼 빠르지 않아서 개발자들은 컴퓨터에 데이터를 입력하기 전에 목적에 맞게끔 데이터를 전처리하는 과정이 필요했다. 그래서 AI 에 대한 인기가 감소했다. 그래서 우리가 90년대 말까지도 AI라는 말을 잘 못 들었던 것! 그러다 2000년대에 들어서면서 인터넷의 발달로 대량의 데이터를 수집할 수 있게 되었고, 컴퓨터의 대규모 저장 용량과 빠른 계산 속도가 뒷받침되며 AI 분야가 다시 주목받게 되었다.

인공지능
규칙기반 인공지능 학습기반 인공지능
머신러닝(기계학습) ...
딥러닝(심층학습) ... ...

 

2006년, 머신러닝 분야의 권위자이자 컴퓨터 과학자 제프리 힌턴(Geoffrey Hinton, 1947~)과 "루스" 살라쿠디노프(Русс Салахутди́нов), 사이먼 오신데로(Simon Osindero), 테이웨이(郑宇怀, Yee Whye Teh) 등이 여러 글들을 발표했는데, 거기에선 어떻게 다계층 순방향 신경망(FNN)이 한 번에 한 층(레이어)을 효과적으로 사전훈련해서 각 층을 감독되지 않은 제한된 볼츠만 머신(RBM)으로 처리한 뒤, 감독된 역전파(BP)를 사용해 미세하게 조정하는지를 보여주었다. 쉽게 말해 인공신경망(ANN) 중 하나인 FNN이라는 신경망이 어떻게 정보를 받고 재처리하는지를 밝힌 것이다. 이 일을 포함한 전체적인 흐름에서 딥러닝 학습 알고리즘을 제안하며 AI의 시대의 부활을 가져오게 되었다.

딥러닝 신경망의 구조 (출처 : tcpschool.com/)

여기서 딥러닝(심층학습)표현학습을 가진 ANN에 기반한 머신 러닝 방법군의 한 부분이다. 여러 층의 ANN으로 구성되는 기본 구조를 가지며, 입력값이 들어가는 입력층과 입력층을 분석하는 중간층 혹은 은닉층, 그리고 출력값이 나오는 출력층으로 구분된다. 이런 구조를 가진 딥러닝 시스템에 예를 들어 수많은 고양이와 개 사진을 보여주면 자동으로 고양이와 개를 구분할 수 있는 최적의 규칙을 찾아낸다. 딥러닝 모델은 데이터를 통해 자동으로 필요한 특징을 찾아내고 분류를 수행하기 때문에 인간적 지식(코는 어떤 모양이다, 귀는 어떻게 생겼다 등)은 불필요하다. 그렇게 해서 나온 최종값과 실제값에 오차가 있다면 오차를 줄이기 위해 신경망을 역으로 거슬러 올라가면서 규칙의 가중치를 수정한다. 이를 역전파(BP, Back-Propagation) 알고리즘이라고 한다. 딥러닝은 오차값을 줄이기 위해 이러한 역전파를 통한 작업을 반복 수행하며 스스로 성능을 향상시킨다. 그래서 심층적으로 익히고 수정하고 배운다는 뜻으로 딥러닝(심층학습)이라고 부르는 것이다.

현재 딥러닝을 기반으로 하는 AI 기술은 자연어 처리, 음성인식, 컴퓨터 비전 분야 등에서 꽤 눈여겨볼 성과들을 보여주고 있다.

 

4. 텍스트 데이터의 학습과 활용

컴퓨터는 대량의 데이터나 정보를 저장할 때 주로 표 구조를 사용한다고 한 적이 있다.

(참고 : https://mspproject2023.tistory.com/668)

데이터
정형 데이터 비정형 데이터
텍스트 오디오(음성) 이미지
비동적 이미지 동적 이미지
(동영상)

이런 표 형태의 데이터정형 데이터(structured data)라고 하며, 표 형태가 아닌 데이터비정형 데이터(unstructured data)라고 한다. 이 비정형 데이터에는 텍스트, 이미지, 음성 등이 포함된다. 한 연구에 따르면 2025년까지 인간이 보게 될 데이터의 80%는 비정형 데이터가 될 것이라고 하며, 또 다른 연구에서는 2020년까지 데이터의 양은 44ZB(10의 21승 바이트)가 넘는 것으로 추산되며, 이 총 데이터의 80% 이상이 비정형 데이터라고 한다.

지금까지 AI는 정형 데이터를 많이 다뤄왔다. 그러나 2000년대에 들어서며 비정형 데이터가 확 늘어나며 비정형 데이터 분석이 각광받았는데, 특히 웹과 SNS, 그리고 TTS 기술의 등장으로 텍스트 데이터 분석이 다양한 분야에서 활용되고 있다. 문서 요약 및 분류 작업, 문장 속 소비자의 감정 및 트렌드 분석 및 전략 수립, 언어간 번역에 관한 챗봇, 주어진 질문에 응답하는 챗봇 개발과 같은 분야를 예시로 들 수 있겠다.

 

이러한 텍스트 데이터를 분석하기 위해서는 문장 속에서 유의미한 패턴이나 유용한 정보를 추출하는 머신러닝과 통계학적 기술이 필요하다. 그뿐만 아니라 언어학을 기반으로 하는 자연어 처리 기술(NLP, Natural Language Processing)에 대한 이해도 필요하다.

 

자연어(natural language)자연스러운 사용과 반복을 통해 특히 인간에게서 자연스럽게 진화한 모든 언어를 말한다. 한국인에게는 한국어가, 미국인에게는 미국어가, 러시아인에게는 러시아어가 자연어에 해당한다. 사람은 이런 자연어를 쉽게 배우지만 컴퓨터에게는 이 자연어를 배우는 것이 간단한 문제가 아니다. 가령 사람은 대화할 때 주어를 빼거나 말의 위치가 바뀌어도 이해하는데 큰 어려움이 없다. 하지만 컴퓨터는 주어의 위치가 바뀌거나 구두점 하나만 더하거나 빼져도 다른 문장으로 받아들인다! 이러한 어려움을 없에기 위해 인간의 언어 현상을 기계를 이용해서 묘사할 수 있도록 연구하고 이를 구현하는 NLP라는 학문이 등장한 것이다.

 

과거 NLP는 주로 규칙 기반의 키워드 맵핑 알고리즘(keyword mapping algorithm)을 사용했다. 이 키워드 맵핑은 미리 입력된 키워드를 감지해 의미를 분석하는 방식이었는데, 구현하기는 쉽지만, 의미 파악에 오류가 많았다.

키워드 맵핑 방식으로 구현한 NLP에서 나올 수 있는 번역
나는 밤에 밤을 먹었다.
I ate a chestnut at night. 정답
I ate a chestnut at chestnut.
오답
I ate a night at chestnut.
I ate a night at night.

키워드 맵핑 방식의 의미 파악 오류라는 단점을 극복하기 위해 머신러닝은 텍스트 벡터화(text vectorization)를 이용한 단어 임베딩(word embedding) 기법을 사용한다.

좌측부터 3차원 벡터 공간(남성-여성, 동사 시제)과 2차원 벡터 공간(국가-수도)에 단어 임베딩한 결과 (출처 : towardsdatascience.com/)

NLP에서 단어 임베딩(word embedding)벡터 공간에 단어들을 각 단어들과의 상관관계에 따라 위치를 선정해 끼워넣는 텍스트 분석용 기법이다. 위의 그림 중 2번째 예시를 보면 노란색으로 칠해진 부분은 동사의 현재진행형을 표현했고, 빨간색으로 칠해진 부분은 동사의 과거형을 표현했다. 한편, 해당 벡터 공간에서는 위쪽으로 갈수록 단어의 뜻은 '걷다(walk)'에 가까워지고, 밑으로 내려갈수록 '수영하다(swim)'이라는 뜻에 가까워진다. 즉 NLP 벡터 공간에서 비슷한 위치에 놓여 있으면 비슷한 분류군이 된다는 말이다. 이런 방식으로 잠재적으로 방향, 거리 등을 지표로 해서 수천 개의 벡터 특성으로 나눌 수도 있다. 이러한 방식으로 '나는 밤에 밤을 먹었다.'를 번역하면 이렇게 된다.

1) '나'는 조사 '는'에 가깝기 때문에, '나는'은 I로 번역할 수 있다.
2) '밤'은 조사 '에'에 가깝기 때문에 '밤에'는 'at night'로 번역할 수 있다..
3) '밤'은 조사 '을'에 가깝기 때문에 '밤을'은 'a chestnut'로 번역할 수 있다.
4) '먹었다'는 eat(먹다)이라는 동사의 과거형이기 때문에 'ate'로 번역할 수 있다.
5) I 뒤에 at night, a chestnut, ate 중 ate가 먼저 오는 것이 적절하다.
6) I ate 뒤에 at night, a chestnut 중 a chestnut가 먼저 오는 것이 적절하다.
7) I ate a chestnut 뒤에 at night가 먼저 오는 것이 적절하다.
결과값 I ate a chestnut at night.

그런데 가끔 입력된 훈련 데이터가 부족하면 정확한 단어 임베딩을 학습할 수 없게 된다. 그러면 결국 부정확한 결과가 나오기도 하는데, 그래서 NLP에서는 주로 사전 훈련된 단어 임베딩을 사용하곤 한다. 개발자들은 이미 위키피디아나 커먼 크롤(Common Crawl) 등에서 제공하는 데이터 등에서 가져온 수백만 개의 문장에 대한 텍스트 벡터화를 통한 단어 임베딩 데이터베이스(DB)를 만들어 두었다. 따라서 일반 사용자들은 IT 기업들이 제공하는 AI 플랫폼을 이용해 텍스트 데이터 모델을 쉽게 구현해 볼 수 있다. 이렇게 다양한 글이나 기사 등에서  데이터를 자동으로 모아주는 방식웹 크롤링(web crawling)이라고 한다. 이렇게 웹 크롤링 방식을 사용해 텍스트 분류 모델(text classification model)을 만드는 방법은 아래와 같다.

훈련 및 검증 데이터셋(training-testing data set) 준비 훈련에 필요한 텍스트를 직접 작성, 인터넷 검색, 웹크롤링 등을 통해 준비한다.
라벨링(labeling) 훈련 데이터를 클래스별로 구분해 라벨을 달아준다.
학습(learning) 및 모델링(modelling) AI 플랫폼을 이용해서 라벨링된 데이터로 학습된 새로운 모델을 생성한다.
실습 데이터 입력 및 결과 확인 학습 및 검증 데이터에 쓰이지 않았던 새로운 실습 데이터를 입력해 예측 결과 확인

 

5. 빅데이터 시대의 도래, 빅데이터와 AI의 만남

1950년대 후반에 시작된 AI 연구는 1970년 후반부터 사물을 보고, 듣고, 인식할 수 없었던 컴퓨터의 한계라는 벽에 가로막혀 침체기를 맞이했다. 그러나 2000년대에 들어서며 인터넷이 발달하고, 스마트폰과 SNS 등이 대중화되며 엄청난 양의 데이터가 쌓이기 시작했다. 또한, 컴퓨터의 성능도 크게 개선되었고, 아파치 하둡(Apache Hadoop), GPU와 같은 대용량 데이터를 처리할 수 있는 컴퓨팅 기술들이 개발되면서 본격적으로 빅데이터 시대를 맞이하게 되었다. 이 빅데이터 기술은 AI 연구에도 큰 영향을 주어 다시금 이 AI이 주목받게 되는 계기가 되었다.

 

1984년, 미국의 사회학자 찰스 틸리(Charles Tilly, 1929~2008)는 역사에 대한 통계적 방법을 표현하기 위해 빅데이터(big data)라는 단어를 이미 사용했다. 부르고앙, 1995년, M. O.(Bourgoin, M. O.)은 데이터 자산(data assets)을 의미하기 위해, 마이클 콕스(Michael Cox)는 메인 메모리, 로컬 디스크, 외부 디스크(remote disk)의 용량에 부담이 되는 대용량의 데이터라는 기술적인 방식을 표현하기 위해 이 빅 데이터라는 말을 사용해왔다. 그러다 1997년 존 마쉬(John Mashey, 1946~)는 빅데이터를 IT 기술에 대해 광범위한 의미를 내포하는 용어로 이 빅데이터를 사용했는데, '지속적으로 발전하여 경계가 확장되는 IT기술을 표현하는 가장 단순하고 짧은 어구'라는 어투로 이 빅데이터라는 용어를 사용했다고 밝혔다.

 

 

시장 조사 전문 기관 가트너(Gartner) 등을 포함한 다양한 기관에서 이 빅테이터는 V류(Vs)로 정의된다고 표현했다. 기본적으로 3V 즉, 규모(Volume), 속도(Velocity), 다양성(Variety)로 정의되는 빅데이터다양한(various) 대용량의 규모(volume)의 데이터를 빠른 속도(velocity)로 효율적으로 처리할 수 있는 데이터 집합 및 처리 기술이라는 뜻이 된다. 잠깐 앞서 빅데이터는 Vs류로 정의된다고 했지 3V로 정의된다고는 하지 않았다. 이 부분에 대한 의문을 풀자면 기본적으로 3V로 빅데이터를 정의하지만 경우에 따라 더 확장해 나갈 수도 있다. 참고로만 봐두자.

V류 포함대상
3V 규모
(Volume)
속도
(Velocity)
다양성
(Variety)
     
4V 신뢰성(진실성)
(veracity)
   
5V 가치
(value)
 
6V 가변성
(variability)

혹은

타당성
(validity)

아무리 데이터를 많이 모은다고 해도 그 데이터가 신뢰(veracity)할 수 없거나 가치(value)없거나, 또 타당(validity)하지 않은 것이라면 버려야한다. 또한 특정 데이터는 가변성(variability)을 가진다는 점도 알고 있어야 한다. 이렇게 빅데이터 기술은 다양한 V류의 성격을 통해 한층 발전해 나가고 있다.

 

자 그런데 지금도 수많은 데이터들이 쏟아지고 있다. 그런데 이 데이터들 속에서 유용한 정보를 찾아서 사용하지 못한다면 빅데이터는 아무 소용이 없다. 이전에는 일일이 정보를 발굴했다면 이제는 AI가 있다! 이 데이터 학습을 통한 패턴 분석, 결과 예측, 가치있는 정보 추출을 할 수 있는 AI의 도움을 받으면 빅데이터에서 원하는 정보를 찾아내기 쉬워질 것이다!  또한 역으로 빅데이터에서 분석된 자료들은 AI가 스스로 빠르게 학습할 수 있도록 도와주는 양질의 데이터로 제공되는데 이로 인해 무제한 학습력을 지닌 AI가 엄청난 양의 데이터를 효율적으로 학습하고 결과에 대한 정확도를 높여갈 수 있게 된다. 이렇게 빅데이터와 AI의 관계는 땔래야 땔 수 없게 되었다!

빅데이터 기술을 활용해 구매가능성이 높은 상품을 추천해주는 경우&nbsp; (출처 : 가비아 퍼스트몰)

특정한 쇼핑몰 이용자의 패턴을 빅데이터화 한 뒤 AI가 그 데이터들을 학습해서 비슷한 사용자가 그런 패턴을 보였다면 해당 쇼핑몰 이용자에게 이전에 학습한 내용을 토대로 추천해주는 식으로 사용된다. 아마존에서도 고객들의 쇼핑 성향(쇼핑 카드에 담은 내역, 구매 후기 점수, 비슷한 상품을 구매한 다른 고객 정보, 구매 습관 등)을 파악해 다른 비슷한 고객이 나타나면 추천해주고 있다. 이런 아마존 매출의 35%는 추천 엔진 덕분에 발생한다는 보고서도 발표되었다. 이렇게 우리의 일상 생활에서 빅데이터와 AI를 결합한 기술이 이미 상용화되고 있다.

 

현재 상황을 잘 이해하고 이러한 기술들을 잘 활용한다면, 기업뿐 아니라 개인사업자도 고객의 니즈에 맞는 고객들을 포섭할 수 있으며, 고객들도 자신의 취향에 맞는 상품들을 구매할 수 있기 때문이다. 한편, 고객은 이 시스템을 정확히 인지해 자신의 원하는 제품군이나 정보를 찾아볼 수 있다는 장점도 있다. 판매자를 포함한 정보제공자와 소비자를 포함한 정보습득자 모두 이득이 되는 이 기술을 통해 더 나은 삶을 살아가길 바란다.

반응형