AI/ML 시스템 구축에 대한 가이드

두 종류의 상이한 AI 시스템

기업이나 학계의 현장에서 AI/ML 시스템이 두 가지 다른 방식으로 구축되어있는 것을 접하는 경우가 많다. 산업계에서는 휴리스틱 (heuristics)과 결합된 온갖 종류의 사전을 사용하는 방식 등 지식 기반 접근 방식을 사용한다. 지식 기반 시스템을 구축하는 데에는 확률 및 통계에 대한 전문지식은 많이 필요하지 않다.

이와 대조적으로, 학술계에서 이루어지는 AI/ML 연구는 주로 모델 구축에 집중되어 있다. 요즘에는 지식과 모델을 모두 사용한 알고리즘이 좀처럼 발표되지 않는데, 그 이유는 지식을 사용한 알고리즘 구현이 모델의 비범성(remarkability)을 저하하는 것처럼 보이기 때문이다. 이로 인해 가장 진화된 알고리즘은 모델만을 사용한다는 잘못된 인상을 줄 수 있다.

실제로는 AI와 ML 시스템을 프로덕트에 구축하기 위해서는 지식과 모델을 모두 포함시켜야 한다. 지식이나 모델 가운데 하나만을 기반으로 한 시스템은 고유한 약점을 갖게 되기 때문이다. 두 방법을 적절히 조합했을 때 나오는 시너지 효과는 AI/ML 시스템의 성능의 개선으로 이어질 수 있다.

우선, 지식과 모델의 차이부터 살펴보자.

지식은 무엇이고 모델은 무엇인가?

Wikipedia에서는 지식을 ‘인지, 발견 또는 학습을 통해 얻은 경험이나 교육을 통해 습득한 사실, 정보, 설명 혹은 기술처럼 누군가 또는 무언가에 대한 친숙함 (familiarity), 인식 (awareness), 또는 이해’라고 정의한다. 우리의 문제에 국한해 생각해 보면, 지식이란 ‘언어를 사용해 기술하는 무언가’로 단순화시킬 수 있다. 브랜드명 목록, 로고의 이름 등이 그 사례다. 즉, 지식이란 데이터에 부여할 수 있는 모든 종류의 레이블(label) 이다.

모델이란 주어진 데이터와 해당 데이터의 레이블(지식)을 매핑하는 기능적 매핑(functional mapping)을 뜻한다. 모든 parametric/non-parametric 알고리즘은 모든 종류의 변형과 전환 등을 통해 기대할 수 있는 결과값과 입력값 사이의 매핑이라고 할 수 있다.

순수 지식 기반 AI 시스템의 단점

지식 기반 시스템은 인간의 지식에 의존한다. 하지만 인간의 지식을 포괄적이면서 정확히 설명하기란 쉽지 않다.

첫째, 어느 분야든 지식의 양은 방대하다. 그 어떤 노력을 기울인다 해도 기계가 아닌 인간이 직접 모든 지식을 소화하기란 어려운 일이다. 이처럼 인간의 지식에 의존하는 시스템은 확장 가능하지 않다.

둘째, 지식은 시의성이 높다. 어떤 지식은 일정 기간에는 유효하지만, 새로운 발견 또는 기술의 진화에 따라 무용지물이 될 수도 있다. 예를 들어, 아이폰 1세대가 처음 출시된 2007년 이전에는 아이폰 자체를 브랜드로 보기는 힘들었다. 향후 100년 후 혹은 그 이후에는 Apple.com이 역사의 뒤안길로 사라질 수도 있고, 그 때 쯤이면 아이폰도 더 이상 문헌 속에서 브랜드로 취급되지 않을 수 있다. 기본적으로 인간의 지식 베이스를 일일이 업데이트하는 일은 매우 까다롭고 시간이 걸린다.

셋째, 지식은 상황에 따라 달라진다. 어떤 지식은 특정 상황에서만 유효하다. 예를 들어, 애플은 전자 제품의 브랜드 이름이지만, 음식이나 식단에 대해 얘기하는 상황에서는 과일을 지칭한다. 어떤 지식의 유효성을 위해 조건을 직접 명시하는 건 어렵지만 모델은 이러한 상관관계를 손쉽게 식별할 수 있다.

순수 모델 기반 AI 시스템의 단점

