close
ALLICT & SOLUTIONS

[IT에 한 걸음 더 다가가기] SMAC의 분석 부문, 지능화를 지향하는 Machine Learning (2편)

1

요즘 여러 매체를 통해서 많이 회자되는 IT키워드가 바로 ‘머신러닝 (Machine Learning)’과 ‘인공지능’이죠?이와 관련, 이해를 돕기 위해 제 1편 “각광 받는 딥러닝(Deep Learning)의 근원, 인공신경망” [관련기사 바로 가기 :  SMAC의 분석 부문, 지능화를 지향하는 Machine Learning (1)] 이라는 제목으로 심층 신경망(DNN, Deep Neural Network)을 지칭하는 기계학습(Machine Learning) 모델 또는 알고리즘의 집합인 딥러닝(Deep Learning)과 인공신경망에 대해, 딥러닝을 정의하는 단어들을 중심으로 살펴보았는데요. 이번 글에서는 지난 연재에서 언급했듯이, 딥러닝 정의의 마지막 키워드인 ‘머신러닝(Machine Learning, 기계학습)’의 개념과 유관 기술들과의 관계에 대해서 소개해 드리도록 하겠습니다.

제가 인공지능에 관심을 갖기 시작한 시점은 90년대 중반 무렵이었는데요. 당시 ‘머신러닝’이라는 용어를 처음 듣자마자, 저의 머릿속에는 운동용 기구 장치인 러닝머신(Running machine, 정확히는 treadmill)이 떠올랐습니다. 일단, 머신(Machine)이란 단어는 동일하고 머신이 러닝(Learning, 학습) 한다는 것을 상상해 본 적이 없기 때문에 그나마 익숙했던 러닝머신을 떠올렸던 것이죠. 여러분은 어떠신가요? 그때의 저와 비슷하지 않을까 싶은데요 ㅎ

그래서! 저의 경험으로 미루어 ‘머신러닝이 무엇인지?’, ‘과연 러닝머신도 머신러닝이 될 수 있나?’, ‘머신은 어떻게 학습하고 예측하는지?’ 등 머신러닝의 이모저모에 대해 궁금하실 것 같아, 이와 관련해 쉽고 간단하게 살펴보도록 하겠습니다.

 

제 1화 : 각광받는 딥러닝의 근원인공신경망(Artificial Neural Network)

제 2화 : 인공신경망의 본류인 머신러닝(Machine Learning, 기계학습)

제 3화 : 머신러닝 매커니즘 및 유형

제 4화 : 다양한 머신러닝 알고리즘

제 5화 : 머신러닝의 응용 분야 및 적용 사례

 

2

 

3

지난번 연재에서 꼽은 딥러닝이 주목받은 이유 중 하나가 학습 가능한 대량의 데이터의 출현이었습니다.현재, 과거에는 엄두도 내지 못할 정도의 데이터가 온라인상에서 생성되고 쌓이고 있지만 이러한 데이터를 효과적으로 사용하는 것은 사람의 몫이었습니다. 여기에서의 문제는 사람이 하는 일에는 한계가 있기 때문에, 무수한 정형/비정형 데이터에서 유의미한 결과를 도출하기 위해서는 모델링 또는 상관관계를 사람이 직접 뽑아내는 것이 아닌 머신이 스스로 배우도록 할 필요가 생겼습니다. 이를 위하여 대규모 데이터의 처리하고 의미 있는 정보의 발굴하고 활용하는 기술들이 아래와 같이 존재합니다.

‘빅데이터(Big Data)는 대규모(Big)의 모든 정형 및 비정형 데이터를 처리하는 기술

‘데이터마이닝(Data Mining)’은 수많은 데이터 가운데 의미 있는 정보를 찾아(발굴해) 내는 기술

머신러닝’은 과거 데이터에서 어떤 패턴을 읽어내어 기계가 학습한 후 미래를 예측하는 기술

이렇듯 ‘머신러닝’, ‘빅데이터’, ‘데이터마이닝’은 서로 상호보완적인 역할을 담당하면서도 각자의 길을 걷는 기술입니다.

‘인공지능(AI, Artificial Intelligence)’은 컴퓨터가 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야입니다. 인공지능이 인간과 같은 사고를 하는 컴퓨팅, 즉 인간의 뇌를 수학적으로 모델링하는 것을 의미한다면, 머신러닝은 인공지능 내부 시스템 가운데 ‘학습’ 영역을 구체화한 기술입니다.

 

