닫기

[연재(3)-로봇, 인공지능 그리고 SW 플랫폼] 기계 학습과 학습 구조

  • 등록 2018.09.28 09:49:28
URL복사

[첨단 헬로티]

 

이번 글에서는 기계 학습과 학습 구조 혹은 데이터와의 관계를 설명하고자 한다. 첫 연재에서는 일반적으로 인공지능, 데이터, SW 플랫폼에 대한 내용을 설명하였고, 두 번째 연재에서는 SW 플랫폼에 대한 내용을 설명했다. 이번에는 기계학습과 빅 데이터와의 관계를 설명하고자 한다.


첫 연재에서 기계 학습의 모형을 다음의 그림 1과 같이 개념적으로 보였고 빅데이터/기계 학습용 데이터와 기계 학습 모델 간의 관계를 그림 2와 같이 보였다. 이번 글에서는 이들을 기준으로 데이터와 기계 학습 모델 간의 연계 관계를 설명한다.

 

 

그림 1 기계 학습의 모형


그림 1을 좀 더 살펴보면, 데이터(학습을 위한 입출력 데이터)에 따라 관련 프로그램의 생성이 달라질 수 있다는 것을 유추할 수 있다. 이러한 전형적인 예가 2016년 마이크로소프트(MS)사가 인공지능 채팅 로봇 Tay의 학습 내용과 구글 포토의 잘못된 인식 내용이다[1]. 즉, 일부 사용자들이 Tay의 학습 방식을 이해하여 인종·성 차별적이고 부적절한 메시지를 학습시킨 결과 개발 의도와는 다른 형태의 채팅 로봇이 나오게 되어 Tay의 서비스가 중단하게 되었다.


또한, 구글 포토는 흑인과 관련된 이미지를 학습시키지 않아서 잘못된 분류를 하게 되는 결과가 나와 사과를 하는 경우도 있다. 즉, 그림 1은 “학습시키는 데이터에 따라 관련 프로그램이 생성하게 되므로, 잘못된 데이터가 들어가거나 학습 안 된 데이터가 입력되면 원하지 않는 결과가 나올 수밖에 없다”는 것을 말하고 있다.


기계 학습을 나누면, 크게 감독 학습(supervised learning), 무감독 학습(unsupervised learning)과 강화 학습(reinforcement learning)으로 나눌 수 있다. 현재는 최적의 해결 방법을 찾기 위해 이러한 학습 방법들이 서로 혼합되어 사용되고 있다.


가장 널리 사용되는 기계 학습 방법은 감독 학습이다. 감독 학습의 예로는 전자 메일의 스팸 분류, 영상 기반 얼굴/객체 인식과 환자용 의료 진단 시스템 등이 있으며, 이러한 예들에서는 모두 학습 데이터를 (x, y) 쌍의 집합 형태로 제공하고 있다. 이러한 데이터 쌍의 집합들로 학습한 후, 질문 x*에 대한 응답으로 예측 결과인 y*를 제공하게 된다. 입력 x는 고전적인 벡터이거나 문서, 이미지, DNA 시퀀스 또는 다양한 객체들의 집합일 수 있다.


무감독 학습은 일반적으로 데이터의 구조적 속성(예: 대수, 조합 또는 확률)에 대한 가정 하에서 레이블 없는 데이터를 분석한다. 여기서 레이블은 분류를 위하여 사용되는 것으로 감독 학습 시 y 값으로 레이블을 사용한다. 다시 말하면, 무감독 학습은 y 값을 사용하지 않고 데이터의 구조적 속성들을 활용하여 데이터들을 분류한다. 분류를 위해서는 최대 우도(maximum likelihood), 모멘트 방법 또는 베이지안 통합과 같은 일반 통계 원칙을 활용한 기준(criterion) 함수를 사용하고, 이를 최적화하는 알고리즘을 사용한다.


강화 학습은 학습 데이터로 사용할 수 있는 정보는 감독 학습 및 무감독 학습의 중간이다. 감독 학습에서는 주어진 입력에 대한 올바른 출력을 나타내도록 학습 데이터를 제공하지만, 강화 학습에서는 학습 데이터로 동작이 올바른지 아닌지에 대한 표시만 제공한다. 동작이 올바르지 않으면 올바른 동작을 하도록 계속 반복 작업을 하면서 학습을 하게 된다. 다시 말하면, 입력 (동작) 시퀀스의 설정에서 보상 신호는 전체 시퀀스의 결과로 나온다고 가정한다. 실패는 보상이 없고 성공이면 보상을 하도록 설정된다.

 

 

그림 2 빅데이터/기계 학습용 데이터와 기계 학습 기술 간의 관계


