"AI프로젝트 성공하려면 적합한 알고리즘 사용해야"

심기보 전 정보통신기술사협회장 2021. 9. 12. 17:48
음성재생 설정
번역beta Translated by kaka i
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 가장 빠른 뉴스가 있고 다양한 정보, 쌍방향 소통이 숨쉬는 다음뉴스를 만나보세요. 다음뉴스는 국내외 주요이슈와 실시간 속보, 문화생활 및 다양한 분야의 뉴스를 입체적으로 전달하고 있습니다.

[심기보의 AI프로젝트 성공 비결⑩] 요건 정의-AI 기능

(지디넷코리아=심기보 전 정보통신기술사협회장)신(新)서비스 개발에 AI를 활용하는 사례(케이스)가 증가하고 있다. AI기능 요건정의가 통상의 시스템 개발과 다른 점은 '학습한다'는 요소가 있다는 점이다. 신 서비스 개발 AI 프로젝트 요건정의 중 AI 기능 요건정의의 구체적인 작업 내용은 그림1과 같다.

PM : AI 기능 요건정의는 무엇을 하면 좋을까요?

IT담당 :글쎄요 상상이 안되는데요. AI 자체도 잘 모르고요.

PM : 음, 하지만 벤더에게 통째로 맡기는 것도…우리가 어디까지 무엇을 하면 좋을까요?

컨설턴트: AI 기술 내용까지 알 필요는 없지만, AI로 무엇을 하고 싶은 지? 또 어떤 데이터를 AI 시스템에 제공할지는 발주자(유저)가 정해야 하지 않을까요

AI를 사용한 기능도 입력 데이터를 처리해 출력한다는 관점에서 보면 통상의 시스템과 다르지 않다. 다른 점은 '학습한다'는 요소가 있다는 것이다. 학습해 대답을 하게 하는 기능을 '학습모델' 이라고 한다. 이 학습 모델이 통상의 시스템 기능에 있어 '처리(프로세스)'에 해당한다. 학습 모델이 학습하는 처리 구조를 '학습 알고리즘' 이라고 한다. 어느 알고리즘을 사용하는 냐에 따라 정확도(정밀도)가 달라진다. AI로 대처하고 싶은 과제의 특성에 따라 적절한 알고리즘이 달라진다.

학습 알고리즘에는 결정 목(Tree), 로지스틱 회귀, CNN(Convolutional neural network) 등 여러가지가 있다. 물론 이러한 지식이 있으면 좋지만, 적절한 알고리즘을 자동 선정하는 기계 학습 프레임워크도 있다. 발주자인 유저 입장에서 AI 프로젝트에 참가하고 있다면 그렇게 신경 쓸 필요가 없다. 대표적인 알고리즘 명칭이나 높은 정확도(정밀도)가 나오는 알고리즘은 과제에 따라 다르다는 것만 알아둬도 된다.

단, 요건정의는 확실히 할 필요가 있다. 발주나 IT 벤더가 AI에 대해 정리해야 할 요건은 ▲아웃풋(출력 데이터) 정의: AI로 무엇을 얻고 싶은가? ▲인풋(입력 데이터) 정의:  AI에 어떤 데이터를 줄 것인가? ▲전(Pre)처리 요건정의: 데이터를 어떻게 가공할 것인가? ▲교사 데이터(정답 라벨) 정의 : AI로 어떤 출력이 얻어지면 정답으로 할 것인가?(교사가 있는 학습의 경우) 등 크게 4가지다. 

이들 4개 요건을 자세히 알아보자.

먼저 아웃풋 정의는 AI로 도출하고 싶은 것이 무엇인가를 결정하는 거다. 구상 단계의 요구정의 단계에서 정리한 AI 기능과 무엇이 다를까? 그 차이는 화면(Front End) 기능요건 등 다른 요건이 명확히 되어 있다는 것이다. A사의 빵 추천 AI 요구정의에서는 매월 배송 개수가 3개, 5개, 8개의 3패턴이 있었다. 이를 화면 기능 요건정의에서 정밀조사한 결과, 배송 개수는 3개만 결정, 5개나 8개는 선택할 수 없게 되었다. AI로 3개의 조합 만 생각하면 되게 됐다. 즉, 아웃풋은 '이용자별로 3개의 빵 조합을 작성한다'가 되었다.

