너와 나의 연결고리(feat. 연관분석)

“너와! 나의! 연결! 고리! 이건! 우리! 안의! 소리!”

이 노래 가사는 2014년 한국 힙합씬 최대의 이슈 트랙중 하나인 일리네어 레코즈의 연결고리 라는 노래 중 메인 플로우의 한 부분이다.

이 노래의 가사 절반 이상이 저 가사로 가득 차있다. 아마도 연관관계가 없어보이는 너와 나를 이어주는 공감대을 찾고 싶어 했던 것 아니였을까 싶다.

이렇듯, 우리는 언제나 연관관계가 없어보이는 것들 사이에서 접점인 연결고리를 찾고 싶어 한다. 주변 사람들에 대해서도 물론이고 자신이 가지고 있는 물건, 취향들 심지어는 행동까지 연관지어 생각한다.

특히나, 최근에는 디지털 뉴딜이니 데이터 댐이니 하는 이슈로 인해서 데이터에 관심이 집중되고 있고, 이러한 영향으로 자신이 가지고 있는 다양한 데이터 속에서 연관된 규칙을 찾고자하는 사람들이 늘어나고 있다.

게다가 요즘 핫한 AI라는 것이 무의미해 보이는 데이터 속에서 의미 있는 패턴(연관규칙)을 저절로 찾아 준다고 하니, 꼭 한번 해보고 싶을 것이다.

그렇다면, 연관 분석(Association Analysis)이 무엇인지 개념부터 사용법까지 하나씩 알아보자.

경영학에서는 장바구니 분석(Market Basket Analysis)으로 알려진 연관분석은 ‘전체 영역에서 서로 다른 두 아이템 집합이 어떠한 조건과 반응의 형태(if – then)로 발생하는가’ 를 일련의 규칙으로 생성하는 방법(혹은 알고리즘)이다.

예를 들어 ‘아메리카노를 마시는 손님중 10%가 브라우니를 먹는다.’라고 하거나 ‘샌드위치를 먹는 고객의 30%가 탄산수를 함께 마신다.’ 과 같은 식의 결론을 내는 것이다.

이런 규칙성을 많이 사용하는 분야는 대표적으로 판매업이 있다. 고객이 어떤 상품을 고르면 그 상품을 구매한 다른 고객들이 선택한 다른 상품들을 제안해 준다던지 하는 컨텐츠 기반 추천의 기본이 되는 것이다.

그럼 이제, 이러한 연관 분석을 하기 위해 사용되는 데이터부터 살펴보자, 동네 카페 매출이력(transaction)이 다음과 같이 주어졌다고 생각해보자.

거래번호품목
1154아메리카노
아이스 카페모카
허니브래드
블루베리 치즈케이크
치즈 케이크
1155카라멜 마키아또
브라우니
크림치즈 베이글
1156아메리카노
탄산수
크랜베리 치킨 샌드위치
1157아메리카노
카라멜 마끼아또
허니 브래드

위 데이터에서 각 고객이 구입한 품목들을 확인 할 수 있는데, 데이터의 연관규칙을 찾기 위해서는 다음과 같이 희소행렬(Sparse Matrix)로 나타내 주면 좋다.

아메리카노아이스 카페모카카라멜 마키아또탄산수블루베리 치즈 케이크치즈 케이크허니 브래드브라우니크림 치즈 베이글크랜베리 치킨 샌드위치
11541100111000
11550010000110
11561001000001
11571010001000

이제 연관규칙을 찾을 준비는 되었다. 조건과 반응 형태로 규칙을 만들면 되는데, 다음과 같이 규칙을 만들 수 있다.

  • 아메리카노를 마시는 사람은 아이스 카페모카도 마신다.
  • 아메리카노를 마시는 사람은 치즈케이크도 먹는다.
  • 아메리카노를 마시는 사람은 허니 브래드도 먹는다.
  • 아메리카노를 마시는 ….

“어?! 뭔가 이상하게 생각 했던 것과는 다르다. 뭔가 그럴듯하게 맞아 떨어지는 규칙은 아니네?” 라고 생각 들것이다.

그 생각이 맞다. 이런식으로 규칙을 만든다면, 주어진 데이터에서 무수히 많은 규칙을 만들어 낼 수 있다. 우리는 이 많은 규칙들 가운데서도 좋은 규칙을 찾아 내는 방법을 알아야 한다.

그렇다면, 좋은 규칙은 어떻게 찾을까?

좋은 규칙을 판단하기 위해서 규칙의 효용성을 나타내는 지표는 지지도(Support)신뢰도(Confidence) 그리고 향상도(Lift)이다. 이 3가지 지표를 모두 반영해 규칙의 효용성을 판단하고 좋은 규칙을 선택해야 한다.

이 3가지 지표를 구하는 방법은 다음과 같다.

  1. 지지도(Support)
    • 전체 거래 중 품목 A와 품목 B를 동시에 포함하는 거래의 비율로 정의한다.
지지도 공식
  1. 신뢰도(Confidence)
    • 품목 A를 포함한 거래 중에서 품목 A와 품목 B가 같이 포함될 활률이다. 연관성의 정도를 파악할 수 있다.
신뢰도 공식
  1. 향상도(Lift)
    • A가 구매되지 않았을 때 품목 B의 구매확률에 비해 A가 구매됐을 때 품목 B의 구매활률의 증가 비(Rate)이다. 연관규칙 A -> B는 품목 A와 품목 B의 구매가 서로 관련이 없는 경우에 향상도가 1이 된다.
향상도 공식

이제 좋은 규칙을 고르는 법도 알았으니 실제로 제대로 된 규칙을 찾아 보자.

가능한 모든 경우의 수를 탐색하여 지지도, 신뢰도, 향상도가 높은 규칙을 찾을 수 있다면 가장 이상적일 것이다. 데이터가 작으면 가능할지도 모르겠지만, 데이터가 증가 하면 할수록 계산에 드는 속도도 기하급수적으로 늘어나게 된다.

(알고리즘의 데이터 증가에 대한 복잡도는 n^2이다.)

이러한 이유로 자주 발생하는 아이템에 대해서 빈발 집합(Frequent item sets)을 만들고 이 집합만 고려하는 규칙을 만드는 것이 효율적이다.

예를들어 품목 탄산수의 지지도, 즉 P(탄산수)가 0.1로 나타났다고 보면, 탄산수를 포함한 품목의 지지도는 아무리 높아도 0.1을 넘지 못할 것이다. 탄산수가 단독으로 등장할 확률인 P(탄산수)는 아무리 크게 나와도 P(탄산수, 아메리카노)를 넘지 못 할 것이기 때문이다. 이때 {탄산수, 아메리카노}는 {탄산수}, {아메리카노}의 초월집합(Super set)이라고 한다.

임의의 품목 집합의 지지도가 일정 기준을 넘지 못한다면 해당 집합의 초월 집합의 지지도는 그 기준보다 무조건 더 작을 것이기 때문에 유용한 규칙으로 선택 될 수 없다. 이처럼 최소 지지도 요건을 만족하지 못하는 품목 집합의 규칙을 애당초 제외하면 계산의 효율성을 높일 수 있다.

빈발관계 탐색

그럼 다시 연관 규칙분석을 수행해보자. 최소 지지도 요건을 0.3으로 설정했다고 하자. 그럼 각 품목의 지지도는 아메리카노(0.75), 아이스 카페모카(0.25), 카라멜 마키아또(0.5), 탄산수(0.25), 블루베리 치즈 케이크(0.25), 치즈 케이크(0.25), 허니 브래드(0.5), 브라우니(0.25), 크림 치즈 베이글(0.25), 크랜베리 치킨 샌드위치(0.25)로 나타낼 수 있다.

여기서 최소 지지도를 만족하지 못하는 것들을 제외하여 2개짜리 품목 집합을 생성하면, 다음과 같다.

아메리카노카라멜 마키아또허니 브래드
아메리카노00.250.5
카라멜 마키아또00.25
허니 브래드0

여기서도 마찬가지로 품목 {아메리카노, 카라멜 마키아또}와 {카라멜 마키아또, 허니 브래드}는 최소 지지도 0.3을 만족하지 못하였으니 제외 한다. 이런 방식으로 더 이상 최소 지지를 만족하지 못하는 집합이 없을 때까지 품목 집합의 크기를 1씩 증가 시켜가면서 반복 수행 한다.