순수 모델 기반 시스템 역시 고유한 약점이 존재한다.

첫째, 통계적 모델 혹은 딥러닝 모델은 대다수의 데이터에 대해 적정 적합 (generalized fitting) 을 찾기 위해 항상 시도한다. 필연적으로 대다수와 멀리 위치한 소수의 데이터는 놓치게 된다. 비유를 들어 설명해보자면, 적정 적합 선(curve) 은 가능한 점들에 가깝게 접근할 뿐, 점들을 통과하지는 않는다. 만약 적합(fitting)이 모든 점을 다 지나가도록 훈련되면, 과적합(overfitting)에 이르게 될 것이다.

출처 : https://medium.com/@rgotesman1/learning-machine-learning-part-6-bias-variance-and-error-metrics-51321efc71e8

둘째, 모델의 본능적 반응을 제외하고, 인간이 결정을 내릴 때에는 일련의 논리적 추론(logical reasoning) 과정을 거친다. 논리적 추론은 통계 혹은 딥러닝 모델로 완성하기에는 매우 어렵지만 지식 기반 시스템으로는 아주 쉽다.

실제로 지식과 모델을 통해 구축된 AI/ML 시스템의 성공사례를 볼 수 있다.

실전에서의 지식-모델 시스템의 예시

구글 검색이야말로 매우 성공적인 AI/ML 시스템으로 꼽을 수 있다. 다른 검색 엔진과 비교해보면 구글 검색은 방대한 양의 데이터를 기반으로 검색 랭킹 알고리즘을 학습시킬 뿐 아니라, 다양한 노력을 통해 지식을 축적하고 최종 검색 결과를 전달하는데 해당 지식을 사용해오고 있다. 
 
예를 들어, ‘부드럽고 윤기가 나다’는 뜻의 ‘嫩滑’라는 검색어는 아래의 이미지에서 보듯 서로 다른 검색 엔진에서 완전히 다른 결과를 보여준다. 다른 검색 엔진에서 성인 콘텐츠가 검색결과로 등장한 이유는 쉽게 짐작할 수 있다. 이 검색어(query)를 입력하는 경우의 대부분이 성인 컨텐츠 검색을 의도한 경우이기 때문이다. 따라서 성인용 콘텐츠를 구분하는데 지식을 사용하지 않고 순수하게 데이터로 훈련된 모델만 사용하게 된다면 기존 학습 데이터에 따른 적합한 결과가 나오게 돼 대다수의 쿼리에 맞는 콘텐츠인 성인 컨텐츠가 표시된다. 하지만 이는 언제나 적절한 결과라고 할 수 없다.

또 다른 예로는 자동주행을 들 수 있다. 자동주행 알고리즘을 단순하게 생각해 보면 카메라, 레이저 스캐너, 레이더 등의 다양한 센서로부터 들어오는 있는 그대로의 신호(signal)를 핸들 조종, 브레이크 밟기, 악셀 밟기 등의 운전 행동 결과(output)와 함께 모델에 학습시키면 된다. 하지만 이렇게 학습된 모델만으로는 만족스러운 결과를 얻기 힘들다. 자율 주행 자동차에 관한 유다시티 (Udacity) 강의에서 공개된 시스템 아키텍처 (system architecture)에 따르면, 자동운전을 위해서는 차선 감지, 교통 신호 감지 및 이해 등 수많은 지식을 통한 모델 학습과 튜닝이 필수적이다. 한편 모델은 이러한 인지(perception)를 생성하고 이를 계획과 제어에 이용할 것으로 예측된다.

출처 : https://medium.com/udacity/how-the-udacity-self-driving-car-works-575365270a40

성공적인 AI 시스템의 또 다른 예로는 진정한 지능형 시스템인 인간의 두뇌가 있다. 어릴 때부터 우리의 두뇌는 수많은 정보를 모델링 하게끔 학습되어왔기 때문에 충돌을 피한다거나 맛있는 음식을 좋아하는 등, 본능적인 반응을 특정 상황에 대해 보일 수 있다. 하지만 읽기 위해, 그리고 읽은 정보를 기억하기 위해서는 여전히 학습이 이뤄져야 한다. 여기서 우리가 학습한 것이 바로 지식이다. 지식 없이는 본능적인 반응만 하는 ‘교육받지 않은’ 상태로 남을 수밖에 없다.