다음은 '인풋 정의'다. AI는 입력된 데이터 패턴을 정답으로 학습, 새로운 데이터가 입력될 때 그 패턴에 맞춰 답을 내는 처리를 한다. 잘못된 인풋을 주면 잘못된 답을 출력한다. 그러므로 '어떤 상태이면 옳은가' 라는 인풋 데이터 조건을 확실히 정의해야 하며, 이는 관계자와 인식을 맞출 필요가 있다. A사 경우는 과거의 POS 데이터가 인풋이 된다. 이 POS 데이터에는 고객 ID와 구입 이력이 들어 있다. 이 POS 데이터를 전부 AI의 인풋으로 하지 않는다. 아웃풋인 '이용자 별로 3개의 빵 조합'을 실현하기 위한 최적의 데이터 만을 추출할 필요가 있다. A사는 POS 데이터에서 아래 조건을 충족하는 데이터를 추출하는 것이 좋다.

-최근 2년간의 구입 데이터

-전개 예정인 수도권, 부산, 대구, 광주, 대전의 데이터

-구입일시가 아침 7~9시의 데이터

-구입 개수가 3개 이하의 데이터

왜 이런 조건이 필요한가 순서대로 알아보자. 먼저 최근 2년간의 구입 데이터다. 시험 삼아 10년 전 구입 데이터를 이용해야 할지를 생각해 보자. 과연 10년 지나면 원래 상품이 다를 가능성도 있고 지금의 20대 이용자와 10년 전 20대 이용자의 기호도 다를지 모른다. 이러한 이유로 최근 n년의 데이터를 이용할 필요가 있다고 할 수 있다. 이 n의 수치는 '지금과 다름없는 구입 경향은 몇년 전부터 일까?'라는 관점에서 정하면 좋을 것이다. 둘째, 전개 예정인 수도권, 부산, 대구, 광주, 대전 데이터 문제다. 지역을 한정하는 것은 지역에 따라 라이프스타일이나 기호성이 다를 가능성이 있다. 예를 들면, 대도시권 이용자에게 빵을 추천하는데 지방의 구입 데이터가 인풋이 돼 있으면 올바른 추천을 할 수 없다. 그 다음 구입 일시가 아침 7~9시의 데이터 문제다. 이 서비스는 조식 빵의 배달을 예정하고 있다. 조식 빵은 점심이나 간식으로 구입하는 빵과는 종류가 다를 것이다. 그러므로 구입 시간을 좁힌다. 마지막으로 구입 개수가 3개 이하 데이터 문제다. 예를 들면, 다양한 빵을 5개 이상 구입하고 있는 데이터가 있다고 하자. 그 구입자는 자신만의 1인용으로 구입했다고 말할 수 없을 것이다. 가족 등 자신 이외의 것도 구입하고 있을 가능성이 높다. 이러한 데이터를 포함해 학습시키면 1인용 추천에 맞지 않는 결과가 될 우려가 있다.

이상의 항목을 고려하는 것은 특별히 어려운 일이 아니다. '인간이라면 어떤 전제 조건으로 추천할까?'라는 사고방식으로 정리하면 된다. 이 작업에는 상품 특성이나 고객, 고객 행동의 지식과 이해가 요구된다. 이 때문에 발주자인 유저가 해야 한다고 생각할 수 있다.

고객 심리나 행동을 파악한 파라미터 판별

이용하는 데이터 조건이 명확해지면 다음은 파라미터(매개변수)를 정한다. 성별이나 연령을 파라미터로 AI에 주면 AI는 성별, 연령과 구입한 빵의 경향을 판독해 추천할 빵을 제안한다. 여기에 지역을 더하면 AI는 성별, 연령, 지역과 구입 빵의 경향을 읽어 낸다. 건강(Healthy) 지향 인지 여부도 구입 상품에 영향을 줄 수 있다. 구입한 빵의 총 칼로리도 파라미터에 추가하는 것이 좋을지도 모른다.

AI는 이와 같이 부여한 파라미터 경향을 판독해 학습한다. 실제 고객 심리나 행동을 파악한 파라미터를 찾아낼 수 있는 지 여부가 A사의 실용화 여부를 판단하는 결정적 수단이 된다. 처음부터 완벽한 파라미터를 판별하는 것은 불가능한다. 가장 그럴 듯한 파라미터를 선정, 자꾸 시도해 가는 수밖에 없다.

데이터 전(Pre) 처리가 데이터 분석 성패 좌우

인풋이 정해지면 다음은 처리 요건정의를 시행한다. 즉, 인풋 데이터를 만들기 위한 전 처리 요건을 정한다. 전 처리는 원 데이터를 가공해 AI에 입력할 수 있는 데이터로 만드는 것이다. 이번 회에서는 서비스 이용자별로 그 이용자에게 최적의 빵을 추천하기 위한 학습 모델에 구입 이력을 입력한다. 만약 POS 데이터가 상품 단위로 보존되어 있는 경우, 이것을 이용자 단위로 변환하는 처리가 그림2처럼 필요하게 된다.