이러한 방식으로 구한 동네 카페 매출이력 4건을 토대로 가장 좋은(강한) 연관 규칙은 “아메리카노를 마시는 사람은 허니 브래드도 동시에 먹는다.”가 되는 셈이다.

조건절결과절지지도신뢰도향상도
아메리카노허니 브래드0.50.671.33

여기까지, 연관관계 분석 방법에 대해서 알아보았고, 연관 분석을 통해서 그냥 눈으로만 봐서는 알 수 없었던 거래 데이터에서 규칙을 찾아 낼 수 있었다.

이 외에도 연관 분석 방법은 거래 데이터 뿐만 아니라 순차적이고 반복적으로 발생하는 대부분의 데이터에 적용 할 수 있다.

  • 운영하는 홈페이지에서 어떤 순서로 컨텐츠를 클릭 하였는가?
  • 특정 직무의 사람들은 어떤 순서로 일을 하는가?
  • 특정 문서에 출현한 단어들이 어떤 유의미한 의미로 요약 될 수 있는가?

위의 예 처럼 생각해 볼 수록 많은 응용점들이 있을 거라 생각한다. 한번 자신이 가지고 있는 데이터를 이용하여 각 특성들이 어떤 연결고리가 있는지 분석해 볼 수 있을 것 같다.

있을 수도 있고 없을 수도 있습니다.

갑자기 앞뒤도 없이 “있을 수도 있고 없을 수도 있다.”니 이게 무슨 말인가 싶을 것이다. 이번 글은 양자컴퓨터에 대한 이야기를 다루어 보려고 하는데, 양자컴퓨터의 원리인 양자역학의 불확정성 원리를 쉽게 표현한 말인 것 같아 사용하였다.

사실, 이 말을 들어도 전혀 쉽지않다는 것을 안다. 미국의 천재 물리학자 리처드 파인만은 양자역학에 대해서 “양자역학을 제대로 이해하는 사람은 나를 포함해 아무도 없다”라고 말할 정도로 양자영학은 난해한 주제이다. 하지만 현재 양자역학은 컴퓨터의 주요 부품인 반도체 동작 원리에 사용는 등 점점 우리의 현실세계로 다가 오고 있다. 이런 점에서 전부를 다 알지는 못해도 기술의 발전의 흐름을 이해가기 위해서라도 한번쯤 알아볼 필요가 있다.

Quantum Computing

“우선, 양자컴퓨터를 설명하기에 앞서 기본 원리가 되는 “양자역학”에 대해서 알아보자. “

제일 먼저, 양자역학(Quantum mechanics)이라는 용어 의미를 살펴볼 필요가 있다.

양자역학이란 단어는 양자라는 단어와 역학이라는 단어 2개가 합쳐져서 만들어진 용어이다. 여기서 양자(Quantum)는 양을 의미하는 Quantity에서 온 말로, 어떤 물질이나 에너지양이 띄엄띄엄 떨어져 불연속적으로 존재하는 것을 가리키는 말이다. 역학(Mechanics)은 외력을 받고 있는 물체의 정지 또는 운동상태를 설명하는 학문이다. 간단히 말해 양자역학(Quantum mechanics)“불연속적으로 띄엄띄엄 떨어진 물질이나 에너지양이 외력을 받으면 어떤 운동을 하게 되는지 밝히는 학문”이라고 할 수 있다.

이렇게만 말하면 우리가 학창시절 배운 F=ma라는 개념하고 크게 차이가 없어 보인다. 거시적인 관점에서는 이런 이해가 맞다. 하지만 양자 역학은 분자, 원자, 전자, 소립자 등을 다루는 미시적인 세계의 현상을 다룬다는 것이 특징이다.

미시적인 세계에서는 아무리 기이하고 터무니없는 사건이라 해도, 발생 확률이 0이 아닌 이상 반드시 일어난다. 이는 F=ma로는 설명이 안된다.

“아니 잠깐만… 발생 확률이라니 이건 또 무슨말인가?”

F=ma는 뉴턴의 운동 법칙으로 고전물리학의 대표적인 공식이다. 이는 모든 질량(m)을 가진 물체가 가속도(a)를 가지고 움직이면 힘을 계산해 낼 수 있다 것을 의미한다. 즉, 모든 물체는 현재의 운동상태와 힘을 받는 요소에 의해서 예측가능하다는 개념이다.

예를 들어 보자, 축구선수가 골대를 향해 공을 힘껏 찼을때, 골키퍼는 공의 운동방향을 판단해서 날라오는 공을 막으려고 할 것이다.

공의 위치 따른 골키퍼의 위치

이때의 현상을 다시 한번 하나씩 집어 보자. 공이라는 물체에 축구선수가 힘을 가해 가속도를 주었고 공은 주어진 가속도에 의해서 골대까지 날아갈 것이다. 이 공이 골대까지 날아가는 것은 예측할 수 있는 것이고 골키퍼는 예측되는 공의 운동방향으로 몸을 움직여 공을 막을 것이다.

말인 즉슨, 고전 물리학에서 힘을 받는 모든 물체는 예측이 가능했었다. 하지만 19세기 후반부터 미시적 세계에서 예측이 불가능한 모순된 현상이 발견되기 시작했다. 대표적인 예가 빛이다. 빛은 파동이면서 동시에 입자인 특성을 모두 갖는다. 그리고 이러한 특성은 중첩된 상태를 한 번에 확인 할 수 있는 것이 아니라 관측되는 순간 결정 된다. 즉, 관측되기 전에는 빛은 입자이고 하면서 파동이기도 한 상태이다가 관측을 하는 순간 파동 혹은 입자의 형태를 띈다.

이 무슨 말도 안되는 소리인가 싶지만, 이것은 실제 실험을 통해서 밝혀졌다.

“이중슬릿 실험의 관찰자 효과”라는 현상인데, 이중슬릿에 전자를 하나씩 쏘면 파동의 특성인 간섭현상으로 인해서 여러 줄이 나타난다. 하지만 똑같이 실험하는 조건에서 이중슬릿을 지나는 전자가 하나씩 지나가는지 관측자가 확인해 가면서 실험하면 빛은 입자의 특성을 나타내며 2줄만 나타난다.

이중슬릿 실험의 관찰자 효과

바로 이러한 부분이 고전물리학에서 설명하지 못한 모순된 현상이며, 양자역학에서도 현상을 설명 할 뿐 결정 원리에 대해서는 아직도 ‘신이 부리는 요술(God’s trick)’ 이라고 부르는 부분이다.

“아무도 이해하지 못한 이런 것을 어떻게 이용해서 컴퓨터를 만들었다는 것일까?”

양자컴퓨터는 큐비트라는 단위를 사용하는데 이것은 양자의 불확정성 원리를 이용한 것이다. 현재 우리가 사용하고 있는 전통적인 컴퓨터는 정보를 비트(0과 1) 단위로 처리하고 저장한다. 반면, 양자컴퓨터는 정보를 0과 1을 동시에 갖는 큐비트 단위로 처리하고 저장한다.

큐비트(QUBIT)를 표현한 블로흐 구면(Bloch Sphere)

예를 들어 목적지로 가는 N개의 길에서 가장 빠른 길을 찾는다고 가정해 보자.

현재의 비트단위 컴퓨터는 N개의 길을 모두 한번씩 가보고 시간이 가장 적게 걸린 길을 찾을 것이다. 하지만 양자컴퓨터인 경우 N개의 길을 동시에 탐색한다. 가장 빠른 길이 관측되기 전까지 모든 길에 있을 수 있는 중첩된 상태이기 때문이다. 그리고 제일 먼저 목적지에 도착한 상태가 관측이 되면, 그것이 가장 빠른 길로 결정되고 나머지 상태는 사라지는 것이다.

N의 크기가 어떻든 1번만 수행하게 되니 기존의 비트 컴퓨터 보다 정보 처리 능력이 엄청나다고 볼 수 있다. 이런 엄청난 연산력으로 통해서 그 동안 슈퍼 컴퓨터로도 풀지 못했던 수학적 난제를 양자 컴퓨터가 해결해 주고 있다고 한다.