지식-모델-시너지 AI 시스템에 대한 기대

시스템을 구축하는데 있어 지식과 모델을 모두 사용하는 방법에는 여러 가지가 있다. 하지만 지식과 모델이 유기적으로 서로 보완하는 형태가 아닐 경우 잘못될 가능성이 높다.

이와 같은 시스템을 구축하는 방법에 대해 다루기에 앞서 중요한 것이 있다. 달성하고자 하는 목표를 명확히 하는 것이다. 정확한 목표를 설정하면 반복을 통해 최적의 방법에 근접해질 수 있다.

이상적인 AI 시스템은 다음의 특징을 갖추어야 한다.

1. 개방형 세계(open world)에 대한 가정

시스템은 학습 데이터에서 이미 발견된 문제를 처리하는 것뿐만 아니라 학습 데이터가 아닌 새로운 지식도 발견할 수 있어야 한다. 예를 들어, 브랜드명을 추출할 때, 시스템은 주어진 브랜드 사전에 있는 브랜드 외에도 새로 등장한브랜드도 탐지할 수 있어야 한다. Visual 검색에서 시스템은 모델이 학습될 당시에 카탈로그에 없던 상품도 검색이 가능해야 한다.

2. 자가 개선(Self-improvable)

자가 개선이라는 것은, 전혀 인간의 도움 없이 시스템이 자력으로 개선되어야 한다는 것을 말하는 게 아니다. 자가 개선이 가능하다는 것은 그 자체로 정적인 시스템과 대조되는 유형이다. 자가 개선 시스템은 업데이트된 지식에 대한 모델이 적합한지를 지속적으로 평가하고 재학습 프로세스를 시작하게 하는 메커니즘을 갖추어야 한다. 또한 학습을 위해 데이터를 축적하는 메커니즘도 갖추어야 한다.

3. 통제가능성(Dictatability)

통제가능성은 시스템이 운영자로 하여금 특정 인풋에 대한 아웃풋을 제어할 수 있도록 허용하는 것을 의미한다. 보통의 지능을 가진 모든 인간에게 눈에 보이지 않는 테스트 케이스를 추론해 내도록 요구할 수는 없겠지만, 인간이 그렇듯 최소한 주어진 특정 인풋에 대한 아웃풋 정도는 예측할 수 있다. 구체적인 지침은 시스템에 내재화하는 것이 좋다.

다음 섹션에서는 위의 기대치를 충족시킬 수 있는 방법에 대해 얘기해보겠다.

지식-모델-상승효과 AI 시스템을 구축하는 방법

지식-모델-상승효과 시스템을 인간 지능에 근접한 수준으로 구현하기 위해서는 다음의 모듈이 필요하다:

1. 데이터 수집 모듈

데이터는 학습에 있어 기초 역할을 한다. 일반적으로, 머신 러닝에 사용되는 현재의 기술은 방대한 양의 데이터에 의존하고 있다. 데이터가 없는 지식이나 모델은 없을 것이다.

2. 지식 레이블링 모듈

인간은 처음부터 데이터를 레이블 하기 시작하며 새로운 지식이 진화하면 계속해서 데이터를 레이블 한다.

3. 모델 학습 및 평가 모듈

모델은 알려진 모든 지식에 기반해 학습되고 평가될 수 있다.

상기 언급된 세 모듈은 다음과 같은 방식으로 공동 작업을 수행하고 반복을 통해 시스템을 개선해야 한다.

특히, 집중적으로 살펴봐야 하는 기능은 다음과 같다.

1. 모델은 가능한 한 많은 지식을 사용해야 한다.

일반적으로 모델은 예측되도록 의도된 레이블에 대해서만 학습한다. 그러나, 다른 지식의 활용이 가능해짐에 따라, 모델이 더 좋은 성과를 내는데 도움을 줄 수 있다. 예를 들어, 이미지 내 한 쌍의 다른 상품이 동일한지를 구분할 때, 분명 모델은 Yes 혹은 No 레이블에 대해 학습될 것이다. 그러나, 모델이 이미지 내의 속성을 인식하도록 학습된다면, Yes 혹은 No라는 답변의 정확도는 급격히 개선될 것이다.

