배너
닫기
배너

[로봇, 인공지능 그리고 SW 플랫폼(4)] 기계 학습과 SW 플랫폼

  • 등록 2018.10.01 17:46:41
URL복사
[무료 등록] 최신 AI MCU 개발 트렌드와 함께 실제 산업 현장에서의 응용 방법을 소개합니다 (5/14, 코트야드 판교호텔 8층)

[첨단 헬로티]

 

이번 글은 마지막으로 로봇에서 SW 플랫폼과 인공지능(특히 이 연재들에서는 기계 학습을 의미함) 간의 관계를 살펴보고, 향후 방향에 대해 논의하고자 한다. 첫 연재에서는 일반적으로 인공지능, 데이터, SW 플랫폼에 대한 내용을 설명하였고, 두 번째 연재에서는 SW 플랫폼에 대한 내용, 세 번째 연재에서는 기계 학습과 학습 구조 혹은 데이터와의 관계를 설명하였다.


데이터 학습이 로봇의 기능이다

 

인공지능과 SW 플랫폼 간의 관계를 이해하기 위해서는 대상 로봇의 기능을 명확하게 할 필요가 있다. 이전의 연재에서도 언급하였지만, 기계 학습 기술은 데이터에 기반을 두고 있다. 즉, 그림 1과 같이 해당 데이터(입력과 출력)의 학습이 로봇의 기능이다. 따라서 데이터를 통하여 학습되지 않은 입력들에 대해 대부분이 정확하게 동작하지 않는 경향이 있다. 이렇게 정확하게 동작하지 않는 경우에 사람이 개입할 경우 사람의 안전에 영향을 줄 수 있다는 것도 큰 문제이다. 즉, 학습되지 않은 것은 처리할 수 없다는 문제이다. 이 내용이 기계 학습의 큰 단점 중의 하나이다. 학습된 결과는 코어에서 수행되는 매개변수 값들로 그 수에 따라 CPU 혹은 GPU에서 수행될 수 있다. 다시 말하자면, 학습된 결과는 하드웨어 성능에 따라 알맞게 수행되지 않을 수도 있다는 것을 생각하여야 한다.


▲ 그림 1 기계 학습의 모형


SW 플랫폼, 즉 미들웨어는 사용자 혹은 개발자들에게 하드웨어 자원 및 소프트웨어 자원을 쉽고 효율적으로 활용하게 하는 소프트웨어로, 운영체제 위에서 동작하며 다양한 하드웨어 및 소프트웨어를 쉽게 연결하여 활용할 수 있도록 하여 준다. 그러나 미들웨어는 하나의 도구이지 하드웨어를 직접 제어하여 원하는 동작을 시켜 주지 않기 때문에 관련 응용 프로그램을 미들웨어 기능을 활용하여 운영하도록 한다. 

 

스마트 공장과 기계 학습 기술


스마트 공장의 조립 라인에 기계 학습 기술을 사용한다고 가정하자. 이 스마트 공장에서 다종 대량생산을 한다고 하면, 다종 생산하는 품목 관련 부품과 조립 등과 관련된 데이터에 대해 모두 학습을 해야, 기계 학습 기술을 조립 공정에 사용할 수 있다. 이 경우는 학습 데이터양과 기계 학습 기술에 사용된 매개변수들이 너무 많기 때문에 학습 시간이 매우 길 수 있다.


또한, 실제로 처음 만드는 제조 공정의 데이터를 축적하는 것은 매우 어렵기 때문에 학습할 데이터를 구하는 것도 어려울 수 있다. 학습 데이터 문제로 시뮬레이션을 활용할 수도 있지만, 항상 시뮬레이션은 실제 환경과는 차이가 있다는 것을 생각하여야 한다. 즉, 시뮬레이션 데이터를 활용하더라도 실제 환경의 데이터가 많아야 오동작을 감소시킬 수 있다. 이 예는 현재 기술 수준에 있어서 기계 학습 기술로만 조립 공정을 만들 수 없다는 것을 보여 주고 있다. 


앞에서 언급하였지만, 기계 학습 기술은 주어진 기능을 수행하는 일종의 응용 프로그램(단지, 프로그램 코드라기보다는 매개변수들의 집합임)이기 때문에 미들웨어에서 관리하는 소프트웨어 자원으로 간주할 수 있다. 


앞에서 언급한 스마트 공장의 예를 들면, 인식을 위한 기계 학습 기술, 로봇을 이용한 조립 프로그램, PLC 프로그램 등의 응용 소프트웨어들을 생산 품목에 맞게 적절하게 미들웨어에 로드하여 동작시키면 비용 효과적으로 기계 학습 기반의 스마트 공장을 운영할 수 있다. 물론 이 경우에도 항상 입력 데이터 및 출력 데이터들을 관찰하여 오동작이 생기지 않고 안전에 영향을 주지 않도록 하는 안전 관련 응용 소프트웨어를 운영할 필요가 있다. 실제로 안전 관련 동작은 기계 학습으로 학습하기가 힘든 이유는 다양한 데이터를 만들기 위해서는 사람의 생명이 관련되어 있기 때문이다.