실제로 2013년 구글이 선보인 양자컴퓨터 ‘시커모어’는 현존 최고 성능을 자랑하는 슈퍼컴퓨터로도 1만년이 걸리는 난제를 단 200초(약 3분 20초) 만에 풀어버렸다고 한다. 특히나, 이렇게 빠른 연산력 덕분에 인공지능 분야에서는 시뮬레이션을 기하급수적인 속도로 돌려서 학습시킬 수 있게 되어서 많은 연구가 이루어 지고 있다.

“양자컴퓨터는 현재 어느 수준까지 왔을까?”

양자컴퓨터는 아직 해결해야하는 난제가 많이 남아 있다. 기본 단위인 양자를 충분한 시간동안 유지 하기 위해서는 차폐시설이 중요하다. 양자는 외부 환경 변화에 매우 민감하기 때문에 고도의 방음, 차진 설비를 갖춰야 하고 양자를 이용하기 때문에 기본적으로 영하 273도인 절대온도를 유지해야 하는등 아직 일반인들이 사용하는 수준의 상용화는 아직 넘어야 하는 산들이 많다.

하지만 요즘이 어떤 시대인가? 클라우드 시대 아닌가.

Google, IBM, MS, AWS 등 글로벌 클라우드 회사들이 양자컴퓨터에 대한 연구에 뛰어들어 경쟁을 하고 있다. 그리고 아직은 정식 출시는 아니지만 대부분의 글로벌 클라우드 서비스에는 양자컴퓨팅을 경험해 볼 수 있는 클라우드 서비스들를 출시하고 있다.

  • MS – Azure Quantum
  • IBM – Q
  • AWS – Bra-ket
  • Google – Zurich

이러한 추세를 생각해 봤을때, 빠른면 3년 길어도 5년이면 양자컴퓨터에 대한 서비스 들이 본격적으로 나올 것으로 생각 된다. 그리고 이러한 변화는 비트 컴퓨터 환경에서 프로그램을 만들던 개발 패러다임에 많은 영향을 줄 것으로 보인다.

사물이 살아 있다!?

2006년에 개봉한 ‘벤 스틸러’ 주연의 ‘영화 박물관이 살아있다.’는 박물관에서 경비일을 맡게 된 주인공이 밤마다 전시된 인형들이 살아 움직이는 것을 보게 되면서 겪게 되는 사건을 담은 코미디 영화이다.

영화에 나오는 것처럼 박물관에 전시되어 있는 인형들이 실제 생명체처럼 지능을 가지고 움직이는 것은 사실 말도 안되는 일이다. 그렇지만 이런 말도 안되는 일들이 이제는 실제로 일어나려고 하고 있다. 그것이 바로 자율 사물이다.

“사물 인터넷을 뛰어 넘어 사물이 자율적인 지능을 갖는다.”

자율 사물(Internet Of Autonomous Things, IoAT)이란, 사물에 인터넷이 연결되어 정보를 수집하고 교환하는 개념의 사물 인터넷(Internet of Things, IoT)에 AI가 탑제되면서 사물이 자율성을 가지고 움직이게 되는 것을 말한다.

Bring AI to device everywhere

사물 인터넷에 대한 사례로는, 최근 몇 년 사이에 새로 만들어지는 가전 제품들을 생각해 볼 수 있다. 냉장고 내부에 카메라와 각종 센서들이 부착되어 내부를 들여다 보지 않아도 냉장고에 무엇이 있고 상태가 어떤지 알 수 있다. 그리고 에어컨이나 보일러의 경우 온도 조절 기능을 스마트폰을 이용하여 원격으로 사용 할 수 있도록 되어 있어서 굳이 제품별 리모콘을 사용하지 않아도 스마트폰 하나로 모두 제어 가능하다.

이제는 대부분의 가전이 스마트폰 하나로 제어가 가능하다고 볼 수 있다. 그리고 이러한 인터넷이 연결된 사물들, 사물 인터넷(IoT)에 AI까지 탑제 되어 자율성까지 갖게 된 것이 자율 사물이다.

앞서 언급한 IoT가 적용된 사례에 AI를 적용해 보자.

냉장고 내부를 들여다 보는 각종 센서들은 보관된 음식들의 상태를 보고 적정 온도로 설정 하고 음식들을 더 오래 신선도를 유지 하도록 스스로 조절한다. 에어컨이나 보일러의 경우 사람이 사용하는 시간이나 사용성을 학습하여 사람이 신경쓰지 않아도 필요한 때에 적절히 동작한다.

“사물이 자율성을 갖고 협업하기 시작했다.”

각각의 사물이 자율성을 갖기 시작하면서, 자율 사물들 간의 협업도 가능해지기 시작했다. 실제로, 2019년 미국 Georgia 대학교에서는 자율 사물들 간의 협업을 이용하여 무인 농업을 연구하고 있다고 발표 했다.

미국 NRI 프로젝트

아직은 연구 단계이긴 하지만 상용화 되어 농업에 적용 된다면, 사람은 더 이상 농사를 짓기 위해 육체적인 노동을 하지 않아도 수확물을 얻을 수 있게 된다.

급격한 AI 기술 발전에 힘입어 사물의 자율성은 계속해서 강화 될 것으로 보이며, 농업 뿐만 아니라 각종 제조, 물류, 건설 등의 산업에 적용 될 것으로 보인다.

“앞으로의 자율 사물의 미래 산업 전망은?”

자율 사물은 2016년부터 가트너의 미래 산업 전망에 사물인터넷과 기계 학습이라는 형태로 소개 되기 시작하다가 2019년부터는 10대 전략 기술 트랜드에 포함되어, 향후 5년 내 자율 사물 시대가 올 것이라고 전망되고 있다.

또한, 글로벌 시장 조사 기관인 MarketsandMarkets에서는 IoT용 AI 시장이 2019년 51억 달러에서, 2024년에는 162억 달러 규모까지 확대 될 것으로 전망하고 있다.

Attractive market opportunities in the AI in IoT market

자율 사물의 핵심 기반은 AI이다. 현재 AI는 인간이 수행하던 많은 업무를 자동화하는 데 기여하고 있다. 하지만 앞으로는 자동화의 수준을 넘어 사물에 탑재되어 동작하는 온디바이스(on-device) 방식으로 진화되어 업무 절차와 판단 기준을 학습함으로써 인간의 개입 없이 동작하는 자율화를 실현해 나갈 것이다.

현재의 AI 기술은 비록 제한된 범위 내에서만 자율적으로 판단, 의사결정을 할 수 있는 수준에 도달하고 있지만, 앞으로 AI 관련 기술의 꾸준한 투자와 연구 개발로 인해서 더 높은 수준의 자율 사물을 확산시킬으로 전망 된다. 이는 많은 산업군의 업무 생태계의 변화를 의미 한다고 생각되며, 앞으로 어떤 새로운 가치를 발견하고, 적응해 나갈 것인가를 고민해 봐야 할 것 같다.


RPA, 사람과 로봇이 협업하는 시대

RPA는 Robotic Process Automation의 약자로, 사람이 하는 단순 반복 업무를 로봇을 통해서 자동화하는 것을 의미한다. 여기서 로봇이라 하면, 공장 생산 라인의 실체적 기계가 생각이 들겠지만, RPA는 Software로 구현된 전산업무를 위한 로봇이다.

개념적으로 그리 어려운 것은 아니지만, 최근 몇 년간 엄청나게 가파른 성장을 보여주고 있다. HFS 시장 조사기관에 따르면 RPA 시장 규모는 2016년 약 6억 1,000만 달러를 기록한 이래로 매년 평균 40% 성장하여 2022년에는 약 43억 달러 규모로 성장할 것으로 보여진다.

RPA Service and Software Market 2016-2022

무엇 때문에 이렇게 성장하는 것 일까?

그 동안 적용이 어려웠던 일선 업무 환경까지 자동화가 확장 된 것이 크다고 볼 수 있다. 일선 업무 환경(Front Office)은 사람이 판단해야 하는 경우가 많아 정형화가 어렵기 때문에 자동화를 적용하기엔 많은 어려움이 있었다. 대부분 일선 업무들의 자동화라는 것들은 지원 업무(Back Office)를 통해서 처리 결과를 받아 처리하는 형태로 업무가 이루어 지고 있었다.