실제로는 이러한 3종류의 학습 방식은 서로 혼합하여 사용되고 있다. 그림 2는 반감독(semi-supervised) 학습의 학습 과정을 보여주고 있다[2]. 이 모델은 그림 2와 같이 빅데이터로 저장된 레이블 데이터로부터 학습데이터를 추출하여 Ms모듈로부터 추출한 데이터를 공유하여 3개의 다른 모듈 M1, M2, M3의 결과들을 레이블 없는 데이터로 저장한다. 이러한 데이터들을 모듈 M1, M2, M3의 조합에 따라 데이터들을 레이블화하여 저장하여 사용하도록 하고 있다. 그림 3과 같은 모델은 이미지 데이터에 대한 학습의 한 예를 보여 주고 있다. 차이점은 대부분 이미지 학습 모델은 M1, M2, M3 등을 사용하지만, 이 모델은 학습 결과로 나온 내용을 다시 레이블된 데이터로 다시 활용하도록 만든 것이다.

 

 

그림 3 반감독(semi-supervised) 학습 구조 및 학습과정[2]


이러한 레이블된 데이터(객체)를 활용하여 객체들과 객체들의 위치와 자세를 인식한 후 로봇의 기존 제어 프로그램을 활용하여 원하는 객체를 집어서 운반할 수 있다. 이러한 내용에 대한 구성도가 그림 4에 있다. 즉, 레이블된 데이터를 활용하여 사용되는 객체들을 인식하고 여러 알고리즘을 사용하여 객체들의 위치와 자세를 인식한 후 해당 객체를 잡는 위치를 정하여 로봇의 제어 알고리즘(매니퓰레이션 제어기)에 알려주면 해당 객체들을 잡는 형태를 취한다.

 

 

그림 4 객체 인식용 기계 학습 모델과 기존 로봇 제어기 활용 구성도

 

현재 공장과 로봇에 사용되는 기계 학습 기술이 여기에 해당된다고 말할 수 있다. 이러한 기술로 시작하여 관련 데이터들을 수집할 필요가 있다. 객체 인식용 기계 학습 모델은 매우 많은 모델이 나와 있기 때문에 이러한 모델 중 가장 적합한 모델을 찾아서 수집된 데이터를 사용해 학습을 하여 자신의 기계에 활용하면 된다.

 

 

그림 5 로봇용 기계학습기반의 모델예측제어 시스템[3]


그림 5는 그림 4와 같이 유사한 모델인데, 레이블된 객체만을 인지하지 않고, 해당 객체에 대해 어떤 힘으로 자를 것인지 관련된 제어와 연계된 예측 제어 모델이다. 그림 4는 레이블된 객체들만 입력으로 하면 되지만, 그림 5는 레이블된 객체와 제어 관련 데이터가 입력으로 들어가야 한다. 로봇에 적용한 기계학습 기반의 Model-Predictive Control System에 대한 구성도가 그림 5에 있다[3].


이 모델을 활용하여 다양한 음식 재료들(오이, 오렌지, 바나나, 치즈 등)을 칼로 자르는 시범을 보였다. 이 모델은 각 음식 관련 데이터 셋으로부터 음식 재료들을 자르는 것에 대해 학습한 후, 학습된 결과물이 모델 매개변수들을 로봇에 다운로드하여 제어에 사용한다. 음식 재료들마다 자르는 힘들이 다르기 때문에 음식 재료들을 인지하고 이들에 대한 자르는 힘을 제어하는 것을 보여주고 있다. 이 모델은 로봇 제어는 로봇의 고유 제어 알고리즘에서 담당하고, 제어 알고리즘으로 넘겨주는 제어는 힘으로써 각 음식 재료들과 칼의 위치에 따라 다른 값으로 전달하여 주는데, 이러한 힘 관련 제어 값을 딥 모델을 기반으로 생성하고 있다.

 

 

그림 6 임의 객체를 집는 강화학습 로봇 모델[4]


그림 6은 14대 로봇이 80만 회의 물건 집기를 행하는 등의 다양한 객체들을 잡는 학습을 시도하는 것으로 강화학습 모델과 그 동작 예시를 보여주고 있다[4]. 입력은 잡을 객체들이 있는 이미지와 모터 커맨드이고 출력은 성공 혹은 실패이다. 강화 학습의 결과로써 객체의 모양과 재질에 따라 잡는 형태를 달리함을 알 수 있다.

 

 

그림 7 와이드 딥 모델[5]