이렇게 동작하기 위한 시스템의 구조, 즉 소프트웨어 플랫폼과 기계 학습 기술 간의 관계를 표시한 내용이 그림 2에 있다. 물론 이러한 구조에서 각 부분의 상세 내용은 이전의 연재한 내용을 살펴보길 바라며, 여기에서는 상세한 설명은 생략한다. 


▲ 그림 2 SW 플랫폼과 기계 학습 기술간 관계


소프트웨어 관리 모듈


그림 2에서 소프트웨어 관리 모듈(SW Mgt. Module)은 미들웨어에서 관리하는 응용 소프트웨어 모듈이며, 응용 모듈 i(i=1,..n)는 로봇 혹은 해당 자동화기기에서 동작하는 응용 모듈로써, 제어, 경로 계획 등을 수행하며 기계 학습 모듈은 필요시 GPU와 함께 기계 학습관련 기능을 수행하며 안전 모듈(Safety Module)은 각 응용 모듈들과 기계 학습 모듈에 사용되는 입출력 데이터와 상태를 활용하여 시스템의 오류 정도와 사람의 안전 여부를 파악한 후 동작 여부를 결정한다.


미들웨어는 이러한 소프트웨어 모듈들의 동작을 원하는 기능에 따라 제어하고 조립한 제품이 변경될 경우에는 서버(빅데이터 서버)로부터 필요한 소프트웨어와 기계 학습에 필요한 매개변수들을 모두 다운로드받아 설정한 후 동작을 시작시키고 필요시 정지시킨다. 또한, 미들웨어는 미들웨어에서 동작하는 소프트웨어 모듈들과 기계 학습에 활용되는 매개변수들을 저장하여 활용할 수 있다.


빅데이터 서버는 기계 학습에 의하여 동작된 내용들을 미들웨어를 통하여 수신한 후 재학습을 한다. 이러한 재학습한 결과를 다운로드하기 전에 유사한 기능을 수행하는 시뮬레이션을 통하여 동작을 해봄으로써 오동작 여부를 확인하여 수정하도록 한다. 이러한 시뮬레이션의 기능은 현재 스마트 공장의 핫 이슈인 디지털 트윈 기술과 관련되어 있다.


디지털 트윈 기술이 잘 운영되기 위해서는 가상 시스템(예, 빅데이터 서버 등)에서 운영되는 시뮬레이션 동작이 실제 시스템과 같도록 실제 시스템(예, 로봇 등)의 데이터들이 가상 시스템으로 전달되어야 한다. 물론 이 경우에 가상 시스템의 입력들을 활용하여 출력을 생성하게 되면 실제 시스템의 출력과 비교할 수 있는데, 이 경우에 발생한 오차가 실제 오류일 수 있고 시뮬레이션과 실제 시스템간의 동작에 의한 모델링 오류일 수 있다. 이러한 오류 여부의 판단도 빅 데이터에서 처리할 수가 있다. 또한, 그림 2의 빅데이터 서버와 기계 학습간의 구체적인 관계는 지난 호의 그림 2를 참조하길 바란다.


SW 플랫폼의 장점


기계 학습 모듈은 지난 연재에서 언급하였듯이 매우 다양하게 활용할 수 있다. 센싱에서 구동까지 가능한 강화학습과 센싱(예, 객체 인식, 기계음 인식)만을 전담하는 지도학습 등이 있을 수 있다. 활용하는 응용과 기계 학습의 질적 수준에 따라 기계 학습 모듈을 다른 응용 소프트웨어 모듈과 함께 활용할 수 있다.


강화학습에 따라 생산되는 제품의 질이 충분히 좋으면 강화학습을 사용하면 되고, 강화학습의 적용 시 문제가 되면 그림 3과 같이 지도학습과 응용 소프트웨어를 같이 활용할 수도 있다. 그림 3에서 로봇 제어 모듈은 그림 2의 응용 모듈들에 해당하며, 모터 제어 모듈은 미들웨어 특성에 따라 응용 모듈일 수도 있고 입출력 드라이버 소프트웨어일 수 있다. 해당 제품의 강화학습을 위해 충분한 데이터가 축적되면 강화학습을 시뮬레이션을 통해 검증하고 실제 시스템에 활용할 수 있다. 이 경우에 해당되는 구조는 이전 연재의 그림 6에 표시되어 있다.


▲ 그림 3 센싱(객체 인식)용 기계 학습 모델과 로봇 제어 소프트웨어 활용 구성도


이와 같이 SW 플랫폼을 사용하면, 기계 학습 기술과 일반 응용 프로그램들을 효율적으로 사용할 수 있기 때문에 로봇뿐만 아니라 로봇 자동화 시스템의 구축도 쉽게 할 수 있고 유지보수도 비용 효과적으로 가능하다. 즉, SW 플랫폼을 기반으로 로봇 등을 구축하면 향후 디지털 트윈을 적용하기도 쉽고 안전 기능의 구현도 보다 쉽게 할 수 있는 장점도 존재한다.