예를들어, 인바운드 고객 서비스를 처리 한다고 해보자. 고객 서비스 관리 채널을 통해 고객 서비스 내용을 접수한 담당자는 서비스를 요청한 고객에 대한 정보를 내부에서 관리하는 고객 관계 관리(CRM: Customer Relationship Management) 시스템에서 조회/확인할 것이다. 그리고 확인된 고객정보를 기준으로 서비스 내용을 해결하고 최종 처리 결과에 대해서 고객에게 전달하고 같은 내용을 내부 서비스 관리 시스템에 등록할 것이다.

위 예시에서 언급된 CRM 시스템은 일선 업무에서 수작업으로 관리하던 고객 정보를 지원 업무를 통해 관리 정보를 정형화 하고 프로세스 체계를 만들어 고객정보 관리를 자동화 시킨 시스템이다.

즉, RPA 이전의 자동화라는 것은 일선 업무에서 필요한 내용을 지원 업무로부터 자동화 서비스 형태로 제공 받은 것을 말한다. 하지만 RPA가 등장한 이후에는 일선 업무 담당자가 자신이 하는 일에 대한 일련의 과정을 프로세스로 정의만 할 수 있으면 지원 업무를 통하지 않고도 많은 부분 자동화 할 수 있게 되었다.

다시 고객 서비스 예시로 돌아가 RPA를 적용해 보자. 일선 업무 담당자가 고객 서비스를 접수하면 그 순간 자동으로 RPA 로봇이 관련 고객 정보를 수집하여 보여 줄 것이다. 고객 서비스를 하는 데 있어서 선제적으로 고객 정보를 파악할 수 있게 되는 것이다. 그리고 고객 서비스 응대 완료 후 고객에게 답변을 보내면 RPA 로봇이 같은 내용을 내부 서비스 관리 시스템에 자동으로 등록해 줄 것이다. 같은 내용을 여러 시스템에 등록하던 업무를 1회만 하게 되어 업무 효율을 높일 수가 있게 된다.

마치 RPA 로봇과 협업을 하여 업무를 처리 한다고 생각할 수 있다.

일선 업무 담당자가 수작업으로 하던 기간계 업무를 RPA 로봇과 협업하여 생산성을 높일 수 있게 된 것이다. 이러한 이유로 대부분의 산업 분야로부터 지대한 관심을 받게 되었고, 그것이 엄청나게 가파른 성장으로 이어진 것이다.

RPA를 충분히 잘 활용하려면 어떤것들이 준비 되어 있어야 할까?

도입 초반에는 사람의 판단이 필요없는 단순 반복적인 작업이나, 간단한 조회성 잡무들에 적용을 하게 된다. 가장 가까운 예로 내부 관리 시스템(ERP, Groupware 등)에 로그인을 하거나 받은 메일함에서 특정 메일 데이터를 정리하는 것들이 있다. 이러한 것들만 대체되어도 업무를 수행 하는 데 있어서 많은 도움이 된다. 하지만 시간이 갈 수록, 이러한 부분은 한사람이 처리할 수 있는 일의 양을 늘렸을 뿐, 근본적으로 전체적인 업무를 자동화 하진 못하는 한계가 나타난다.

RPA 도입이 충분한 효과를 내기 위해서는 자신의 하고 있는 일련의 업무를 전체적으로 이해하고 자동화 하기 위한 단위 프로세스를 도출해 내는 능력을 키워야 한다. 그리고 도출된 단위 프로세스들을 지속적으로 자동화 컨텐츠로 준비 해두어야만 RPA를 잘 활용할 수 있게 된다.

“앞으로는 AI와 RPA 결합을 통해 초자동화 시대가 될 것이다.”

현재는 사람의 직관으로 판단해야 하는 부분으로 인해서 모든 업무의 과정을 자동화 프로세스로 만들어 내기 어렵다. 하지만 RPA에 AI가 결합 된다면 사람의 개입을 최소화할 수 있고, 업무 효율을 최대로 끌어 올릴 수 있다.

사람과 로봇이 협업하는 초자동화 시대

이전 포스팅에서 다뤘던 자연어 처리에 대한 내용과 연관지어 생각해 보면, 사람의 말을 알아 듣는 챗봇사람이 하던 업무들을 자동으로 처리하는 RPA 로봇의 조합을 생각해 볼 수 있다. 그리고 이러한 생각은 수 년 내에 우리의 일상에서 접할 수 있을 것이라 본다. 로봇과 일상적인 언어(자연어)로 대화하고 자동으로 처리된 결과물을 받아보는, 사람과 로봇이 협업하는 초자동화 시대가 올 것이라고 감히 생각해본다.

자연어 처리 기법과 활용

SF영화를 보면 인공지능이 사람의 말을 모두 알아듣고 이해하고 행동하는 것을 쉽게 볼 수 있다. 심지어 몇몇 영화에서는 보통 사람보다 더 인간적이고 철학적인 생각을 하는 인공지능 로봇들도 등장한다.

“정말 영화에서 나온 것처럼 인공지능이 사람의 언어와 감정을 모두 이해할 수 있을까? “

인간의 언어는 수천년의 역사를 가지고 다양하게 분화되고 발전해 왔다. 그리고 많은 부분 설명하기 힘든 감정이나 암묵적인 지식들로 구성되어 있기 때문에 정성적인 성질이 강하다. 그래서 정량적 데이터가 필요한 현재의 인공지능 학습 방법으로는 이러한 언어의 요소들을 이해시키기 어렵다.

그러면, SF영화에 나오는 것들은 허황된 이야기일 뿐인 것일까?

꼭 그렇지만은 않다. 우리 주변을 잘 살펴보자. 가장 가깝게 AI 스피커를 발견할 수 있을 것이다. 복잡한 대화는 아직 어렵지만 일상적이고 반복적인 간단한 말 들은 아주 잘 이해 한다.

예를들어 잠자리에 들기 전에 다음과 같은 대화를 할 수 있다.

나: (잠자리에 누우며)”OO야! 나 이제 잘래”

AI 스피커: “알람은 몇 시로 할까요?”

나: “내일 아침 7시에 깨워줘”

AI 스피커: “내일 아침 7시로 알람 설정 되었습니다.”

나: “방에 불 꺼줘”

AI 스피커 : (방에 불을 끄며)”수면에 좋은 음악을 틀어 드리겠습니다.”
(약 30분정도 잔잔한 음악 재생 후 종료됨.)

AI 스피커를 사용하기 전에는 이런 것들을 직접 손으로 해야 했다. 휴대폰에 알림을 맞추고, 잠들기 전에 들을 음악을 리스트에 담고 타이머를 맞춘다. 그러고 나서야 방에 불을 끄고 잠자리에 눕는다. 하지만 이젠 바로 잠자리 누워서 말로만 하면 된다.

어떻게 가능한 것일까?

이것을 이해 하기 위해서는 먼저 컴퓨터가 사람의 언어를 이해하기 위해서 시도 되었던 기계번역에 대해서 알아볼 필요가 있다.

초기에는 정해진 규칙에 의해서 번역을 해주는 ‘규칙기반(혹은 중성언어 기반)’으로 언어를 컴퓨터가 다루도록 하였다. 말 그대로 개발자가 정한 규칙에 의해서 원문을 타겟 언어로 번역해 주는 것인데, 앞서 언급한 말로 설명하기 힘든 감정적인 부분과 암묵적인 지식들을 개발자가 모두를 규칙으로 담기에는 한계가 있었다.

이러한 한계를 뛰어 넘기 위해서 나온 것이 ‘말뭉치 기반’으로 번역하는 방식이다. 말뭉치 기반은 크게 ‘예시 기반’‘통계 기반’ 2가지로 나누어 진다.

‘예시 기반’은 원문과 번역문을 저장해 두었다가 똑같은 원문 요청이 왔을때, 이를 활용하는 방식이다. 그리고 ‘통계 기반’은 원문과 번역문의 상관관계 빈도수를 통계화하고 이 수치를 활용하는 방식이다.

말뭉치 기반으로 번역을 하게 되면, 사용을 하면 할 수록 새로운 말뭉치 데이터가 누적 되기 때문에 사람의 개입 없이 컴퓨터가 스스로 언어의 정보를 익히고 처리해준다. 뿐만 아니라 번역 완성도도 점점 높아지게 된다.