칼로리도 파라미터로 부여하고 싶으므로 상품 명으로 칼로리를 산출, 계산하는 처리도 발생한다. 예를 들면 조식 섭취 칼로리 목표로 500kcal를 기본으로 한다고 하자. 총 칼로리가 이를 넘으면 '고(High)', 300kcal 이하면 '저(Low)', 그 중간은 '중(Mean)' 등으로 분류해 놓는다.

개개의 고객 성별이나 연령, 시도군구 데이터로 관련시켜 두고 싶으므로 회원 데이터베이스에서 이들 항목을 취득해 구입 이력 데이터에 통합(Merge)하는 처리도 필요하다. 이와 같이 전 처리로 정해 두어야 할 요건은 여러가지가 있다. 데이터 분석 프로젝트는 데이터 가공이라고 하는 전 처리에 총 공수(Man/Hour)의 80%를 사용한다. 이는 A사 예를 봐도 알 수 있다.

어떤 교사 데이터를 준비할지 결정

마지막으로 교사 데이터 정의를 결정한다. 교사가 있는 학습의 경우, 교사 데이터와 테스트 데이터를 준비할 필요가 있다. 교사 데이터란 어느 것이 정답인지 표시하는 라벨이 부착된 데이터이다. 교사 데이터는 A사의 케이스에서는 필요하지 않을지 모른다. 추천의 경우, K근방법(Neighboring method) 등 교사가 없는 학습 모델이 일반적으로 채용되기 때문이다. 그러나 교사가 있는 학습 모델의 경우 교사 데이터가 필요하다.

예를 들면 '빵의 정기 배달 서비스를 이용자가 해약할 지 여부'를 예상하는 AI를 만든다고 하자. 교사 데이터로 일정 기간에 실제로 '해약 이용자'의 회원 정보나 신청 정보, 서비스 액세스 이력 등을 준비한다. 동시에 '해약하지 않은 이용자'의 동일한 정보를 준비한다. '해약했다/하지 않았다'는 실제 이용자의 행동을 정답으로 각각 이용자의 경향을 학습하는 것이다.

그 학습 결과에 근거해 이용자의 예측을 실행한다. 새로운 이용자가 들어왔다면 그 사람의 속성이나 행동 데이터를 바탕으로 이 이용자는 해약한다, 혹은 하지 않는다를 예측한다. 교사가 있는 학습의 경우, 교사 데이터 조건을 요건으로 정해 둘 필요가 있다. '해약한다/해약하지 않는다'처럼 대상을 2개로 분류하는 것은 2개의 2항 분류 문제라고 부른다. '해약한다/계속한다/플랜을 업그레이드한다'처럼 대상을 3개 이상으로 분류하는 케이스는 다항 분류 문제라고 부른다.

교사 데이터를 준비할 때 중요한 것은 각 분류의 정답 데이터를 동일한 분량으로 준비하는 것이다. '해약한다/하지 않는다'처럼 2항 분류라면 해약 이용자 데이터와 해약하지 않은 이용자의 데이터를 동일한 양으로 준비할 필요가 있다.

이상으로 AI 기능 요건을 정리해봤다. 그림4처럼 요구 정의 단계에 비해 요건도 좁혀 각각의 처리 요건도 구체화했다. 여기까지 정리돼 있다면 엔지니어도 순조롭게 설계에 들어갈 수 있을 것이다.

*참고문헌

-기획입〮안에서 시스템 개발까지 실제로 사용하는 DX프로젝트의 교과서 (일경BP사, 2020년3월)

필자 심기보는...

1976년부터 한전에서 SW개발자로 전산업무를 시작했다. 30여년간 정보화 사업 기획, 개발, 운영업무를 수행하면서 SI사업 등 발주관리 전문가로 일했다.

심기보 전 정보통신기술사협회장

우리나라 최초로 FP(기능점수)법에 의한 SW사업대가 기준연구 및 보급으로 SW사업 선진화에 기여했다. SEC 정책자문위원과 SW사업분쟁조정위원회위원, 정보통신기술사협회장, KAIST 전산학부 겸직교수, SW정책연구소 초빙연구원 등을 지냈다. 숭실대 대학원에서 'FP법을 이용한 다중회귀 분석적 SW사업대가 산정모델 연구'로 박사 학위를 받았다. 현재는 심기보기술사설계사무소를 설립해 SW설계‧견적‧감정 일을 하고 있다. 특히 SW사업 분쟁방지를 위한 SW사업 요건정의 및 기본설계 전문가로 활동하고 있다.

심기보 전 정보통신기술사협회장(pmodosa@naver.co.kr)

Copyright © 지디넷코리아. 무단전재 및 재배포 금지.

이 기사에 대해 어떻게 생각하시나요?