2. 모델은 지식을 발견할 수 있어야 한다.

프로덕션에서의 상당한 문제들이 개방형 세계 가정(open world assumption)을 하기 때문에 모델은 주어진 지식 세트에 대해 매핑이 되면서, 동시에 주어진 세트 이외의 지식을 예측해야 한다. 모델이 이러한 역량을 갖추려면 특수 설계가 필요하다.

a. Property 를 활용하여 Class 를 대체

상품명과 브랜명 사이의 매핑을 찾는 방식으로 문제를 모델링 하기 보다는 상품명을 브랜드명으로 분류하는 방식을 사용하여 상품명을 먼저 토큰화(tokenization)하고 그 후에 브랜드명 토큰의 임베딩(embedding)과 알려진 브랜드명의 임베딩 간의 거리를 계산한다.

특정 브랜드명에서 브랜드명 클래스(class)로의 변경을 통해 신규 브랜드명을 발견할 수 있는 모델의 역량이 크게 개선된다.

b. 폐쇄형 집합 분류(close set classification) 문제를 개방형 집합 근방(open set neighborhood) 문제로 전환

상기의 예시를 동일하게 적용해보면, 폐쇄형 세계(close world) 솔루션은 상품명으로부터 주어진 브랜드명의 집합을 예측하도록 분류기(classifier)를 학습시키는 것이다.

개방형 집합 예측 (open set prediction) 솔루션은 쌍(pair)으로 구성된 데이터 세트에 대해 분류기를 학습시켜 문자열(string)의 임베딩을 도출한 후에, 전체 브랜드명의 임베딩과 비교해 보는 것이다. 충분히 근접한 경우에는 이미 알고 있는 브랜드명임을 알 수 있다. 근접하지 않은 경우에 이는 새로운 브랜드명이며 인간이 확인할 수 있도록 드러나야 한다.

c. 원샷 러닝 (one-shot learning) 활용

원샷 러닝은 전체 학습 세트에서 하나의 세트를 무작위로 선정하여 해당 세트를 기반으로 모델을 학습시키는 방식이다. 이때 모델은 매핑을 기억하는 것이 아니라 무작위로 주어진 학습 세트에서 스스로 분류하는 방법을 찾도록 학습된다.

3. 모델의 적합성(adequacy) 모니터링

모델의 성능을 측정할 수 있는 지표가 있어야 한다. 만약 모델이 예상한 만큼 데이터에 맞지 않을 때, 모니터링 지표를 통해 새로운 학습 반복(iteration) 을 시작하여 모델을 데이터에 다시 적응시키도록 한다.

지식에 대한 유효성을 모니터링하는 메커니즘도 필요하다. (예: 지속적으로 지식에 대한 사용량을 데이터로 모니터링)

4. 모델 내 지식의 표현(representation)

지식은 최소한 두 가지 이상의 방식으로 모델에 사용된다. 지식은 모델의 아웃풋으로 표현될 수 있다. 예상되는 아웃풋을 생성하도록 모델을 학습시킴으로서 지식이 모델에 내재된다.

지식은 모델의 인풋으로도 사용될 수 있다. 딥러닝 방법론에서는 멀티태스킹 방식으로 모델을 연결하고 엔드 투 엔드(end-to-end)로 모델을 학습시키는 것이 가능하다. 상품 중복 제거를 위한 딥러닝 아키텍처의 예시는 아래와 같다. 이러한 모듈을 각각 구성하고 이후에 연결하는 방식도 가능하다.

마무리

성공적인 AI/ML 시스템을 관찰하고 그러한 시스템을 구축해본 경험을 토대로 AI/ML 시스템 구축에 대한 필요한 가이드에 대해 일부 기술해보았다. 주요 골자는 성공적인 시스템을 구축하려면 지식과 모델을 둘 다 사용해야 하며, 그래야만 제한 없는 성장과 개선의 여지를 가질 수 있게 된다는 점이다. 본 가이드가 목표로 하는 레벨은 매우 높은 수준이며, 따라서 실행하기 위해서는 수많은 변용이 가능하다. 함께 고민하고 토론하면서 실전에서 시도하고 반복해보자. 그러다 보면 AI/ML 시스템 구축을 위한 최적의 방법을 찾을 수 있을 것이다.

Hong Chen, Sr. Manager, Data Science