“어떻게 말뭉치 기반이라는 것이 앞서 언급한 사람 언어의 정성적인 부분을 상관관계 형태로 통계화 하고 수치로 만든다는 것일까?”

컴퓨터에게 ‘사과’‘배’라는 두 단어를 보여준다면, 단지 유니코드 집합으로 해석 할 뿐 두 단어의 개념적 차이를 이해할 수는 없다.


그러면 유니코드가 아닌 컴퓨터가 이해 할 수 있는 수치를 사용해야 한다. 그것이 바로 벡터로 표현 하는 것이다. 벡터를 만드는 방식 중 하나인 One-Hot 인코딩 방식을 이용하여 간단히 설명해 보면, 다음과 같다.

문장에 의도를 파악하기 위해 필요한 요소가 [왕, 여왕, 남자, 여자]라면 ‘왕’를 표현하는 벡터는 [1, 0, 0, 0]이 되는 것이다. 그리고 ‘여왕’를 표현하는 벡터는 [0, 1, 0, 0]이 된다. 이런 식으로 벡터가 만들어지면 단어들이 실수 공간에 들어오기 때문에 각 단어들의 사이의 유사도를 측정 할 수 있게 된다. 그리고 문장속 단어의 의미 자체가 수치화 되어 있기 때문에 벡터 연산을 통해서 추론을 내릴 수도 있게 된다.

Male – Female

예를 들어 ‘왕(King)’에 대한 벡터에서 ‘남자(Male)’을 빼고 ‘여자(Female)’을 더하면, 벡터 연산을 통해서 ‘여왕(Queen)’이라는 결과를 얻을 수 있게 된다.

벡터 연산

이로써 컴퓨터가 사람의 언어적 정보를 단순히 저장하고 읽는 것만 하는 것이 아니라 의도를 파악할 수 있게 된 것이다.

이러한 처리 방식을 통해서 많은 관심을 받게 된 분야가 대표적으로 챗봇이다. 챗봇이 사람의 말의 의도를 파악할 수 있게 되면서 단순한 작업에 대해서 많은 도움을 줄 수 있게 되었다.

최근 가장 성공적인 사례인 ‘코로나-19’ 챗봇을 이야기 해보자.

그 동안의 민원 처리 방식은 모든 민원 내용을 사람이 일일이 읽어보고 취합한 뒤 공지를 통해서 한번에 알리는 방식이 일반적이었다. 이런 경우 민원을 넣고 처리가 되길 기다려야 한다. 질병관리본부에 들어오는 코로나-19에 대한 민원도 마찬가지 였지만 챗봇 도입을 통해서 이러한 문제점에 대해서 많은 어려움을 해소 할 수 있었다.

민원을 하는 사람이 “자가격리자는 어떻게 해야 할까?”라는 질문이 들어오면, 챗봇은 자연어 처리를 통해 사람의 의도를 파악하고 질병관리본부에서 제공하는 생활 수칙 가이드를 찾아서 제공을 해주는 것이다.

해결하고 싶거나 알고 싶은 정보들을 기다리지 않고 챗봇을 통해 바로 안내를 받게 해주면서 사람들 대부분의 민원을 지연없이 해결하게 된 것이다. 그로인해서 질병관리본부의 코로나-19 챗봇 등록자 수가 70만명을 넘어 섰다.

이 뿐만이 아니다. 사용자 층의 챗봇을 바라보는 시선이 전반적으로 달라졌다. 챗봇 초창기에 사람의 말을 제대로 이해하지 못하여서 좋은 사용자 경험을 전달하지 못했다. 그래서 좋은 기능으로 발전했음에도 불구하고 사람들로부터 외면 받고 있었다. 하지만 코로나-19 챗봇에 대한 좋은 사용자 경험으로 인해서 챗봇이 사용할 만하다는 인식이 생겨 났다.

국내 대표적인 소셜미디어 회사인 카카오와 네이버의 경우 코로나 사태 직전대비 챗봇 사용량이 각각 50%, 18%씩 증가 한 것으로 나타났다.

이는 컴퓨터가 사람의 말을 알아 들을 수 있게 되면서 사용자의 서비스 소비 패러다임이 변하고 있다는 것을 반영한다고 본다. 이러한 패러다임 변화에 대해서 기업들은 많은 관심을 가져야 할 것이다. 챗봇을 통해 기업 비즈니스를 고객들에게 어떻게 서비스 할 것인지 깊게 고민해 볼 필요가 있을 것 같다.

인공지능의 발전과 오픈소스 전략에 대하여

인공지능의 발전은 생각보다 오래 전부터 진행되었다. 1950년에 앨런 튜링이 “계산기계와 지성(Computing machinery and intelligence)”이라는 논문을 통해 처음으로 인공지능에 대한 개념의 토대를 마련했다. 이후, 1956년에 “다트머스 회의(Dartmouth Conference)”로 알려진 모임에서 처음으로 인공지능(AI: Artificial intelligence)이라는 용어를 사용하였고 튜링이 제안한 “생각하는 기계”를 구체화하기 위한 것들을 논의 하기 시작했다.

인공지능의 70년 역사

그리고 오늘날까지 눈에 띄지 않게 성장과 쇠퇴를 반복하다 2016년 인공지능 바둑 프로그램인 알파고가 등장하면서 그 동안 인공지능 기술 발전이 상당히 진행되었다는 것을 보여주었다. 사실, 이때만해도 알파고는 인공지능의 분야중 인지능력에 대한 가능성을 보여줬을뿐 직접적으로 무언가를 제시한 것은 아니었으며 알파고와 같은 인공지능 기술을 가지기 위해서 얼마나 많은 비용과 인력이 투자되었을지 파악하기도 어려운 것으로 느껴졌다.

하지만 알파고의 등장 이후 4년이 지난 지금은 어떤 산업군이든 인공지능 접목을 당연하게 생각하고 있다. 최근의 인공지능 기술들은 간단한 서비스 형태도 제공되어 어려운 기술적인 이해가 없어도 누구나 데이터만 있으면 이미 만들어진 인공지능 모델에 적용하여 학습시켜 볼 수 있으며 심지어 그 결과가 좋다면 제품에 바로 적용도 할 수 있다.

“도대체 최근 4년동안 무슨 일이 있었던 것일까?”

인공지능 기술 분야에서 글로벌 선도기업인 구글의 사례를 중심으로 살펴보자.

  • 2015년 구글의 인공지능 플랫폼 텐서플로우(Tensor Flow)를 무료로 공개 하였다.
  • 2016년 알파고로 유명한 구글 딥마인드에서 인공지능 기술 테스트 플랫폼인 딥마인드랩(DeepMind Lab)을 외부에 무료 공개 하였다.
  • 2017년 10월부터 고사양의 하드웨어(GPU, TPU)환경을 제공하는 인공지능 개발 환경 서비스 코랩(CoLab)을 무료로 사용할 수 있도록 하고 있다.

“인공지능 알고리즘을 구현하는 플랫폼 개발에는 대규모 자본이 투입되었으며, 고도의 기술력이 집약되어 있을 텐데 구글은 왜 무료로 외부에 공개했을까?”

인공지능 기술은 전통적인 ICT 산업부문을 넘어 전통산업을 포함하는 매우 광범위한 영역으로 응용된다. 그리고 응용대상 영역에서 얻어지는 데이터 및 사용자 피드백 등 케이스 의존적인 성격이 강하다. 이러한 이유로 인공지능의 기본 알고리즘은 금융, 의료, 제조, 교육 등 모든 분야에 응용가능하지만 각각의 응용대상 분야 자체에 대한 노하우가 없으면 수많은 알고리즘들은 실제로 구현 될 수 없다.

구글과 같은 글로벌 선도기업도 혼자만의 힘으로는 인공지능 기술의 보급 확산을 지금과 같은 수준으로 올릴 순 없었다. 오픈 소스 생태계를 활용하여 다양한 분야에서 인공지능 기술을 응용하는 주체들이 모두 협력했기 때문에 가능했던 것이다.

이러한 이유로, 구글뿐만 아니라 MS, IBM, Facebook, Open AI 등등 인공지능 기술을 이끄는 대부분의 글로벌 기업들이 오픈소스 생태계에 투자를 하고 있다. 그리고 이런 투자 덕분에 인공지능에 대한 보급과 화산이 그 전과 달리 매우 빠르게 진행 될 수 있었다.