4

과거 SF 영화인 터미네이터나 스타워즈에 등장한 로봇 머신들은 어린 마음에 호기심 어린 탄성을 외치게 만들었습니다. 그러나 최근에 나오는 머신러닝 또는 인공지능과 관련된 ‘Her’(2013), ‘어벤저스: 에이지 어브 울트론’(2015), ‘채피’(2015), ‘엑스마키니’(2015) 등의 영화들은 오락 영화 이상의 많은 생각을 하게 만듭니다. 이러한 영화 속의 로봇 머신들이 어떻게 학습하고 판단하는 것인지 궁금하지 않으신가요?

머신러닝(Machine Learning)을 통상 우리말로 기계학습이라 부릅니다. 여기서 머신(Machine, 기계)은 금속 기계 장치가 아니라 연산 및 자동화 처리를 하는 컴퓨터 장치를 지칭한다고 볼 수 있는데, 보다 정확하게 얘기하자면 컴퓨터의 물리적인 HW 장치라기보다는 학습이 가능한 SW 알고리즘이라 할 수 있습니다.

러닝 (Learning, 학습)은 사람이 책을 보거나 다른 사람들의 말을 듣는 등 외부 입력을 반복해서 받아들이는 학습을 통해 유사한 새로운 것을 보거나 들었을 때 새로운 것이 무엇인지 인식도 하고 미래를 예측도 하듯이, 머신(Machine, 기계)도 데이터를 바탕으로 학습하여 모델을 만들고 이를 통해 앞으로 일을 예측한다는 의미입니다. 이러한 설명도 어렵다고 느껴진다면 머신러닝은 “영화 속에 나오는 로봇 머신들이 학습하는 기술”이라 생각하면 됩니다. 위에 언급한 영화들을 보면서 ‘로봇 머신의 학습(배움)’에 대해서 한 번쯤 생각해 보는 것을 추천해 드립니다.

머신러닝(Machine Learning)은 인공지능의 한 분야로, 데이터를 바탕으로 반복해서 기계가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야입니다. 즉, 데이터를 분석하여 숨겨진 특성인 ‘패턴’을 발견해 학습 모델을 구축하고 추론하는 기술이자, 더 나아가 경험으로부터 습득한 지식을 기반으로 스스로 성능을 향상시키는 과학이라고도 불 수 있습니다.

 

5

최근 들어 수많은 관심을 받고 있는 머신러닝은 사실 1959년 처음 등장한, 50세가 훌쩍 넘은 중장년(?) 기술입니다. 머신러닝이라는 용어가 처음 등장한 것은 스탠포드대의 아서 사무엘(Arthur Samuel) 교수가1959년 발표한 논문 ‘체커 게임을 활용한 머신러닝에 관한 연구(Some Studies in Machine Learning Using the Game of Checkers)’입니다.

이 논문은 인간이나 동물처럼 컴퓨터가 학습할 수 있도록 프로그램 할 수 있는가에 관심을 두고 있으며, “Field of study that gives computers the ability to learn without being explicitly programmed, (명시적으로 프로그램 하지 않아도 컴퓨터가 학습할 수 있는 능력을 부여하는 연구 분야)”라고 정의했습니다.

1980년대 본격적으로 머신러닝이 새로운 연구 분야로 정의되기 시작해서, 자연어 처리, 로봇, 패턴인식, 전문가시스템 등 인공지능의 모든 분야와 관련되어 발전되었습니다. 오늘날에는 훈련된 지식을 기반으로 습득한 데이터에 대해 유용한 답을 찾고자 하는 일련의 컴퓨터 알고리즘 혹은 기술을 총칭하며, 지식을 습득하는 기법을 의미하기도 합니다. 머신러닝은 수많은 학문적 경계가 허물어져 합쳐진 기술로, 영상인식, 음성인식, 문자인식, 자연어처리, 로보틱스, 인터넷 검색 등의 다양한 분야의 핵심 기술로 자리 잡고 있습니다.

6
7

본 글의 서두에서 언급한 “러닝머신(정확한 표현은 Treadmill)도 머신러닝이 될까요?!”라는 질문에 대한 답을 도출하기 위해, 앞에서 언급한 빅데이터, 데이터마이닝, 머신러닝 기술들이 어떻게 적용되는지 사례를 들어 살펴보도록 하겠습니다.