또한, 앞에서 언급하였지만, 지도학습과 로봇 제어 SW 모듈로 구성되어 동작하는 기능을 강화학습으로 동작하도록 변화하는 것도 가능하다. 이 경우에 각 모듈의 입력 및 출력을 맞추어야 하는 과정이 단순하게 변경되기 때문에 쉽게 변화될 수 있다. 


지금까지 기계 학습에서도 소프트웨어 플랫폼이 필요한 이유를 설명하였다. 기계 학습 모듈뿐만 아니라 일반 소프트웨어 모듈들이 서로 호환가능하게 하도록 다음과 같은 인터페이스 표준화가 필요하다. 이러한 표준화가 없다면 실제로 소프트웨어 플랫폼을 사용하는 장점이 많이 감소될 수 있다.


• 입력 및 출력 디바이스를 하드웨어 추상화 인터페이스 

• 응용 SW 모듈 및 기계 학습 모듈들의 인터페이스

• 기계 학습 모듈들의 데이터 축적을 위한 인터페이스


앞으로 연구 방향


지금까지 4회의 연재를 통하여 로봇, 인공지능과 소프트웨어 플랫폼에 대해 설명하였고 방향에 대해 제안하였다. 현재 국내 기술은 추적자(fast follower) 입장에서 선도자(first mover) 입장으로 변경되고 있다. 그러나 아직 연구 방향은 추적자 입장이 강한 것으로 생각된다. 선도자 입장에서는 모든 것을 혼자서 할 수 없고, 자기 분야에 있어서 최선의 내용만으로 다른 분야와 협업 및 소통하여 최선의 결과를 얻을 수 있도록 하여야 한다.


또한, 선도자 역할을 수행하면서 자신의 연구 내용을 심화하기 위해서는 연구 결과를 개방화해야 한다. 실제로 국내 기술의 성숙도와 미국 기술의 성숙도를 고려하면 미국 기술이 훨씬 앞선다는 것을 알 수 있다. 이는 미국 기술은 기술의 활용 관점에서 개방하고 있고 국내 기술은 기술료 관점에서 개방하지 않는 것으로 개인적으로 생각한다. 만일 이러한 사고는 가능한 빨리 고치지 않으면, 향후 국내 기술은 세계시장에서 선도자 역할을 하지 못하고 기술 수준도 낙후할 것으로 예상한다. 


사실 미국뿐만 아니라, 유럽과 일본에서도 점점 기술의 공개 범위가 넓어지고 있는 상황에서 국내만 외국의 개방된 기술을 활용하고 개발된 기술을 개방하지 않는 것은 문제의 소지가 있을 수 있다. 


사실 기술을 개방하였다고 하더라도 사업화에는 지장이 없다는 것은 여러 업체에서 증명하고 있다. 더 좋은 것은 기술을 개방하였을 경우 더 많은 아이디어가 들어와서 더 좋은 질의 기술이 만들어진다는 것이다. 국내에서도 각 기관에서 개발한 기술들을 개방하고 이 기술들을 인용하면서 사용하여야 연구 자원들을 효율적으로 활용할 수 있어 관련 기술들의 진보가 빠르게 일어날 수 있다.


참고로 국내 연구/개발 인력도 자신이 만들지 않은 기술에 대해서는 명확하게 공개하여 사용할 필요가 있다. 필요하면, 라이선스 비용을 지급하거나 사용 라이선스 계약을 체결 등 해당 기술의 라이선스 내용을 따를 필요가 있다. 그래야 연구자/개발자도 열심히 개발하여 공개할 때 자신에게 돌아오는 이점이 생겨 더 열심히 유지보수를 할 것으로 생각한다.

 

반복되는 내용이지만, 국내의 기술을 한 단계 끌어올리기 위해서는 개발된 기술 및 축적된 데이터들은 공개하는 방향으로 하고, 개발된 기술/데이터의 중요 부분을 업데이트하는 경우에는 관련자에 원 개발자에 못지않은 권한(라이선스 비율)을 주는 등의 이점을 주어 연속성 있는 기술 개발을 할 수 있는 방향으로 가야 한다고 생각한다. 그리고 항상 자신이 잘하는 부분을 더 잘하도록 다른 사람의 부분을 침범하지 않도록 하는 것이 협업의 기본이라고 생각한다.


 또한, 협업은 자신의 부분만 하면 협업이 잘되지 않기 때문에 협업하는 영역끼리 많은 이야기를 하여 인터페이스를 잘 만들어야 한다. 자신의 부분만 이야기하면 협업은 할 수 없고 과제는 실패하게 된다. 


그리고 국내 기술이 해외로 나가기 위해서는 국제 표준을 따라야 하는데, 국내에서는 국제 표준을 지키는 것을 등한시하는 경향이 있다. 이런 경향은 향후 국제 경쟁력을 낮추기 때문에 가능한 국제 표준 회의에 많이 참여하여 관련 국내 기술들을 국제 표준에 적용하는 노력을 할 필요가 있다. 


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










배너









주요파트너/추천기업