“그러면 여기서 궁금한 것이 생긴다. 거대 글로벌 기업의 기술에 참여를 하여 발전을 도와주고 있는데, 정작 참여하고 있는 기업이나 개발자들 에게는 무엇이 남는 것일까?”

인공지능 연구 환경의 진입장벽이 매우 낮아졌다.

인공지능 기술은 쉽게 생각하면 주어진 데이터들을 다양한 차원으로 비교 탐색 및 분석하여 의미 있는 패턴을 찾아주는 것이다. 여기에는 여러 기술들이 요구되는데 크게 보면 2가지로 구분 할 수 있다. 분석을 할 데이터를 인공지능이 학습할 수 있도록 데이터를 탐색하고 정제하는 전처리 기술과 인공지능 모델을 실제로 연구하고 구현 할 플랫폼이다.

그 동안, 이런 인공지능 기술은 바로 상용화가 불확실한 경우가 많아서 자본이 부족한 기업은 투자가 어려웠고, 하더라도 리스크를 줄이기 위해 대학원이나 전문 연구기관 연구과제를 빌려와 진행하는 경우가 많았다. 이런 경우 굉장히 학문적으로 접근하기 때문에 현실적으로 매출에 좋은 영향을 주지 못 했다.

그러나 글로벌 기업이 엄청난 기술과 자본을 들여 만든 인공지능 연구/개발 플랫폼 기술을 모두 오픈소스로 공개 함으로써 인공지능 기술을 도입하려는 기업은 초기 기술 개발 비용에 대한 부담없이 오픈소스를 통해서 글로벌 기업의 기술력을 제공 받아 연구개발을 시작할 수 있게 된 것이다.

데이터 분석에 사용되는 알고리즘 기법들의 표준화이다.

오픈소스 프로젝트를 사용하는 참가 기업들이 많아지면 각 산업 분야의 다양한 정보와 최신 트랜드에 대한 문제점의 해결책을 공유하여 운영되기 때문에 유연하고 호환성이 높은 표준 모듈/라이브러리들이 개발 될 수 있다.

데이터 분석에 사용되는 알고리즘들은 크게 Classification(분류), Clustering(군집), Regression(회귀), Forecast(예측), Dimensional reduction(차원 축소) 등의 유형로 나누어진다. 그리고 각 유형에는 다양한 분석/학습 알고리즘 기법들로 세분화 된다. 이러한 것 때문에 인공지능 구현을 위해서는 알고리즘에 대한 많은 지식이 있어야 했고 최소 대학원 석사 이상이어야 인공지능 분야에서 일을 할 수 있었다.

Select Algorithm

하지만 최근 몇년사이에 오픈소스 생태계에 참여한 기업과 개발자들의 노력 덕분에 이러한 어려운 내용들이 정형화 되고 패키지/모듈로 간단히 제공되면서 이론에 대한 이해만 있으면 쉽게 가져다가 원하는 인공지능 모델을 구현해 낼 수 있게 되었다.

이러한 오픈소스 생태계의 이점들로 인해서 자원이 부족한 기업들도 잘 만들어진 글로벌 기업의 기술을 적은 비용으로 가져다가 사용할 수 있는 기회를 얻게 된 것이다.

국내 기업들은 오픈소스를 하면 기업의 기술이나 노하우가 노출된다고 생각하여 잘 시도 하지 않는다. 하지만 다르게 생각해보면 정말 잘 만든 기술도 많은 사람들로부터 활용되지 않으면 피드백이 적을 수 밖에 없고 빠르게 변화하는 IT 트랜드를 놓치기 쉽다. 많은 글로벌 IT 선도 기업들이 이러한 개념을 잘 이해하고 오픈소스 생태계를 전략적으로 잘 활용하고 있다. 국내 기업과 연구자들도 오픈소스 생태계를 적극 참여하여 미래 글로벌 IT 시장을 선도해 나가는 기회로 삼을 수 있기록 하는 것이 중요할 것 같다.

인공지능 프로그램 이해와 비즈니스 적용에 관하여

최근 인공지능이 실제 비즈니스에 적용되면서 많은 산업의 전반에 영향을 미치고 있다.
Statista에 따르면 세계적으로 인공지능에 대한 시장 전망이 2018년 약 95억달러에서 연 평균 43%씩 성장하여 2025년에는 1,186억달러 규모로 이를 것이라고 한다.

Revenues from the artificial intelligence (AI) software market worldwide from 2018 to 2025

AI를 포함한 글로벌 소프트웨어 서비스 전체 시장이 2018년부터 2025년까지 매년 10% 성장하여 3,229억 달러 규모가 될 것이라는 것을 생각해 보면 엄청난 투자와 성장이 이루어지고있다는 것을 알 수 있다.

이런 이유로 사업을 하는 사람이라면 누구나 기업 비즈니스에 어떻게든 하루 빨리 인공지능을 도입하고 싶을 것이다.

“그런데 정말 인공지능을 도입하면 비즈니스의 매출이 성공적으로 올라갈까?”
“기존의 소프트웨어 프로그램들로는 할 수 없는 것인가?”

이것에 대해 이야기하기 전에 먼저 기존의 소프트웨어 프로그램들이 어떠했는지 생각해 볼 필요가 있다.

그 동안의 프로그램들은 연속적이지 않고 구분되어진 이산 논리를 가지고 나오는 경우 수들을 공식화하여 만든 것들이다.

우리의 일상생활을 살펴 보자.

아침에 일어나야 하기 때문에 매일 아침 7시가 되면 알람이 울리도록 알람을 맞춘다. 시간은 사실 연속적이지만 그 시간을 시, 분, 초로 이산화 시켜 표기하고 아침 7시라는 경우가 되면 알림이 울리도록 되어 있는 것이다.

이것 저것 분주히 준비한 다음 집을 나서면 엘리베이터를 마주하게 된다. 엘리베이터의 한쪽 벽에 표시된 층수를 누르면 엘리베이터는 해당 층수로 이동한다. 공간 또한 마찬가지로 연속적이지만 층이라는 규격화된 높이로 이산화 시켜 표시하고 눌려진 버튼에 입력된 층의 위치로 이동하는 것이다.

예시에서 알 수 있듯이 이산 논리는 확실하게 구분된다. 어떤 경우에 해당되는지 그렇지 않은 것인지 확실한 선을 긋는 것이다. 이 선들이 조건(Rule)이 되고 조건들을 조합하여 공식을 만든 것이 프로그램이 되는 것이다.

일상에서 쉽게 볼 수 있는 간단한 프로그램들을 예시로 들었지만 사업에 사용되는 프로그램들도 마찬가지다. 단지, 관련 분야의 도메인 전문가가 문제를 해결하기 위해서 좀 더 세분화된 조건(Rule)들을 도출해 냈을 뿐이다.

예를 들어, 어느 과수원에서는 사과를 중량으로만 선별 하고 중량을 나누는 작업을 자동화 시스템으로 개발 한다고 가정해 보자. 먼저, 각 사과들의 중량을 측정할 것이다. 그리고 측정된 중량들을 이산화 된 등급의 조건으로 만들어 준다. 가령 200~350g이면 가정용, 351~400g이면 선물용 , 401g 이상은 제수용으로 등급을 만들어 주면 이 시스템을 통해서 사과들은 3개의 등급으로 구분되게 된다.

이 시스템에서는 사과의 무게가 350g이라면 가정용으로 분류할 것이다. 그리고 351g은 선물용으로 분류가 될 것이다. 그러면 1g 차이로 가정용과 선물용으로 분류 되는데 이 것이 합리적인 것일까? 350g이 351g보다 실제로 선물용으로 가치가 더 있다면?

실제로 사과를 제대로 선별하기 위해서는 중량 외에 빛깔, 형상, 과육 등등 기준들이 더 많이 있어야 한다. 때문에 사과를 좀 더 잘 선별하기 위해서는 ‘사과’라는 여러 속성을 갖는 객체를 만들고 각 속성에 값을 측정하여 입력하고 특정 조건이 만족할 경우 분류 되게 해야 한다.