와이드(wide) 모델은 많은 특징을 가진 데이터와의 상호작용을 기억할 수 있지만, 새로운 데이터에 대해 이러한 학습된 상호작용을 일반화할 수는 없다. 딥(deep) 모델은 일반화를 잘 시킬 수 있지만, 데이터 내에서 예외를 학습할 수 없다. 따라서 이러한 2개의 모델을 결합한 그림 7과 같은 와이드 딥 모델이 필요한데, 이 모델은 예외를 학습하면서 일반화가 가능하다[5].


이 글에서는 소수의 기계 학습 예들을 통하여 데이터가 어떻게 활용되고 저장되는지를 살펴보았다. 이러한 예들로부터 학습할 데이터들이 존재하여야 기계 학습 모델이 만들어질 수 있고, 데이터의 질이 좋아야 할 뿐만 아니라 양도 많아야 한다는 것을 알 수 있다. 특히 [5]에 따르면 일반화와 전문화를 할수록(일반화를 하면서 특정 결과를 얻기 위해서는) 와이드(wide)하고 딥(deep)하여야 한다. 이는 입력과 출력 사이에 들어가는 매개변수들이 더욱 많이 필요하다는 것을 말하고 있다.


매개변수들이 많을수록 당연히 입출력 관계를 표현하는 데이터 수가 많아야 적절한 매개변수를 선정할 수 있다. 매개변수의 값들이 적정한 값들로 설정되기 위해서는 데이터의 품질과 양이 매우 중요하다. 데이터의 품질과 양이 적정하지 않으면 과적합 혹은 잘못된 결과가 나올 수 있다.


데이터를 모은다는 관점에서 어떠한 기준 없이 데이터만을 모으면 [1]에서 언급한 바와 같이 문제가 생긴다. 따라서 데이터를 수집하는 것도 매우 중요하고, 수집된 데이터를 활용하는 것도 매우 중요하다. 실제로 외국에는 수집된 데이터를 활용하도록 어느 정도 품질이 보장된 다양한 데이터 파일을 제공하고 있고, 이를 사용하기 위해서는 데이터를 제공하라고 요청하는 경우도 존재한다. 이처럼 데이터를 수집하는 것이 중요하다. 참고로 기계 학습 모델을 만드는 것보다 품질 좋은 데이터의 확보가 기계 학습 기술에 있어서 매우 중요하다는 것은 기억할 필요가 있다.


데이터를 수집하여 활용할 때 전체 모집단을 대표할 수 있는 데이터를 제공할 수 있도록 만들어야 한다. 그렇지 않다면 모집단을 대표하지 않고 일부 집단을 대표하기 때문에 원하지 않는 나쁜 응답을 하는 상황들이 만들어진다. 그러나 이러한 데이터들의 수집은 많은 사람들이 다양한 환경에서 수집을 하여야 일반화할 수 있기 때문에 시간과 비용이 소모된다. 따라서 데이터 수집 시 환경에 대한 조건, 입력 데이터 내용, 출력 목적 등을 명확하고 상세하게 제시하고 이를 기록해둘 필요가 있다. 향후에 이러한 데이터를 활용하여 일반화를 하거나 다른 데이터와 혼합하여 사용할 수 있기 때문이다.


기계 학습의 실용적이고 상업적인 성공에도 불구하고, 기계 학습은 아직까지 탐구되지 않은 분야가 많이 남아 있는 분야이다. 인간의 학습 유형과 현재의 기계 학습 접근 방법을 비교하면 알 수 있다. 예를 들면, 현재 대부분의 기계 학습 알고리즘은 하나의 데이터 소스에서 하나의 특정 기능이나 데이터 모델을 학습하는 것이 일반적이지만, 인간은 다양한 교육 경험에서 수년간의 감독 학습과 이 감독 학습을 기반으로 무감독으로 단순한 일에서 복잡한 작업까지 다양한 기술을 배운다. 역시 로봇이 여러 일을 동시에 수행하기 위해서는, 관련 일들에 대해 학습을 해야 한다. 즉, 하나의 입력으로 여러 개의 일을 한다는 것은 그와 관련된 데이터들이 학습되어 있어야 한다. 


그림 3에서 그림 6을 살펴보면, 데이터에 따라 기계 학습 모델이 서로 다름을 알 수 있다. 즉, 입력 형태와 결과에 따라서 다른 형태의 기계 학습 모델이 나올 수 있으며, 같은 구조의 기계 학습 모델이더라도 사용되는 필터의 모양과 크기, 패딩 여부 등에 따라 달라질 수 있다. 따라서 좋은 결과를 얻기 위해서는 좋은 품질의 데이터를 사용하여 다양한 모델에 따라 많은 시행을 할 필요가 있다. 따라서 아무것도 없는 상태에서 좋은 결과를 얻는다는 것은 매우 어려운 일이다. 데이터 품질이 확보되거나 좋은 학습 모델이 확보되어야 학습 모델 혹은 데이터 품질을 보증할 수 있다. 따라서 좋은 품질의 데이터를 수집하는 것 자체가 기계 학습 기술에 있어서 매우 중요하다.