피트니스센터에 가면 제일 눈에 띄는 운동 기구이자, 많은 이들이 열심히 걷고 달리고 있는 기구가 러닝머신입니다. 제가 처음 본 러닝머신은 전기가 연결된 모터가 발판을 움직여 사람의 운동을 도와주는 단순한(1) 기계 장치였습니다. 그러나 어느 순간, 경사도와 속도를 설정하고 심박수, 칼로리, 주행거리 등의 (2) 데이터를 측정해서 보여주기 시작했죠.

하지만 이런 측정 데이터는 러닝머신을 멈추는 순간 다 사라지게 되다 보니 운동 기록을 남기고 보다 효과적으로 운동 관리를 하고 싶은 요구에 발맞춰, 러닝머신에서 발생되는 운동 일자와 시간, 심박수, 칼로리,주행거리, 운동 패턴 등의 (3) 개인 운동 기록을 저장/기록을 남기고 운동 기록을 일목요연하게 가시화(Visualization)해서 언제, 어디서든지 웹과 모바일 기기로 볼 수 있게 해주는 서비스가 일부 등장했습니다.

이에 한발 더 나아가 운동 기록을 바탕으로 운동처방사가 기존 논문 등의 자료와 개인 운동 패턴을 분석하여 (4) 개인 맞춤형 운동 가이드를 제시하는 프리미엄 서비스를 제공해주는 단계까지 이르렀습니다. 이런 서비스를 제공하는데 있어서, ICT 기술이 자동화 및 편리함 등의 역할을 담당했고요. 그러나 이제부터 이야기 드리는 서비스를 위해서 ICT 기술은 광의의 인공지능(Artificial Intelligence) 영역으로 들어서기 시작합니다. 피트니스센터 경영상 운동처방사 확충이 어려운 상황에서, 서비스 이용자는 점차 많아지고 주기적으로 운동 처방을 업데이트해가며 상호 작용을 해줘야 하는 요구도 커집니다. 이러한 요구를 해결해줄 수 있는 여러 방안 중 하나가 데이터마이닝을 적용하는 것입니다.

개인 운동 기록 및 운동처방 데이터들을 모아서 몇 개의 그룹으로 군집화(Clustering)를 한 후, 새로운 개인 운동 기록이 입력될 경우에 매번 처방 분석을 일일이 하지 않고도, 유사한 운동 기록을 기준으로 분류한 운동 처방을 (5) 자동으로 제시하는 것입니다. 이러한 방법은 운동 처방의 정확성이 일부 떨어질 수도 있으나,운동 처방의 질이 지나치게 나쁘지 않다면 개인들은 운동 처방의 정확성 알지 못하기 때문에, 운동처방의 대응 시간(lead time)은 짧아지고 상호작용은 높아지는 효과를 얻게 됩니다.

최근에 들어서는 수집되는 데이터의 양이 폭증하기 시작했고 다양한 종류의 데이터가 취합되어 분석되는 경우가 처음이라 데이터 간의 연관관계나 룰을 파악하기 어려워졌습니다. 하지만 러닝머신의 운동 기록뿐만 아니라, 개인의 손목 밴드 형태의 웨어러블 기기에서 수집되는 24시간의 생활 데이터 데이터와 연계해서 (6) 대량의 데이터 관리 및 복합 운동 가이드 서비스까지 요구되고 있습니다. 이러한 요구에 대한 대응 방안은 대량의 데이터를 수집/처리하는 빅데이터 기술을 바탕으로 머신러닝의 학습 알고리즘을 적용하여 새로운 개인 운동 기록이 입력되더라도 운동처방사의 개입 없이 운동처방이 가능토록 하는 것입니다.

기술의 차이를 설명하려고 했던 사례가 운동처방사의 일자리를 인공지능이 대체하는 것처럼 설명된 듯합니다만, 당분간(?) 개인별 최적의 맞춤형 운동 처방이 인공지능화되기도 어렵고, 운동처방사의 역할이 운동처방 이외에도 운동재활, 운동치료 등으로 다양할 뿐만 아니라, 운동이라는 것은 몸으로 하는 것이기 때문에 인공지능 운동처방은 보조적인 수단이라 생각합니다.

 

8