그럼 다시 질문해 보자. 전 보다 조건이 많아 졌으니 이제는 합리적으로 나눌 수 있는 것일까?

글쎄다. 어디까지나 이산 논리에 대한 조건들이 세분화 된 것일 뿐이지 경계가 불분명한 예외사항은 언제나 발생 하고, 발생한 예외는 결국 사람이 처리해야 한다. 이것이 인공지능 이전의 프로그램 방식들인 것이다.

“그렇다면, 인공지능이 도입된 프로그램 방식은 무엇 일까?”

1(참)과 0(거짓)으로만 나누는 이산적인 방식에서 0~1 사이의 모든 실수로 확장된 것을 의미한다. 다시 말하면 어떤 등급에 속할 가능성으로 나타내는 것이다.

예를 들어, 사과의 중량은 350g이지만 다른 조건들로 인해 이 사과가 선물용으로 적합하다는 가능성이 0.86으로 정의 할 수 있다면 이 사과는 가정용이 아니라 선물용이 되는 것이다. 이처럼 경계선이 명확하지 않은 대상을 다룰 수 있는 것이 인공지능이 도입된 프로그램 방식이다.

이렇게 간단하게 설명하면 신기하게 들릴 수도 있지만 이것은 그 동안 잘 처리하지 못한 불분명한 예외사항을 기계가 효율적으로 나누기 위한 추론 기법일 뿐이다.

사람은 350~351g의 애매한 중량의 사과라면 손으로 만져보고 눈으로 보고 향을 맡아본 뒤 직관적으로 분류했을 것이다. 이렇게 사람이 분류 하던 데이터들을 기계에게 학습시키면, 기계는 데이터에서 패턴을 찾고 그 패턴을 추론로직으로 사용하는 것이다.

결국, 완전한 인공지능이라기 보단 사람의 직관을 흉내낼 수 있어서 사람의 인지적인 부분을 도와 줄 수 있는 형태인 것이다.

그런데 왜 이렇게 사람들이 관심을 갖고 열광하는 것일까?

그 이유는 최근 몇 년 사이 그 흉내내는 수준이 단순 흉내 이상의 가치를 만들고 시작했기 때문이다. 가장 가깝게는 스마트 폰으로 사진을 찍으면 사진을 자동으로 보정하고 분류해준다. 공장에서는 제품의 상태를 사람 보다 더 잘 예측하고, 병원에서는 환자의 영상데이터를 의사보다 더 정확히 분석하고 있다.

인지능력으로는 이미 인간의 수준을 넘어선 것있다.

이런 기능이 물리적인 제약 없이 24시간 365일 쉬지 않고 동작 할 수 있기 때문에 완전한 인공지능이 아님에도 불구하고 비즈니스 매출에 성공적인 상승 가져다 주는 것이다.

“그렇다면, 어떻게 하면 인공지능을 비즈니스에 적용 할 수 있을까?”

인공지능을 비즈니스에 적용하기 위해서는 많은 것들이 필요하지만 꼭 필요한 3가지가 있다.

첫째로 비즈니스에서 해결하고자 하는 문제점을 정확히 알아야 한다.
위에서 설명했듯이 최근의 인공지능은 완전한 인공지능이 아니기 때문에 그저 ‘도입하면 무엇이든 되겠지’라고 생각 하는 순간 실패사례로 남게 된다. 문제점을 잘 파악하기 위해서 비즈니스에 대한 프로세스를 잘 정립하고 프로세스 간의 절차와 관계를 정의하여 해결하려고 하는 문제점을 정확히 이해하고 도출해야 한다.

두번째로, 인공지능이 학습 가능한 데이터로 기존 데이터를 가공하고 수집해야 한다.
인공지능에 대한 환상으로 인해 생긴 오해 중 하나인데, 무작정 데이터가 있다고 해서 바로 인공지능에게 데이터를 학습시킬 수 있는 것이 아니다. 데이터에는 생각지도 못한 많은 노이즈 정보들이 있으며, 현재의 인공지능은 이런 정보까지 분별하지 못 한다. 특히, 데이터가 비정형 데이터라면 전처리 기술을 통해서 정형화 혹은 반정형화 작업을 해주어야 학습에 사용할 수 있다. 때문에 인공지능이 학습 가능한 형태로 데이터를 새롭게 만들어 가야 한다.

마지막으로 오픈소스 소프트웨어를 잘 활용해야 한다.
일반 기업에서 인공지능을 처음부터 개발한다는 것은 불가능에 가깝고, 투자가 가능하더라도 너무 뒤쳐지는 발상이다. 이미 잘 개발된 인공지능에 관련한 오픈소스들이 너무 많다. 국내 최고 기술 회사인 삼성, LG는 물론이고 글로벌 선두 IT 기업인 AMG(Amazon, MS, Google)도 인공지능 만큼은 오픈소스를 활용한다.
우리는 거인의 어깨에 올라탈 필요가 있다. 이미 글로벌 기업들이 자신들의 비즈니스로 검증한 오픈소스를 이용하는 것이 비용을 아끼면서 빠르게 성장할 수 있는 발판이 되는 것이다. 오픈소스에 기존 비즈니스를 잘 녹여낼 수 있다면 손쉽게 인공지능 서비스를 제공할 수 있음과 동시에 글로벌 기업의 인공지능 기술을 같이 공유하게 되는 것이다.

그 동안 공상과학 영화에서나 나오던 인공지능에 대한 것들이 점점 현실로 다가 오고 있다. 아직 사회적 부작용도 많고 완성도에서도 완전한 인공지능은 아니지만 인공지능 시장의 성장와 규제 대응 속도를 가만해 보면 향후 5~10년 안에는 우리 생활 속에 정착할 것으로 보인다. 그 때에 앞서가는 비즈니스를 하고 있으려면, 기존 비즈니스를 인공지능을 통해서 어떤 새로운 가치를 만들어 낼 것인가를 고민하는 것이 중요할 것 같다.

3D Hologram Projector 만들기

주말 내내 집에만 있다보니 심심하던 찰나에 홀로랜즈 관련된 유투브 영상을 보게 되었다. 보다보니 집에 남는 아크릴도 있겠다 한번 만들어 봐야 겠다는 생각이 들었다.

일단, 3D Hologram Projector 도면이 필요한데, 구글 검색을 통해서 쉽게 얻을 수 있다.

보통 보면 대부분의 도면이 위와 같은데… 크기가 좀… 작은 것 같다.
아마도 스마트폰 위에 올려놓는 형태이다 보니 일반적인 스마트폰 화면 크기인 5~6 inch를 기준으로 그려진 도면인 것 같다.

디스플레이 관련 제품은 거거익선이기 때문에 좀 더 크고 좋은 영상을 보기위해 여기서는 좀 더 큰 테블릿용으로 만들어 보겠다. 테블릿 화면 크기는 대략 9~10 inch 정도로 스마트 폰보다는 대략 2배 정도 크다. 따라서 도면도 딱 2배 씩 늘려 준다.

수치를 2배씩 늘려 도면을 새로 그려준 뒤에, 새로 그린 도면을 오려내어 아래 그림과 같이 아크릴 위에 붙여준다.

이제 도면에 따라 아크릴를 재단해 준다.

아크릴에 붙였던 도면을 제거하고 아래 그림과 같이 대각선 모서리를 붙여준다.
(도면을 제거하고 나서 아크릴표면을 딱아줘야 나중에 최대한 선명한 영상을 볼 수 있다.)

뒤집어서 모서리 안쪽에 목공풀을 칠해서 고정 되도록 한다.
(글루건이나 좀더 강한 접착제를 써도 좋지만, 목공풀만써도 충분하다.)

목공풀이 마르면 다 완성된 것이다. 겉에 붙였던 테입을 뜯어낸 후에 사용하면 된다.

유투브에 홀로그램 영상을 검색하면 많은 영상들이 나온다. 적당한 것을 선택하여 홀로그램 영상을 감상하면 된다.

리자몽 홀로그램 영상

Programming Paradigm의 변화

최근 AI에 대한 연구가 붐이 일면서 그에 따라 Programming Paradigm도 변화가 생기고 있다. Programming Paradigm은 개발자에게 개발 관점을 갖게 하고, 개발 방법을 결정하는 역할을 하기 때문에 개발자는 이런 변화에 대해서 항상 신경써야 한다.