예를 들면, 인쇄 공장에서 작업하는 모바일 매니퓰레이터를 생각하면, 이러한 모바일 매니퓰레이터는 현재 거의 없기 때문에 관련 데이터를 구하기 힘들다. 따라서 모바일 매니퓰레이터를 학습시키는 것은 거의 불가능할 수 있다. 이러한 경우에는 데이터들은 인간의 작업으로부터 추출하고, 인간 작업 모델로부터 모바일 매니퓰레이터가 작업할 수 있는 모델로 변환하여 학습을 해야 한다. 즉, 일종의 유사 학습 모델로부터 데이터들을 축적하고 이를 기반으로 강화학습을 통하여 인쇄 관련 작업을 학습하도록 해야 한다. 이러한 데이터들이 많이 축적되어야 사용할 수 있는 모바일 매니퓰레이터 관련 좋은 품질의 데이터들이 축적되고 의미 있는 모바일 매니퓰레이터 동작을 위한 기계 학습을 할 수 있다.


이와 같이 의미 있고 품질 좋은 데이터가 충분히 많다면 뒤처진 기계 학습 관련 국내 기술을 어떤 특정 분야에서 선두로 나갈 수 있다. 데이터의 수집은 시간과 비용이 소요되기 때문에 천천히 그렇지만 상세하고 좋은 품질의 데이터를 축적하면서 기계 학습 응용을 하면서 피드백된 데이터를 가지고 관련 데이터들의 품질들을 좋게 해가는 과정을 수행해야 한다. 이러한 데이터 수집부터 활용까지 어떤 특정 분야에서 시도하고, 이러한 분야들을 확대하는 것이 필요하다.


현재 자동화 및 로봇 산업을 포함한 대부분의 영역에서 기계 학습을 활용하고 있고 시도가 점점 많아지고 있다. 여기서 중요하게 생각해야 하는 것은 학습된 데이터에 의한 것은 정확하게 판단하여 행동할 수 있지만, 학습되지 않은 데이터는 부정확하게 판단되어 동작이 이상하게 될 수 있다는 점이다. 후자 관점에서 이상한 동작을 할 시 공정에 제한적 영향을 줄 수도 있지만 공정에 심각한 영향을 줄 수 있다. 따라서 대상 시스템에서 이상한 동작을 하지 않도록 예방하는 것이 중요하다. 이러한 예방은 소프트웨어 플랫폼과 연동되어 기계 학습에 의하여 이상한 동작을 하지 않도록 막는 방법과 동시에 관련 데이터를 보고하여 학습하여 기계 학습 기술에서 관련 데이터가 발생할 시 처리하도록 하는 것이다.


필자는 충분히 다음과 같은 조건이 성립된다면 국내의 기계 학습 기술로써 세계 시장에 진출할 수 있다고 생각한다.

 

 ·개방형 마인드로 기계 학습용 데이터 공유 (모든 공정에서 사용되는 데이터의 공유) : 회사 및 기관의 데이터들의 무료 공개
 ·좋은 품질의 데이터를 위한 분석과 유지 : 관련 연구 기관의 분야별 전문가 양성
 ·데이터 활용 시 활용 결과 보고 : 좋은 품질의 데이터 유지를 위해 필수
 ·기계 학습 모델의 공개 및 연구/개발용으로 무료 활용 : 기계 학습 모델의 진화

 

이외에 더욱 중요한 것은 기계 학습 모델은 안전과도 관련되어 개발되어야 한다. 자동차에서 발생한 인명 사고가 다른 분야에서 일어나지 않는다는 보장이 없다. 특히 자동화 분야와 로봇 분야에서는 인명을 위협하는 기계 구조가 동작하는 영역이 많다. 따라서 안전을 고려한 기계 학습 모델의 개발이 필요하다. 현재 많이 진행되고 있는 자연어 대화, 얼굴 인식, 객체 인식은 사람의 안전과 관련이 없지만, 이 내용이 기계 구조와 연동될 때는 사람의 안전에 영향을 줄 수 있다는 것을 생각하면서 개발하여야 한다. 이러한 부분까지 데이터로 학습시키기 위해서는 한 기관이 데이터를 수집하는 것은 매우 제한적이기 때문에 협력할 필요가 있다.

 

박홍성 교수, 강원대학교 IT대학 전기전자공학부






주요파트너/추천기업