위의 러닝머신 예시에서 들었던 운동처방에서 한발 더 나아가서, 사물인터넷(Internet of Things, IoT)으로 확대할 수도 있습니다. 러닝머신의 (1) 기계 장치에 카메라와 VR(Virtual Reality) 기술 그리고 센서를 부착하고 이로부터 나오는 각종 센싱 (2) 데이터를 주기적으로 측정해서 클라우드 서버에 (3) 이러한 데이터를 저장하고 분석하여 (4) 러닝머신의 수리 및 AS 처리에 활용하거나 운동자의 넘어짐이나 위험 신호를 감지하고 장애물 등의 새로운 코스도 추가하여 (5) 운동 효과를 배가하거나 운동자의 신체 이상 감지 시 자동 알림을 통해 비상조치 등을 취할 수 있습니다.

사물인터넷이 대중화되면 각종 센서와 통신장치가 수집하는 데이터의 양은 폭발적으로 증가할 것이며, 그럴수록 방대한 데이터를 바탕으로 머신(기계)이 스스로 학습하여 미래를 예측하는 머신러닝 기술은 중요해집니다. 역으로, 머신에 많은 양의 데이터와 결과를 입력하면 할수록 새로운 데이터에 정확히 반응할 수 있도록 머신(기계)이 훈련이 되고 방대한 데이터를 지닌 머신(기계)은 더욱 똑똑해집니다.

즉, 빅데이터와 머신러닝은 상생하는 기술입니다. 이제부터 이를 설명하는 구글의 세 가지 응용 사례를 살펴보도록 하겠습니다. 

첫 번째 사례는 번역기입니다. 번역기가 전 세계의 수많은 언어를 다른 언어로 번역하는 방법은 단어별 또는 문장별로 직접 번역을 하는 것이 아니라, 수많은 문서와 그 문서를 사람이 번역한 것을 번역기에 집어넣어 ‘학습’ 시키면, 컴퓨터가 언어의 패턴을 직접 이해할 수 있게 되고, 새로운 표현을 입력했을 때 최대한 사람이 하는 것과 가깝게 번역합니다.

두 번째 사례는 스팸 메일 구분법입니다. 스팸 메일이 가장 효과적인 사례로 유명한데, 이는 수억 명의 메일 사용자들이 메일 상단의 ‘스팸메일 신고’를 통해 메일 스팸과 스팸이 아닌 메일을 이메일 엔진에게 가르쳐주고 있기 때문입니다. 구글 직원이 스팸과 정상 메일을 매번 구분해 주고 있는 것이 아니라 이용자들이 학습해주고 있는 것입니다.

세 번째 사례는 구글맵스의 추천과 예측 기능입니다. 샌프란시스코를 검색하면 지도에 이용자가 구글에서 했던 검색을 기반으로 좋아할 만한 식당과 주변 상점을 추천합니다. 그리고 실시간 교통 정보를 반영해 실시간으로 내비게이션 방향을 바꿔주고 특정 장소에 갈 때 현재 시각 기준으로 대중교통이 빠른지 자가용으로 운전해서 가는 것이 빠른지 예측하고 알려주기도 합니다. 이를 위해서 구글은 500억 번 이상의 도로 회전 방향 정보를 쌓았다고 합니다.

머신러닝은 사람의 지식을 기반으로 하는 것이 아니라, 학습시킬만한 양질의 데이터의 양에 따라 성패가 갈립니다. 이를 위해서 글로벌 업체들은 수많은 가입자를 확보하여 다양한 기기로부터 가능한 많은 데이터를 모으고 있습니다. 이들 데이터는 계속 증가하는데 이걸 갖고 무엇을 할 것이냐는 물음만 남았습니다. 또한 데이터를 활용하는 알고리즘을 정교하게 만들면 점차 머신이 스스로 학습해가며 사용자들에게 의미 있는 결과물을 제공하게 될 것입니다.

지금까지 러닝머신의 키워드인 데이터, 학습, 예측 중에서 데이터 부분에 대해서 알아보았습니다. 다음 편에는 “머신이 어떻게 학습하고 예측하는지?”라는 주제로 ‘머신러닝의 메커니즘 및 유형”에 대해서 살펴보도록 하겠습니다.

<참고 문헌>

  1. Naver 지식백과
  2. Wikipedia, http://www.wikipedia.org
  3. 손재권, 「파괴자들」, 한스미디어, 2013
  4. 조성문 블로그, http://sungmooncho.com/
9
Tags : SAMSUNG SDS삼성SDS
samsungsds

The author samsungsds

Leave a Response