최근에는 FP(Functional Programming)이라는 것이 Paradigm 변화에 많은 영향을 주고 있는데, 이 것이 무언인지, Paradigm에 주는 변화는 어떠한지 대해서 정리해보려고 한다.

Google에 검색을 해보면 다음과 같이 진화의 관점으로 표현 하고 있다.

개인적인 생각으로는 절반은 동의하고 절반은 동의하지 않는다.

Programming Paradigm은 방법론으로써 개발자가 제품 개발을 할 때, 환경에 따라 선택을 하면 되는 것이다. 그리고 실제로 처음 시작된 시기를 따져 보면 FP 방법론은 1930년대 알론조 처치라는 미국 수학자가 쓴 람다 대수 논문을 근간으로 시작된 것이라, 1960년대에 시작된 OOP(Object-Oriented Programming)보다 그 시기가 오래 되었다. 이런 이유 때문에 동의할 수 없다.

(이미 오랫동안 FP 개발 언어들이 사용되어 오고 있다. ex. LISP, Python, Scala, R, Clojure, F# 등등 )

다만, 기술 발전의 흐름에 따라 보면 다르게 생각할 수 있다.
FP 방법론은 수학적 사고와 밀접한 관련이 있어서 표현 자체가 수학적 정의에 가까운 형식을 띄고 있다. 이 것은 수학적으로 표현되는 데이터 분석 알고리즘들에 적용되어 좋은 성능과 그 동안 OOP으로는 해결하기 어려웠던 문제들이 해결되고 있기 때문에 어느 정도 동의 할 수 있다.

그러면, OOP와 FP의 어떤 특징이 있는지 알아보자.

  • OOP(Object-Oriented Programming)
    1. 실제 세계를 프로그램에 담기 위한 것이기 때문에 Object(Class) 정의가 중요하다.
    2. 클래스 상속을 통해 다형성을 구현 할 수 있다.
    3. 함수 표현 수식은 ‘O.f(x)’ 형태로 표현 된며, O(Object)의 참조 값에 따라 f(x)의 결과가 달라질 수 있다.(부작용)
  • FP(Functional Programming)
    1. 수학적 동작 및 기능을 구현하기 위해서 데이터와 함수를 독립시켰기 때문에 데이터로부터 완전히 독립된 순수 함수 구현이 중요하다.
    2. 데이터로 부터 독립적이기 때문에, 동일한 입력에 대해서 동일한 결과를 보여 준다.
    3. 함수 표현 수식은 ‘f(x)’ 형태로 표현 되며, 입력 변수가 함수인 ‘F(x) -> F(f(x))’형태(Lambda, 고계함수)로 연속적인 표현이 가능 하다.

위 특징들로 보면, FP가 OOP를 완전히 대체를 하는 것은 아닌 것을 알 수 있다. 각 방법론이 시작된 관점의 근거가 다르기 때문이다.

OOP는 현실세계의 Object를 가상세계에 표현하고 각 Object들 간의 상호작용을 나타내는 집합으로 보는 관점으로 시작 되었다. 그리고 FP은 추상적인 수학을 표현하기 위한 연속적인 함수들의 연결로 보는 관점으로 시작되었다.

이런한 다른 이유로 OOP보단 FP이 수학적 알고리즘으로 접근하는 Big Data 분석이나 AI 분야에 적합하게 되었다. 그리고 이런 FP의 부가적인 효과로 연속적인 함수 즉, Lambda(고계함수)를 사용할 수 있게 되다보니 코딩하는 입장에서 코드를 조금 더 간결하게 만들 수 있게 되어서 개발자들이 선호하고 있다. 이로 인해서 FP이 Programming Paradigm에 영향을 주고 있는 것이다.

하지만, 근본적으로 Program이란 것은 현실세계의 것을 가상세계에 표현하는 것이기 때문에 Object를 완전히 배제 할 수는 없다. 때문에 OOP과 FP은 상호보완적으로 이해하고 사용하는 것이 변화하는 Programming Paradigm에 대응하는 올바른 접근 방법이 아닐까 생각한다.

About Digital Transformation

지난 수 년간 사업 전반에 걸쳐 회자되고 있는 Digital Transformation에 대해서 생각해 보려고 한다.

Digital Transformation이란 무엇일까?

영어 단어를 그대로 풀이해보면,
Digital의 뜻은 “(통신 등이)디지털(방식)을 쓰는 / (시계 등이)디지털(방식)의” 라는 의미이며, Transformation의 뜻은 “(완전한) 변화[탈바꿈], 변신”을 의미한다.
단순히 이어 붙여보면 “디지털 방식을 쓰는 완전한 변화, 변신”이란 의미로 다시 정리하면, “정보의 완전한 디지털화”를 의미한다.

그러면, 정보의 완전한 디지털화라는 것이 무슨 의미 일까?

세계적으로 Digital Transformation을 주도하고 있는 글로벌 기업들이 두는 의미에 대해서 살펴보자.

  • Microsoft – 회사를 혁신하고 고객가치를 창출하기 위해 인력, 데이터, 프로세스를 통합하고 창조적 기술 파괴가 일어나는 것.
  • IDC – 기업이 새로운 비즈니스 모델, 제품, 서비스를 창출하기 위해 디지털 역량을 활용함으로써 고객 및 시장(외부 생태계)의 파괴적인 변화에 적응하거나 이를 추진하는 지속적인 프로세스.
  • IBM – 기업이 디지털과 물리적인 요소들을 통합하여 비즈니스 모델을 변화시키고, 산업에 새로운 방향을 정립하는 전략.
  • A.T Kearney – ICBM 등 디지털 신기술로 촉발 되는 경영 환경상의 변화 동인에 선제적으로 대응함으로써 현행 비즈니스의 경쟁력을 획기적으로 높이거나 새로운 비즈니스를 통한 신규 성장을 추구하는 기업 활동.

위 내용의 공통적인 키워드는 다음과 같다.

  1. 고객 가치 창출
  2. 경영 환경(외부 생태계)의 변화
  3. 선제적 대응
  4. 새로운 비즈니스 추구

정리하면, Digital Transformation이 함은 회사 정보의 완전한 디지털화를 뜻하며 이를 통하여, 빠르게 변화하는 경영 환경(외부 생태계)에 선제적으로 대응 할 수 있는 새로운 비즈니스를 추구하는 것이라 볼 수 있다.

여기까지 보면, 정말 이상적이고 좋은 말이다. 그럼면, 정말로 Digital Transformation이란 것이 산업 전반에 얼마나 긍정적인 영향을 미치고 있는 것인가?를 알아봐야한다.

다음은 Microsoft에서 발표한 자료로 Digital Transformation이 GDP에 미치는 영향에 대한 자료이다.

Asia Pacific의 GDP가 매년 성장함에 따라 2017년 6%에 그쳤던 영향력이 19년에는 25%, 21년 예측에는 60%까지 올라갈 것으로 보고 있다. 한국은 영향력이 더 클 것으로 보고 있다.

또한, Digital Transformation에 대해서 Leader역할을 할 경우 Follower역할일 경우 보다 많은 부분에서 2배 이상의 성과(성장)을 얻을 수 있다고 한다.

(비교 부분 : 이익 마진, 생산성, 고객 충성도, 원가 절감, 새로운 제품/서비스의 수익)

위 자료들의 지표에서 볼 수 있듯이 Digital Transformation을 하게 되면, 기존 비즈니스를 혁신을 하여, 많은 이익을 얻을 수 있다고 생각 할 수 있다.

2019년 11월 현재 Digital Transformation을 ‘도입해야 한다’, ‘아직이다’를 논하는 것은 뒤처진 이야기 이다. 이미 정부 주도로 많은 산업군들에서 Digital Transformation을 하고 있기 때문이다. 다만, 이제 관련 개선안들이 추진되고 도입하고 있는 단계라서 많은 제도적인 장치가 마련되지 않다. 이런 이유로 기업들은 기본적인 것들만 적용하지 정말 선진화된 기술들에 대해서는 섣불리 적용하길 꺼려한다.

정말로 제대로 된 Digital Transformation을 갖추기 위해서는 시대에 맞춘 규제완화와 대안 책들이 하루 빨리 처리 되야만 가능 할 것으로 생각된다.